Chcę utworzyć klasę z Eclipse EMF, która zawiera obiekty List
z String
. Widzę, że Ecore ma numer EList
, ale nie mogę zmienić ogólnego rodzaju listy.Jak utworzyć ogólną listę z Eclipse EMF?
Każdy pomysł, jak to zrobić?
Chcę utworzyć klasę z Eclipse EMF, która zawiera obiekty List
z String
. Widzę, że Ecore ma numer EList
, ale nie mogę zmienić ogólnego rodzaju listy.Jak utworzyć ogólną listę z Eclipse EMF?
Każdy pomysł, jak to zrobić?
Jeśli chcesz wygenerować kod, który daje EList<String>
, następnie dodać nowy EAttribute
do EClass
, nadać mu EType
EString
i ustawić swoją „górną granicę” właściwość „-1”.
Jeśli chcesz utworzyć taką listę programowo, można użyć BasicEList
na przykład (org.eclipse.emf.common.util.BasicEList<E>
):
EList<String> stringList = new BasicEList<String>();
Jeśli chcesz zobaczyć inne opcje, otwórz hierarchii typu na: org.eclipse.emf.common.util.AbstractEList<E>
Nie jestem pewien, czy na twoje pytanie udzielono odpowiedzi i co naprawdę chcesz zrobić.
Jeśli chcesz wygenerować kod Java z pliku .ecore, to podam tutaj przykład przy użyciu Edytora modelu Ecorese Juno z edycją EMF (kliknij prawym przyciskiem myszy plik .ecore).
Może nie jest to bezpośrednio to, czego chcesz, ale może być pomocne dla kogoś innego.
Załóżmy, że chcesz metodę jak to w wygenerowanej klasy Java MojaKlasa:
<T extends String> EList<T> getListOfType(Class<T> T)
W swojej ecore Przykładowy model Edytor chcesz osiągnąć How your method looks in the Ecore Editor przez
kliknij strzałkę na "T extends?", kliknij "?", w oknie "Property" wybierz z rozwijanego menu EClassifier a EString, teraz zobaczysz "T extends EString"
dodatek do getListOfType "Nowy dzieckiem" EGeneric Return Type
otworzyć strzałkę EEList, w oknie właściwości wybrać w rozwijanym menu z ETYPE Parametr down „T rozszerza EString”
dodać do getListOfType „nowy dzieckiem” „EParameter”
Teraz jesteś .ecore plik jest gotowy do być wykorzystywane do generowania klasy java.
Dziękuję za wielkiego przewodnika. miałem problem, żeby go śledzić, bo nie pozwoliły generics w moim edytorze Aby to zrobić przejdź do Sample Edytor Ecore -> Show Generics – aphex
Witam Aphex. Nie ma za co. – CuongHuyTo
Dziękuję za odpowiedź. To bardzo mi pomogło! –