2016-12-29 70 views
5

में एक नक्शा परिभाषित करने के लिए, यह ईएमएफ में एक नक्शा बनाने के लिए संभव है:कैसे <a href="http://wiki.eclipse.org/EMF/FAQ" rel="noreferrer">EMF FAQ</a> के अनुसार Xcore

एक EMAP मूल रूप से java.util.Map $ एंट्री उदाहरणों में से एक सूची है। इसलिए एक मानचित्र आप पहली बार इन चरणों का पालन द्वारा अपने नक्शे प्रविष्टि मॉडल करने के लिए की जरूरत बनाने के लिए:

  1. नाम [टाइप 1] के लिए [Type2] नक्शा जहां [टाइप 1] कुंजी के प्रकार और का प्रतिनिधित्व करता है के साथ एक EClass बनाएं [Type2] मान के प्रकार का प्रतिनिधित्व करता है।
  2. नव निर्मित ईक्लास की इंस्टेंस क्लास नाम संपत्ति java.util.Map $ प्रविष्टि पर सेट करें।
  3. "कुंजी" नामक एक EAttribute या EReference बनाएं और इसके लिए EDataType या EClass सेट करें।
  4. "मूल्य" नामक एक ई-एट्रिब्यूट या EReference बनाएं और इसके लिए EDataType या EClass सेट करें।

अब, जब आप कहीं एक EReference अपने EClass के रूप में इस नक्शे प्रविष्टि वर्ग का उपयोग करता है बनाने के लिए, EMF कोड जनरेटर इस विशेष मामले का पता लगाने और इसके स्थान पर किसी की आप के लिए एक ठीक से टाइप किया EMAP गेटर/सेटर उत्पन्न होगा सामान्य ईलीस्ट गेटर/सेटर।

क्या मैं इसे Xcore मॉडल के साथ उपयोग कर सकता हूं? मुझे यकीन नहीं है कि चरण # 2 एक्सकोर में करने योग्य है या फिर यह नक्शे का समर्थन करता है या नहीं।

उत्तर

4

मेरे लिए यह काम करता है।

DataPoints.xcore:

public EMap<String, String> getEntries() { 
    if (entries == null) { 
     entries = new EcoreEMap<String,String>(DataPointsPackage.Literals.KEY_VALUE_PAIR, KeyValuePairImpl.class, this, DataPointsPackage.KEY_VALUE_LIST__ENTRIES); 
    } 
    return entries; 
} 
: एक getEntries विधि है कि इस तरह दिखता है के साथ एक KeyValueListImpl कक्षा में

... 
class KeyValuePair wraps java.util.Map$Entry { 
    String key 
    String value 
} 

class KeyValueList { 
    contains KeyValuePair[] entries 
} 

ऊपर दिए गए परिणामों

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

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