2012-07-18 13 views
8

मैं ग्रहण ईएमएफ के साथ एक कक्षा बनाना चाहता हूं जिसमें ListString ऑब्जेक्ट्स के साथ एक वर्ग बनाना चाहते हैं। मैं देखता हूं कि ईकोर में EList है लेकिन मैं सामान्य प्रकार की सूची नहीं बदल सकता।ग्रहण ईएमएफ के साथ एक सामान्य सूची कैसे बनाएं?

कोई विचार यह कैसे करना है?

उत्तर

13

आप, तो एक EClass के लिए एक नया EAttribute जोड़ने कोड है कि आप एक EList<String> देता है उत्पन्न करने के लिए चाहते हैं, यह ETypeEString देते हैं, और करने के लिए अपने "ऊपरी बाध्य" गुण सेट '-1'।

आप प्रोग्राम इस तरह के एक सूची बनाना चाहते हैं, तो आप उदाहरण के लिए BasicEList (org.eclipse.emf.common.util.BasicEList<E>) इस्तेमाल कर सकते हैं:

EList<String> stringList = new BasicEList<String>(); 

आप अपने अन्य विकल्प देखने के लिए, पर प्रकार पदानुक्रम खोलने चाहते हैं: org.eclipse.emf.common.util.AbstractEList<E>

+0

जवाब के लिए धन्यवाद। यह मुझे बहुत मदद की! –

6

सुनिश्चित नहीं है कि आपके प्रश्न का उत्तर दिया गया था, और आप वास्तव में क्या करना चाहते हैं।

यदि आप किसी .ecore फ़ाइल से जावा कोड जेनरेट करना चाहते हैं, तो मैं यहां ईएमएफ के ग्रहण जूनो के नमूना ईकोर मॉडल संपादक (.ecore फ़ाइल पर राइट क्लिक करें) का उपयोग करके एक उदाहरण प्रदान करता हूं।

शायद यह सीधे नहीं है कि आप क्या चाहते हैं, लेकिन यह किसी और के लिए सहायक हो सकता है।

आप अपने उत्पन्न जावा वर्ग MyClass में इस तरह की एक विधि चाहते मान लीजिए:

<T extends String> EList<T> getListOfType(Class<T> T) 

अपने नमूना Ecore मॉडल संपादक में आप एक "नया बाल MyClass करने से

  • ऐड How your method looks in the Ecore Editor हासिल करना चाहते हैं "EOperation का नाम, इसे प्राप्त करें ListOfType
  • ईटिप्पेरमीटर के" नए बच्चे "को प्राप्त करने के लिए जोड़ें, इसे टी
  • टी में जोड़ें" नया चिल डी "EGeneric बाउंड प्रकार के, आप एक" टी विस्तारित "देखेंगे? "टी"
  • "टी विस्तारित" के तीर पर क्लिक करें, "संपत्ति" विंडो में "?" पर क्लिक करें, ईक्लासिफायर के ईक्लिसीफायर के ड्रॉप डाउन मेनू में चुनें, अब आप देखेंगे "टी ईस्टिंग बढ़ाता है"

  • ऐड नव बनाने पर EGeneric वापसी प्रकार

  • क्लिक के एक "नया चाइल्ड" getListOfType करने के लिए "?" वापसी प्रकार की,, EClassifier की एक ड्रॉप डाउन मेनू एक EEList
  • EEList के तीर को खोलने के भीतर चुनें संपत्ति विंडो में etype पैरामीटर की एक ड्रॉप डाउन मेनू के भीतर चयन एक "टी फैली EString"

  • में जोड़ें नव निर्मित पैरामीटर "अशक्त" की संपत्ति विंडो में "EParameter"

  • के एक "नया चाइल्ड" getListOfType, के रूप में "clazz" नाम चुनते हैं, etype के रूप में "EJavaClass"
  • नए की संपत्ति विंडो में " ?"(नोड के नीचे दो स्तर" clazz: EJavaClass "), etype पैरामीटर चयन के रूप में" टी EString फैली ", अब" clazz: EJavaClass "हो जाता है" clazz: EJavaClass "

अब आप .ecore फ़ाइल के लिए तैयार है एक जावा वर्ग उत्पन्न करने के लिए इस्तेमाल किया जा।

How your method looks in the Ecore Editor

+2

महान ट्यूटोरियल के लिए धन्यवाद। मैं, समस्या यह पालन किया था मैं क्योंकि सक्षम नहीं किया है मेरे संपादक में जेनेरिक। ऐसा करने के लिए नमूना ईकोर संपादक -> जेनेरिक दिखाएं। – aphex

+0

हाय एफ़ेक्स। आपका स्वागत है। खुशी है कि इससे मदद मिलती है – CuongHuyTo

संबंधित मुद्दे