Какой язык на основе JVM я должен использовать для сопоставления одного типа с другим?

В настоящее время я работаю с Java, чтобы написать программу, которая выполняет EAI между двумя приложениями. Одно приложение идет с HL7, который я разбираю с HAPI. Так я получаю объектную структуру Java. Я хочу преобразовать эту структуру в свою собственную структуру, которую я хочу использовать для создания файлов XML с помощью JAXB после выполнения некоторой другой работы.

На мой взгляд, мое текущее решение не очень хорошее, потому что исходный код становится очень сложным:

public NaturalPerson convertPID(PID pid) {
    NaturalPerson person = new NaturalPerson();
    NameNaturalPerson personsname = new NameNaturalPerson();
    name.setFamilyName(pid.getPatientName().getFamilyName().getValue());
    ...
}

Какой язык является подходящим языком для такого сопоставления типов? (http://en.wikipedia.org/wiki/List_of_JVM_languages) Я думаю, что Java не лучший язык для этого. У меня не так много времени на обучение, поэтому мне нужен язык, который легко выучить и с которым мало времени в начале обучения. У меня уже есть опыт работы с функциональными языками Haskell и F #. Сначала я подумал, что Groovy будет хорошим языком, но потом я нашел другие мнения, которые рекомендуют Scala.

На каком языке вы бы посоветовали делать такие сопоставления типов?


person martin    schedule 16.08.2011    source источник
comment
Для Mirth Connect (который делает именно то, что вы делаете) мы, среди прочего, используем Javascript и E4X.   -  person Will Hartung    schedule 16.08.2011
comment
Я знаю mirth connect и считаю, что это очень хороший способ интеграции приложений в здравоохранение. Но в настоящее время для меня ограничением является использование Apache Camel. Но спасибо за ваше предложение.   -  person martin    schedule 19.08.2011


Ответы (2)


Вы смотрели Dozer? Это библиотека Java, рекурсивно копирующая данные из одного объекта Java в другой. Настроить сопоставление можно несколькими способами:

  • XML
  • Java API, обеспечивающий DSL
  • Аннотации Java
person Chin Huang    schedule 16.08.2011

Данные в формах обработки карт и векторов превосходно обрабатываются на JVM с помощью Clojure

См. Все основные функции, доступные, а также SO Вопрос, по каким учебникам лучше всего изучать Clojure.

person Nicolas Modrzyk    schedule 17.08.2011