2012-07-18 16 views

Odpowiedz

13

Jeśli chcesz wygenerować kod, który daje EList<String>, następnie dodać nowy EAttribute do EClass, nadać mu ETypeEString 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>

+0

Dziękuję za odpowiedź. To bardzo mi pomogło! –

6

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

  • dodatku do myClass się „nowe dziecko "z EOperation, nazwij go getListOfType
  • dodaj do getListOfType" New Child "z ETypeParameter, nazwij je T
  • dodaj do T a" New Chil d "Typu EGeneric Bound, zobaczysz" T extends? " zamiast "T"
  • 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

  • kliknięciu na nowo stworzyć "?" typu zwrotnego, należy wybrać w rozwijanym menu z EClassifier dół EEList
  • 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”

  • w oknie właściwości nowo utworzonego parametru „null”, wybrać nazwę jako „clazz” ETYPE jako „EJavaClass”
  • w oknie właściwości nowego " ?"(Dwupoziomowa poniżej węzła "clazz: EJavaClass"), wybierz ETYPE parametr jako "T rozszerza EString", teraz "clazz: EJavaClass" staje się "clazz: EJavaClass"

Teraz jesteś .ecore plik jest gotowy do być wykorzystywane do generowania klasy java.

How your method looks in the Ecore Editor

+2

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

+0

Witam Aphex. Nie ma za co. – CuongHuyTo

Powiązane problemy