Я использую EMF через аннотированный код Java следующийГенерировать метод, возвращающего EMF неизменяемого список
/**
* Adds the given type to this filter. Has no effect if the given type
* already belongs to this filter.
*
* @param type
* the type to add
* @model
*/
public void addEntityType(String type);
/**
* Returns the list of types belonging to this filter. Types are identified
* by there name.
*
* @return the list of types for this entity type filter
*
* @model
*/
public List<String> getEntityTypes();
/**
* Removes the given type from this filter. Has no effect if the given type
* doesn't belong to this filter.
*
* @param type
* the type to remove
* @model
*/
public void removeEntityType(String type);
После создания Ecore и genmodel файлов из этого аннотированного интерфейса, и после генерации коды метода getEntityTypes изменяются следующим образом:
public EList<String> getEntityTypes();
Для цели инкапсуляции я хочу, чтобы этот EList не поддавался модификации, поэтому код клиента интерфейса может изменять только список с помощью методов добавления и удаления.
Есть ли какой-либо чистый способ сделать это. I. Модифицировать аннотацию Java или файл genmodel, чтобы сообщить генератору генерировать код, возвращающий неизменяемый список? (Я не смог найти, что после googling ...)
Как вы управляете такими ситуациями?
Заранее спасибо
Ману