Wciąż jestem nowicjuszem w dziedzinie EMF, więc być może moje pytanie nie ma sensu, lub zakładam złe rzeczy.Jak porównać równość EObject, gdy zawierał nieuporządkowany EList?
Pracuję nad projektem opartym na modelu, dlatego zdefiniowałem metamodel ecore i wygenerowałem kod skojarzony. Obecnie próbuję wykonywać testy jednostkowe i potrzebuję możliwości przetestowania równości między obiektami, a dokładniej między obiektami, które rozszerzają EObject.
Próbowałem użyć EcoreUtil.equals(), aby wykonać moje testy, ale zawsze zwraca wartość false, ponieważ moje obiekty zawierają odniesienia na listach (klasa EList), które nie są zamawiane w ten sam sposób. Jednak w metamodelu wyraźnie zdefiniowałem, że referencje nie są uporządkowane: chcę używać ich bardziej jak Set niż List.
W końcu zdecydowałem się wdrożyć moje własne metody równości w mojej genereated * klasie Impl, nawet jeśli jest to zniechęcony w javadoc, ale jest tam inny sposób, bardziej elegancki, aby przetestować strukturalną równość obiektów EMF bez brania pod uwagę rozliczać kolejność list?
Dzięki!
Nie wiem Xtend, ale wydaje mi się, że ten kod nie bierze pod uwagę duplikowania elementów na listach. Tak więc "[1]" i "[1, 1, 1]" będą zgłaszane jako równe. – Lii