2013-09-16 4 views
0

Я использую EA для создания PIM. Когда я генерирую Java-код напрямую, я получаю правильный тип данных, где хочу - Map, где я устанавливаю квалификаторы для свойств ассоциации, которые, как я понимаю, считают, что это будет карта. И это работает так, как ожидалось. Hovewer, когда я делаю преобразование MDA и generete кода - свойства conveted в список (что плохо) сеттера ошибок и методы добытчиков продолжать использовать карту, как в следующем примере:Enterprise Architect - MDA convertst Карта к списку

public class Check { 

private List< Comp> comps; 
private List< Gratuity> gratuities; 

public Check(){ 

} 

public Map<String, Comp> getcomps(){ 
    return comps; 
} 

public Map<String, Gratuity> getgratuities(){ 
    return gratuities; 
} 

Я использую пакет преобразования по умолчанию для Java , Я пытался добавить следующую строку преобразования Java для соединителя является раздел

%connectorType% 
%PI="\n "% 
{ 
%TRANSFORM_CURRENT()% 
%TRANSFORM_REFERENCE("Connector",connectorGUID)% 
Source 
{ 
%TRANSFORM_REFERENCE("Class",connectorSourceElemGUID)% 
access=%qt%%connectorSourceAccess == "Public" ? "Private" : value%%qt% 
qualifier=%connectorSourceQualifier% 
%TRANSFORM_CURRENT("Source","access")% 
} 
Target 
{ 
%TRANSFORM_REFERENCE("Class",connectorDestElemGUID)% 
access=%qt%%connectorDestAccess == "Public" ? "Private" : value%%qt% 
%TRANSFORM_CURRENT("Target","access")% 
%PI="\n"% 
} 
} 

источник, но это не похоже, чтобы помочь

ответ

0

Это неполный ответ, но это слишком долго, чтобы идти в комментарии.

Я не уверен, что определитель источника соединителя определяет, какой класс сбора (Карта, Список) используется. Здесь задействованы три объекта: шаблон преобразования MDA, шаблон генерации кода и параметры класса коллекции.

Check Tools - Options - Engineering Code - Java. Там вы найдете настройки для класса сбора по умолчанию и дополнительных классов коллекций (они используются для атрибутов) и (путем нажатия кнопки Collection Classes) параметров класса коллекции для ассоциаций. Проверьте их.

Кроме того, проверьте шаблон декларации связного атрибута для генерации кода Java. Мне кажется, что это не проверяет квалификатор, но он проверяет% linkAttCollectionClass%.

0

Я получил форму ответа поддержки Enterprise Architect, который говорит, что это ошибка - исходное сообщение:

Я сожалею, что это не работает, потому что существует проблема в связи с преобразованием разъема «классификатора».

Шаблон преобразования «% TRANSFORM_CURRENT()%» (и ваш новый добавлен «Классификатор =" тр: String») все правильно, но проблема делает его не в состоянии преобразовать это значение квалификатора по

Мы. собираются решить эту проблему в будущем выпуске EA. К сожалению, я не могу предоставить временные рамки для выпуска.

Номер ошибки: 13106266

 Смежные вопросы

  • Нет связанных вопросов^_^