Шаблоны: преобразование класса Java из объектов оси

Может быть, что-то вроде этого?

df1 <- read.table(text=
                    "x            y
                  1a        'abc 1a 39d' 
                  2b        'abc 2b 32i'
                  3c        'ad ab 3c 32a 32'
                  9d       'ab acb  9d 2d'
                  N/A        'abc 329d'",h=T,strin=F)


library(tidyverse)
df1 %>% 
  mutate(y = ifelse(x == "N/A", 
                    str_replace_all(y," "," | "),
                    str_replace_all(y,x,"|"))) %>%
  separate(y,c("y1","y2"),sep = " \\| ")

#     x      y1     y2
# 1  1a     abc    39d
# 2  2b     abc    32i
# 3  3c   ad ab 32a 32
# 4  9d ab acb      2d
# 5 N/A     abc   329d
7
задан Davocs 27 October 2008 в 16:30
поделиться

5 ответов

Если я понимаю правильно, Вы хотите использовать функцию Axis WSDL2Java, чтобы сгенерировать код от WSDL и затем отобразить это на Вашу объектную модель существующего приложения. В этом случае Вы могли бы хотеть рассмотреть для использования Оси с привязкой JiBX.

3
ответ дан 7 December 2019 в 12:26
поделиться

Если цель состоит в том, чтобы перевести "ось, сгенерированную", к Вашим бизнес-объектам можно попробовать инструмент как дозатор (http://dozer.sourceforge.net/), который является "картопостроителем" для копирования от реализации объектов до другой реализации. Это не знает, как использовать его (я думаю, что необходимо объяснить перевод в XML-файлах), и затем это должно работать (я не сделал использовал меня, но некоторые коллеги использовали его для подобной цели, и это, казалось, работало),

1
ответ дан 7 December 2019 в 12:26
поделиться

Я предполагаю, что существует здравый смысл способ сделать это. Краткий обзор немного Вашего ума и воображает слои.

  1. Вы получаете библиотеку с основным IO и возможно основной функциональностью сессии и/или учетными данными.
  2. Создайте слой преобразования. Здесь Вы поместите, весь код должен был создать Ваши зависящие от приложения объекты. Закончите этот слой с хорошим интерфейсом для Вашего приложения.

convertion слой может быть сделан несколькими способами.

  • Если преобразование просто, можно объединить первый и второй слой почти в одном. Расширьте POJOS для обеспечения функциональности преобразования. Это даст Вам, по крайней мере двум частям кода, автоматически сгенерированный и расширения + функциональность

  • Если мы говорим об огромном XMLs, который должен быть преобразован в несколько объектов небольшого приложения. Хорошо, оставьте первый слой, как это и во втором использовании:

    • Шаблон "команда": инкапсулировать преобразования.
    • Если преобразование также становится грязным: Цепочка ответственности поможет Вам генерировать дерево преобразований.

Я надеюсь, что это помогает

1
ответ дан 7 December 2019 в 12:26
поделиться

При использовании Оси 1 бизнес-классы имеют то же полностью определенное имя как класс данных Оси, и некоторые другие условия применяются, можно просто использовать бизнес-классы вместо Оси без необходимой установки. Мы много раз делали это.

Для Оси 2, мы испытали затруднения из-за привязки данных кроме ADB (значение по умолчанию), таким образом, мы используем Apache палата общин Beanutils экстенсивно для копирования данных назад и вперед между классами Оси и нашими бизнес-классами.

0
ответ дан 7 December 2019 в 12:26
поделиться

Мы столкнулись с подобными проблемами в прошлом. Недавно, для сложного веб-сервиса, что у нас была Ось, генерируют артефакты для, мы волновали с 157 классами Java с именами как "MaintainOffersRequestTypeReqReqDataMaintEnhancementCancellationReason".

Мы волновали классы записи, которые преобразовывают эти сгенерированные Осью объекты в бизнес-объекты, подобные Вашей последней идее. Я не знаю, является ли это лучший способ, но это - конечно, осуществимое решение.

0
ответ дан 7 December 2019 в 12:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: