Ich verwende EMF durch kommentierten Java-Code wie folgt
/**
* 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);
Nach der Erstellung von ecore- und genmodel-Dateien aus dieser kommentierten Schnittstelle und nach der Codegenerierung wird die getEntityTypes-Methode wie folgt geändert:
public EList<String> getEntityTypes();
Aus Gründen der Kapselung möchte ich, dass diese EList unveränderbar ist, so dass der Code des Schnittstellen-Clients die Liste nur über die Methoden add und remove ändern kann.
Gibt es eine saubere Möglichkeit, das zu tun, d.h. die Java-Annotation oder die Genmodel-Datei zu ändern, um dem Generator mitzuteilen, dass er Code erzeugen soll, der eine unveränderbare Liste zurückgibt? (Ich war nicht in der Lage, das nach dem Googeln zu finden ...)
Wie gehen Sie mit solchen Situationen um?
Vielen Dank im Voraus
Manu