EMF EObjectContainmentEList - Bug oder Feature

Status
Nicht offen für weitere Antworten.
I

Ives

Gast
Hallo,

ich habe die Weiterentwicklung einer Anwendung übernommen. Diese nutzt das EMF-Framework. Im nachfolgenden Code sollen Werte aus einer vorhandenen Liste (EObjectContainmentEList) in eine neue geschrieben werden.

Merkwürdigerweise werden beim add der neuen Liste die Werte aus der alten gelöscht. Ist das ein Feature des Frameworks oder ein Bug? Beim Test mit einer ArrayList stehen die Werte wie beabsichtigt zum Schluss in beiden Listen. Aus der API bin ich auf Anhieb nicht schlau geworden. Den Typ der Liste kann ich leider nicht ändern, kann mir jemand einen Tipp geben?

Danke & Gruss

Ives

Code:
// siehe Log: comp & l vom Typ EObjectContainmentEList

log.info("comp.getClass(): " +comp.getClass().getName() +", " +comp);
log.info("l.getClass():    " +l.getClass().getName() +", " +l);
log.info("comp.size() beginn: " +comp.size());
log.info("l.size() beginn:    " +l.size());

for (int i = 0; i < comp.size(); i++) {
    log.info("index i: " +i);
    Object o = comp.get(i);
    log.info("comp.size() vor add: " +comp.size());
    log.info("l.size() vor add:    " +l.size());
    l.add(o);
    log.info("comp.size() nach add: " +comp.size());
    log.info("l.size() nach add:    " +l.size());
}

Und hier die Logausgabe:

Code:
comp.getClass(): org.eclipse.emf.ecore.util.EObjectContainmentEList, 
  [@5c00016 (year: 2006, charge: 39), 
   @5ea4016 (year: 2007, charge: 66), 
   @5fe4016 (year: 2008, charge: 64)]
l.getClass():    org.eclipse.emf.ecore.util.EObjectContainmentEList, []
comp.size() beginn: 3
l.size() beginn:    0
index i: 0
comp.size() vor add: 3
l.size() vor add:    0
comp.size() nach add: 2   // ==> merkwürdig, oder?
l.size() nach add:    1
 
I

Ives

Gast
Hallo,

kann hier keiner einen Tipp geben? Vielleicht lag es ja am Titel meiner Frage.

Danke & Gruss

Ives
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben