Как указать, что я хочу установить вместо списка в Modello? - PullRequest
0 голосов
/ 17 июня 2011

У меня есть следующий фрагмент конфигурации из файла Modello .mdo.

<field>
   <name>archetypes</name>
   <association>
     <type>Archetype</type>
     <multiplicity>*</multiplicity>
   </association>
   <description>List of Archetypes available in this catalog.</description>
</field>

Это генерирует следующий отвратительный код:

/**
 * Field archetypes.
 */
private java.util.List<Archetype> archetypes;

и далее вниз:

/**
 * Method getArchetypes.
 * 
 * @return List
 */
public java.util.List<Archetype> getArchetypes()
{
    if ( this.archetypes == null )
    {
        this.archetypes = new java.util.ArrayList<Archetype>();
    }

    return this.archetypes;
} //-- java.util.List<Archetype> getArchetypes()

Как мне сказать Modello использовать java.util.Set вместо java.util.List и java.util.HashSet вместо java.util.ArrayList?

1 Ответ

1 голос
/ 17 июня 2011

Очевидно, на <field/> есть элемент <type/>, который можно установить на Set, хотя в документации здесь упоминаются только собственные типы.

<field>
   <type>Set</type>
   <name>archetypes</name>
   <association>
     <type>Archetype</type>
     <multiplicity>*</multiplicity>
   </association>
   <description>List of Archetypes available in this catalog.</description>
</field>

и вы управляете реализацией Set с элементом <default/>, по умолчанию используется java.util.HashSet.

<default>
    <key>java.util.Set</key>
    <value>new java.util.TreeSet&lt;?&gt;()</value>
</default>

Конечно, это устанавливает значение по умолчанию для всех типов Set в классе, но я отступаю, я знаю достаточно о Modello, чтобы знать, что больше не хочу знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...