Hi
@GerhardSchröder
Oooops 18! Da habe ich was verwechselt, dann 16 war mit poppen!


Ich durfte saufen schon fast im Kindergarten aber poppen erst nach der Heirat


@Jango
na dann! musst du nur noch sagen ob er so ein Zeug mag?
@Wildcard
Vielen Dank für deine Antwort!
ich habe mir ein kleines Beispiel gemacht wo einerseits mein Model grob drin ist, anderseits wo ich versuche EMap und EFeatureMapEntry zu testen.
O waja ! EMap funktioniert sowie ich mir das vorgestellt habe … (und es funktioniert auch nur mit Referenzen so wie du gesagt hast, obwohl ich was anderes gelesen habe)
Es ist nicht so dass ich immer die beste Lösung suche, will aber vermeiden aus der Unwissenheit
große Umwege zu machen….
Dein Beispiel für 3 muss ich mir noch etwas reifen lassen…..aber wenn du an Casts nicht schlimm findest….
Ich habe mich aber irgendwie auf EFeatureMapEntry verbissen, ich habe noch zwei andere Stellen wo ich ev. dies verwenden konnte, ........ich will die Scheiße verstehen........
Ein kleines Bild Ausschnitts meines Models:
siehe Link
Hier ecore:
[XML]<?xml version="1.0" encoding="UTF-8"?>
<ecore:EPackage xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="model"
nsURI="test" nsPrefix="costam.model">
<eClassifiers xsi:type="ecore:EClass" name="RootDiagram">
<eStructuralFeatures xsi:type="ecore:EReference" name="logikobjekte" upperBound="-1"
eType="#//LogikObjekt" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="LogikObjekt" abstract="true">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Signal">
<eOperations name="getMyData"/>
<eOperations name="getMyTyp"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="event_before" eType="#//Action"
volatile="true" transient="true" derived="true" containment="true">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="group" value="#myaction"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="event_after" eType="#//Action"
volatile="true" transient="true" derived="true" containment="true">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="group" value="#myaction"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="data" lowerBound="1" eType="#//MyDataTyp"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="myaction" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="group"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TestObjekt1" eSuperTypes="#//LogikObjekt">
<eStructuralFeatures xsi:type="ecore:EReference" name="signallist" upperBound="-1"
eType="#//Signal" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="event_xmt" eType="#//Action"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="event_rcv" eType="#//Action"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="event_timer" eType="#//Action"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="event_timeout" eType="#//Action"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TestObjekt2" eSuperTypes="#//LogikObjekt">
<eStructuralFeatures xsi:type="ecore:EReference" name="signallist" upperBound="-1"
eType="#//Signal" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="event_x" eType="#//Action"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Action">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="obj" eType="#//TestObjekt1"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="obj2" eType="#//Signal"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EventServer" instanceClassName="java.util.Map$Entry"
eSuperTypes="#//LogikObjekt">
<eStructuralFeatures xsi:type="ecore:EReference" name="key" upperBound="-1" eType="#//Action"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="value" upperBound="-1"
eType="#//Signal"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Data_u32" eSuperTypes="#//MyDataTyp">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="data" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="typ" eType="#//DATATYP"
changeable="false" defaultValueLiteral="TYP_U32" unsettable="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Data_u8" eSuperTypes="#//MyDataTyp">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="data" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EByte"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="typ" eType="#//DATATYP"
changeable="false" defaultValueLiteral="TYP_U8" unsettable="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Data_float" eSuperTypes="#//MyDataTyp">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="data" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="typ" eType="#//DATATYP"
changeable="false" defaultValueLiteral="TYP_FLOAT" unsettable="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="MyDataTyp" abstract="true"/>
<eClassifiers xsi:type="ecore:EEnum" name="DATATYP">
<eLiterals name="TYP_U8"/>
<eLiterals name="TYP_U32" value="1"/>
<eLiterals name="TYP_FLOAT" value="2"/>
</eClassifiers>
</ecore:EPackage>
[/XML]
ich schreibe, wie ich mir, was im Editor vorstelle, und wo ich ev. Probleme sehe, vielleicht sind ja aber keine Probleme…. oder wie du das lösen würdest…
1. Signal erzeugen und DataTyp z.B. per Attribut auswählen…
(momentan in rcp-editor muss ich noch jeweilige MyDataTyp zufügen, würde aber gerne naher (GEF) die automatisch beim erzeugen von Signal miterzeugen und von der Abhängigkeit von einem Attribut jeweiligen Typ auswählen….. (den End-User nicht zu viel klicken lassen…) auf die jeweiligen daten (MyDatatyp), sowie du sagst über Cast zugreifen…..
(kann bestimmt auf „change of value“ reagieren und alten löschen und neuen erzeugen..)
2. was mir noch nicht gefällt sind die Containments zw. TestObjekt1/Action und Signal/Action…
Im Editor hätte ich gerne - ein TestObjekt1 erzeugen, - ein Action zufügen, - und per Attribut festlegen welcher Event,.. fertig… und von „Action” würde ich gerne aber noch auf das Objekt zugreifen was mich erzeugt hatte…
momentan sowie ich das gemahlt habe, muss beim erzeugen von Action immer auswählen welcher event_xxx … die Rückreferenzen (EOpposite) musste ich beim Action für jedes Containment halten, also im meinem Beispiel 6-mal obwohl nur ein Erzeuger existiert...
Ich bezweifle daß ich mich klar ausgedrückt habe???
Ich habe irgendwie den Eindruck da passen die EFeatureMapEntry dazu???



Habe auch versucht dies zu implementieren zw. Signal und Action, kann sogar rcp-editor durchkompilieren aber der Editor verhält sich etwas komisch…
Hi Wildcard, vergiss alle meine vorherigen Fragen, will deine Geduld mit mir nicht strapazieren, wäre es möglich dass du mein ecore modifizierst so dass ich ein EFeatureMapEntry Beispiel habe?
(das pdf hab schon gesehen, ich schau mir morgen noch genauer an…....)
morgen kämpfe ich weiter….
Gruß