Anfänger Fragen zu EMF

manius

Mitglied
Servus
Habe ein paar Anfänger Fragen zu EMF, ecore….(bin sonst Eclipse, Java, UML blutiger Anfänger…)
Bin stark am lesen, aber vielleicht eine oder andere Frage kann schon mir jemand beantworten….
Vor allem die ganze UML-Zeugt wird sehr abstakt überall behandelt, ich will aber konkreten Code erzeugen :)

1. sourcecode unterschied zwischen Association und Aggregation ?
Soweit ich verstanden habe, die Aggregation hat stärkere Bindung, der „beinhalter“ ist noch zusätzlich für das Erzeugen und Zerstören zuständig…. Was heisst das aber programtechnisch (für JAVA,EMF)
(den Konstruktor muss ich bestimmt sowieso selbst aufrufen? und mit der SetXXX-Function wird die Referenz abgespeichert? Oder ??? Falls nicht, wann und wie viel der Objekte werden erzeugt?

2. eine Association/Aggregation kann Derived sein. D.h abgeleitet / schon vorhanden.
wie kann ich mir das vorstellen? (als Kopie der Objekt-Referenz-Liste, die schon vorhanden ist ? wie sage ich dem ecore um welche Objekte sich handelt?)
(falls nicht, kann ich mir die Objekt-Referenz liste irgendwie noch mal spiegeln?)

3. die Einstellung „Resolve Proxis“? ich glaube nicht dass ich es brauche, aber wann mach das Sinn?, welcher code wird damit erzeugt?

4. was sind EKeys von Association/Aggregation ? da tauchen die Attribute auf von der referenzierter Klasse? Was mache ich damit? :)

Für erstes reichts :)

Danke im Voraus

P.S Erklärungen in C oder ev. im C++ wären nicht schlecht …..
 

manius

Mitglied
:--) nee, ich muss schon lange keine Schulbank drücken!
Ist ja nur für mein privates kleines Projekt, dem ich in meine Freizeit mache, da ich aber sehr wenig Zeit zu Verfügung habe, muss ja etwas zugig vorangehen. Ich dachte die eine oder andere Unklarheit kann mir jemand hier kurz erklären…. (sonst habe ich nicht viel am Hut mit Java, Eclipse, UML, OOP, EMF, GEF, GMF …and Co.

Gruß
 

Wildcard

Top Contributor
Also erstmal vorweg, die Sache wird einfacher verständlich wenn du den Baum Editor benutzt um ein Ecore zu erzeugen, die grafische Ansicht eignet sich dafür IMHO nur bedingt.
1. sourcecode unterschied zwischen Association und Aggregation ?
Soweit ich verstanden habe, die Aggregation hat stärkere Bindung, der „beinhalter“ ist noch zusätzlich für das Erzeugen und Zerstören zuständig…. Was heisst das aber programtechnisch (für JAVA,EMF)
(den Konstruktor muss ich bestimmt sowieso selbst aufrufen? und mit der SetXXX-Function wird die Referenz abgespeichert? Oder ??? Falls nicht, wann und wie viel der Objekte werden erzeugt?
Aggregation würdest du in EMF als Containment übersetzen. Wenn eine Referenz eine Aggregation, also ein Containment ist, dann ist das Objekt der Vater des Objekts das referenziert wird. Wenn du in XML denkst, dann ist das Kind innerhalb der Tags des Vaters. Eine Association ist eine normale Referenz, das Objekt ist also nicht der Parent des referenzierten Objekts. SetXXX Methoden sind, wie der Name vermuten lässt, einfache Java Setter Methoden.

2. eine Association/Aggregation kann Derived sein. D.h abgeleitet / schon vorhanden.
wie kann ich mir das vorstellen? (als Kopie der Objekt-Referenz-Liste, die schon vorhanden ist ? wie sage ich dem ecore um welche Objekte sich handelt?)
(falls nicht, kann ich mir die Objekt-Referenz liste irgendwie noch mal spiegeln?)
Derived tritt selten alleine auf, meistens in Kombination mit volatile=true und transient=true.
Zur Erklärung, derived bedeutet nur, der Wert dieses Features berechnet sich aus anderen Features. Eine direkte Auswirkung davon ist das beim Clonen des Objekts dieser Wert ignoriert wird.
Zu den anderen beiden:
transient=true -> der Wert wird nicht serialisiert
volatile=true -> Für dieses Feature wird kein Member in der Klasse angelegt.

Das ist auch der Grund warum derived meistens in Kombination mit volatile und transient auftritt. Wenn ein Wert berechnet werden kann, braucht man kein Feld dafür und man muss den Wert auch nicht serialisieren.

3. die Einstellung „Resolve Proxis“? ich glaube nicht dass ich es brauche, aber wann mach das Sinn?, welcher code wird damit erzeugt?
EMF kann sehr gut mit Cross References umgehen. Eine Cross Reference liegt zB vor wenn ein Objekt das in Datei A abgespeichert wurde ein Objekt aus Datei B referenziert.
EMF erlaubt dir nun A komplett zu laden, ohne das B geladen wird. Alle Cross References auf B liegen nun als Proxy Objekte vor, also Platzhalter für Objekte die noch nicht geladen wurden, also noch nicht existieren. Wenn "Resolve Proxies" aktiviert ist, dann ersetzt EMF die Proxy Referenz bei Bedarf automatisch durch die echte Referenz, ohne das du etwas davon mitbekommst.
Also als Beispiel:
Objekt a hat eine Referenz auf Objekt b das in einer anderen Resource liegt. Du lädst a und für die referenz auf b wird ein Proxy installiert ohne die zweite Resource zu laden. Wenn du nun a.getB() aufrufst, erkennt EMF das dort nur ein Proxy Objekt installiert ist und 'resolved' den 'Proxy'. Im Hintergrund wird nun also die Resource in der B liegt geladen und du bekommst bei a.getB() die echte Referenz auf b, anstatt des Proxy Objekts.
Es handelt sich also um einen transparenten Lazy Loading Mechanismus.
4. was sind EKeys von Association/Aggregation ? da tauchen die Attribute auf von der referenzierter Klasse? Was mache ich damit?
EKeys spielen vor allem bei besagten Cross References eine Rolle. Wenn keine Keys Vorhanden sind (also eine Möglichkeit ein Objekt eindeutig per Attribut zu identifizieren), muss EMF referenzierte Objekte anhand ihrer Position identifizieren. Bei Modellen im speicher spielt das keine Rolle, sondern nur wenn du Objekte in anderen Dateien referenzierst (also zB das dritte Foo Objekt in Datei A).
 

manius

Mitglied
Hi Wildcard
Vielen Dank für deine Antwort!

Einige Unklarheiten wurden beseitigt aber bei der Aggregation bin immer noch nicht viel schlauer :))

Zu. 1
Ich habe dein Text weitgehend verstanden trotzdem es fehlt mir da was…..

Vielleicht verschiedene Aussagen die ich nicht zusammenführen kann.

- aus UML Kurzreferenzbuch 3.3: (zu Assoziation und Aggregation)
„Achtung Placebo: Assoziation und Aggregation sind semantisch gleichwertig, so sind sie auch im resultierenden Programmcode nicht unbedingt zu unterscheiden“ “Unterschied hat lediglich Kommentarcharakter “ ...

- aus UML Kurzreferenzbuch 3.3: (zu Aggregation und Komposition)
„In C++ führt die Unterscheidung von Aggregation und Komposition zu einer entsprechenden Implementierung (Zeiger oder Wert). Smalltalk und Java kennen diese Unterscheidung nicht, da es dort keine Zeiger o.Ä. gibt, es sind grundsätzlich Referenzen“…..
(wenn in ecore statt einer Aggregation eine Komposition gemeint wäre, würde das eventuell auch deine Aussage decken….)

- wenn Assoziation und Aggregation semantisch gleichwertig sind UND im JAVA Aggregation und Komposition auf die gleiche Art (über Referenzen) realisiert wird, ist doch alles Jacke wie Hose was ich nutze??? (führt zum gleichen code????)

habe mir ein kleines Beispiel gemacht und ein Model generiert

Kann auf den Ersten Blick kein Unterschied finden? Beide Listen werden mit
protected EList<KlassA> myListeAg; und protected EList<KlassA> myListeAss; angelegt.
Andere Funkionen sind ja auch gleich….Muss aber sagen da sind einige Konstrukte die ich noch nicht verstehe….
Irgendwie vermisse ich da stelle wo ich die Listen füllen kann…. ?

Unterschied fand ich im *.genmodel! bei der Aggregation werden Edit-Properties Children,create Child, Notify auf true gesetzt? Was das auch genau heißen mag? Vielleicht nur relevant für den Edit/Editor Code?

Vermutung: Vielleicht ist die Aggregation oder Association für das Model-Code ohne Relevanz aber vielleicht steuert „nur“ das logische „Editor“-Verhalten ? das würde vielleicht Sinn machen :applaus:


Zu.3
Lazy Loading Mechanismus kenne ich bei Modulen die bei bedarf nachgeaden werden(OSGi eigenschaft). Ist das hiermit gemeint?
d.H: Anklicken wenn referenziert wird auf module mit „Lazy Loading“ ?

Gruß
 

Wildcard

Top Contributor
Wir reden hier nicht von UML. EMF spricht wie gesagt von Containment und non-containment. Containment = Parent/Child Beziehung
Lazy Loading Mechanismus kenne ich bei Modulen die bei bedarf nachgeaden werden(OSGi eigenschaft). Ist das hiermit gemeint?
d.H: Anklicken wenn referenziert wird auf module mit „Lazy Loading“ ?
Nein, Lazy Loading zwischen EMF Resourcen, nicht Modulen
 

manius

Mitglied
Danke für Deine Antwort
Ok, viel zu kompliziert und vor allem um drei ecken gedacht …. :)

Habe noch zwei Probleme! für Tipps wäre ich dankbar.
1. Ich habe eine Klasse „Event_Server“ der auf die Referenzen schon irgendwo erzeugter Containments „Action“ und „Signale“ zugreifen kann. Ich möchte jetzt editierbar eine sozusagen doppelte Liste wo ich die „Action“ zu „Signalen“ zuordnen kann. Ein gewisser Action auf ein gewisses Signal mappen….. ? wie kann ich so was realisieren ?
Ich habe mich gedanklich etwas festgebissen dass es mit EMap zu realisieren wäre? (vielleicht falscher Ansatz) Habe aber in der FAQ gesehen das die referenzen cantainment sein sollen/müssen?? (und so auch verhält sich der Editor….)
Geht das damit? ein Tipp für mich ?

2. Eine Unschönheit: ein „Signal“ beinhaltet EINE DataTyp-Referenz (Containment) von verschiedenen Daten Typen (Typ_U8, Typ_U32, Typ_Float usw…) dies habe ich über abstracte Klasse realisiert, funktioniert… aber ist irgendwie unschön, die verschiedenen Typen hätte ich gerne über ein Attribut auswählen wollen. (d.H. ein DataTyp zufügen und mit Attribut von Signal den jeweiligen Typ auswählen?)
Es scheint mir EFeatureMapEntry dafür geeignet zu sein? (soweit ich dies richtig verstanden habe…) aber ich kriege nix zum laufen! (da kommen EAnnotationen die ich nicht verstehe……und das model will jetzt welcher xml-resourcen ?)
Frage: ist das das richte für mich? falls ja, ein Link mit ein Sample von EFeatureMapEntry! oder kann jemand ein zwei Zeiler schreiben??? Ich bin zu blöd!

Vielen Dank voraus!!!
 

Wildcard

Top Contributor
1. Du möchtest eine Map, also Key/Value Paare? Ja, in dem Fall ist eine EMap das richtige.

2. Eine Unschönheit: ein „Signal“ beinhaltet EINE DataTyp-Referenz (Containment) von verschiedenen Daten Typen (Typ_U8, Typ_U32, Typ_Float usw…) dies habe ich über abstracte Klasse realisiert, funktioniert… aber ist irgendwie unschön, die verschiedenen Typen hätte ich gerne über ein Attribut auswählen wollen. (d.H. ein DataTyp zufügen und mit Attribut von Signal den jeweiligen Typ auswählen?)
Es scheint mir EFeatureMapEntry dafür geeignet zu sein? (soweit ich dies richtig verstanden habe…) aber ich kriege nix zum laufen! (da kommen EAnnotationen die ich nicht verstehe……und das model will jetzt welcher xml-resourcen ?)
Frage: ist das das richte für mich? falls ja, ein Link mit ein Sample von EFeatureMapEntry! oder kann jemand ein zwei Zeiler schreiben??? Ich bin zu blöd!
Ich habe ehrlich gesagt Schwierigkeiten deiner Beschreibung zu folgen.
Du hast ein Signal das verschiedene 'Typen' beeinhalten kann?
Dein Problem ist nun das du auf den konkreten Typ casten musst, weil du mit den Methoden der abstrakten Oberklasse nicht viel anfangen kannst?
Falls ich das soweit richtig verstanden habe, wären Generics vielleicht das richtige für dich (EMF unterstützt das)?
Falls nein, versuch es bitte etwas verständlicher zu beschreiben, ich kenne weder dein Modell, noch deine Domain, daher wirst du etwas weiter ausholen müssen um mich abzuholen.
 

manius

Mitglied
Hi Wildcard,
langsam bin ich dir was schuldig! Wenn Du über 16 bist schick ich dir Flasche Whisky? :)

Zu.1
1. Du möchtest eine Map, also Key/Value Paare? Ja, in dem Fall ist eine EMap das richtige.

Ich weiß nicht so recht (vielleicht doch, bin aber net sicher) was du mit Key/Value Parre meinst, wenn aber das gleiche ist, funktioniert EMap auch auf reine Referenzen?

Ich versuche etwas rauszuholen um zu bestätigen wg. Key/Value Parre:

Ich habe ein Baum mit verschiedenen Elementen, wo manches Element ein „Action“ beinhaltet, andere sind eben ein „Signal“ …. Ist aber Wurscht…
An einer anderen Stelle eben in meinem „Event_Server“ möchte ich Verknüpfungen herstellen können von „Action-Refernzen“ und „Signalen-Referenzen“ die irgendwo im Baum erzeugt sind…. Also wenn du so willst möchte ich eben paare bilden von Action-Referenzen zu Signal-Referenzen……..Referenzen zu Referenzen Paaren?

Zu 2.
Du hast ein Signal das verschiedene 'Typen' beeinhalten kann?
Ja

Dein Problem ist nun das du auf den konkreten Typ casten musst, weil du mit den Methoden der abstrakten Oberklasse nicht viel anfangen kannst?
Ja

Was sind Generics ? (wo soll ich nachschlagen java, emf ?)
Mit FeatureMapEntry geht das nicht?

Gruß
 

Wildcard

Top Contributor
langsam bin ich dir was schuldig! Wenn Du über 16 bist schick ich dir Flasche Whisky?
Die 16 hab ich leider schon eine ganze Weile hinter mir :)



Zu 1)
Ja, das hört sich schwer nach einer EMap an. Klar, Referenz auf Referenz ist auch möglich, eine EMap funktioniert wie eine normale Hashmap. Intern ist es eigentlich eine Liste mit Map Entries, aber diese Liste implementiert gleichzeitig das Map Interface.

Was sind Generics ? (wo soll ich nachschlagen java, emf ?)

Hmm, normale Java Generics, du weißt schon,
Code:
List<String> stringList = new ArrayList<String>();
, diese Art von Generics. EMF Klassen können mit Generic Type Parametern versehen werden. Wenn bei dir also schon zur Compilezeit klar sein kann um welchen Typ es sich handelt (das Problem also mit Java Generics gelöst werden kann), dann würde ich diesen Weg gehen.

Mit FeatureMapEntry geht das nicht?
Nun, es hängt davon ab.
FeatureMaps sind etwas schwierig zu erklären. Im Prinzip geht es darum unterschiedliche Sichten auf das gleiche Feature zu erlauben, also ist gut möglich das du damit dein Problem elegant lösen kannst.
Dieses PDF sollte hinreichend erklären wofür FeatureMaps gedacht sind und wie man sie einsetzt. Wenn du etwas nicht verstehst, frag einfach nach.
http://www.eclipse.org/modeling/emf/docs/overviews/FeatureMap.pdf

so wie ich es verstehe gibt es mindestens 3 Varianten die dir helfen können:
1. Generics
2. FeatureMap
3. Transient + Derived + Volatile Features mit den verschiedenen Ausprägungen.

Beispiel für 3:

Du hast besagte Typen: Typ_U8, Typ_U32, Typ_Float

Dein Signal hat nun folgende Methoden:
Code:
getType : AbstractType
getU8Type: : U8Type
getU32Type : U32Type
getFloatType : FloatType
Die Klasse hat nur ein einziges Feld das den abstract type hält. Die konkreten derived features casten diesen abstract type auf eine konkrete Ausprägung, oder geben null zurück.
Allerdings scheint mir das zuviel Aufwand nur um einen Cast zu vermeiden.

Generics sind vermutlich das eleganteste, aber das funktioniert eben nur wenn der Typ eines Signals schon zur Compile Zeit bekannt ist.
 

manius

Mitglied
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ß
 

Wildcard

Top Contributor
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?
Wenn ich mir dein Modell so ansehe sehe ich nicht wie eine FeatureMap da reinpasst. FeatureMaps machen IMHO nur dann Sinn wenn du mit Listen arbeitest die unterschiedliche Ausprängungen von Objekten gleichzeitig enthalten kann, du aber auf die einzelnen Ausprägungen getrennt zugreifen willst.
 

manius

Mitglied
morgen!
ok, also für mein Model brauche dann kein FeatureMap!
kannst du dann dies so Ändern dass es Sinn macht und kleines Beispiel dazu? Eben für die Zukunft für Lernzwecke! Ich werde mich wohl hier nicht mehr trauen noch mal nach FeatureMap zu fragen ! :D

Hätte man die einzelne Containments event_timeout, event_xmt, event_rcv …oder event_after, event_befor zu unbegrenzten Listen gemacht hätte doch gepasst?

Schick mir mal deine Adresse über PN dann schicke ich dir ein keines „Danke Schön“
so „ein hartes Zeug“ magst du eher weniger? oder doch?

Gruß
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Java Anfänger mit konkreten Fragen Java Basics - Anfänger-Themen 2
G Ein paar Anfänger Fragen zu StdDraw Java Basics - Anfänger-Themen 4
D Anfänger-Fragen(Parameter einer Methode) Java Basics - Anfänger-Themen 7
A 2 kurze Anfänger fragen Java Basics - Anfänger-Themen 6
C Anfänger Anfänger Fragen Java Basics - Anfänger-Themen 8
G Anfänger-Errors und Fragen Java Basics - Anfänger-Themen 22
K Java Anfänger und paar Fragen=D Java Basics - Anfänger-Themen 7
S Viele Fragen von einem Anfänger in Java Java Basics - Anfänger-Themen 2
T Fragen vom Java Anfänger Java Basics - Anfänger-Themen 8
J Anfänger-Fragen: Java Basics - Anfänger-Themen 3
B OOP was heißt objektorientiertes Programmieren (fragt ein absoluter Anfänger) Java Basics - Anfänger-Themen 17
Soranix Erste Schritte Struktur als Anfänger // Von einer Klasse auf ein Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 6
M Java Programmierung Aufgabe Anfänger Java Basics - Anfänger-Themen 1
JordenJost Java ist auch eine Insel für Anfänger Java Basics - Anfänger-Themen 2
R Anfänger: Ausgabe kommt minus raus? Java Basics - Anfänger-Themen 6
D Zahlentabelle Anfänger braucht Hilfe Java Basics - Anfänger-Themen 1
N Fehler im Code (Aufgabe für Anfänger) Java Basics - Anfänger-Themen 11
T Übungsbuch für Anfänger Java Basics - Anfänger-Themen 3
H Threads Anfänger Java Basics - Anfänger-Themen 17
C Erste Schritte Anfänger Verständnisfrage zum Compiler Java Basics - Anfänger-Themen 31
J Anfänger, Fehler; "Der Hund liegt begraben" Java Basics - Anfänger-Themen 3
K Buchstabenzähler Java (Anfänger) Java Basics - Anfänger-Themen 35
E Kleines Java-Projekt für Anfänger Java Basics - Anfänger-Themen 10
U anfänger braucht hilfe . wir konnten die aufgaben nicht beantworten Java Basics - Anfänger-Themen 5
ehmo würfelspiel programmieren anfänger Java Basics - Anfänger-Themen 1
J Anfänger TicTacToe, Problem bei Gewinnoption, sowohl Unentschieden Java Basics - Anfänger-Themen 8
L Anfänger braucht Hilfe - Stecke beim Lernen fest Java Basics - Anfänger-Themen 10
A Scanner Befehl Java Anfänger Java Basics - Anfänger-Themen 8
_Zabuza_ Erste Schritte Wie am effektivsten Java lernen als Anfänger? Java Basics - Anfänger-Themen 12
T Roulette für Anfänger Java Basics - Anfänger-Themen 7
K Java Anfänger Java Basics - Anfänger-Themen 5
F Hilfe für einen Anfänger! Java Basics - Anfänger-Themen 4
S Ein Java Anfänger braucht Hilfe Java Basics - Anfänger-Themen 5
P Übungsaufgaben für Anfänger? Java Basics - Anfänger-Themen 2
Z Unklarheit bei Übungsaufgabe [Anfänger] Java Basics - Anfänger-Themen 22
J Lesen und schreiben in eine Datei(Anfänger- Dateizugriffe) Java Basics - Anfänger-Themen 3
O Anfänger, Verständnisfrage Java Basics - Anfänger-Themen 3
CT9288 Mini Anfänger-Problem mit loops, statements und ; Java Basics - Anfänger-Themen 4
F Hilfe, bin Anfänger! Java Basics - Anfänger-Themen 4
R Erste Schritte Materialien für Java-Anfänger Java Basics - Anfänger-Themen 7
Koookie Kleines Frage - Antwort Programm (Anfänger) Java Basics - Anfänger-Themen 5
F Studium aufgabe ...Anfänger sucht hilfe :D Java Basics - Anfänger-Themen 24
F Anfänger braucht Hilfe :) Java Basics - Anfänger-Themen 3
F Abrechnungsprogramm erstellen Student (Anfänger) Java Basics - Anfänger-Themen 2
D Anfänger braucht Hilfe Java Basics - Anfänger-Themen 2
J Musikplayer zu schwer für Anfänger? Java Basics - Anfänger-Themen 3
F Wieso wird dieser Befehl nicht ausgeführt? (Anfänger) Java Basics - Anfänger-Themen 2
V Erste Schritte Anfänger: Ausführen eines Java-Programms Java Basics - Anfänger-Themen 5
Textsurfer Methoden Anfänger * Java Basics - Anfänger-Themen 5
J Anfänger: ActionListener und ProcessBuilder machen Probleme Java Basics - Anfänger-Themen 6
C verwirrter Anfänger Java Basics - Anfänger-Themen 6
L Verzinsungsprogramm (Java-Anfänger) Java Basics - Anfänger-Themen 3
T Datentypen enum static Chaos (blutiger anfänger) Java Basics - Anfänger-Themen 5
I if/else Statements Java Anfänger Java Basics - Anfänger-Themen 14
H Schleifen (anfänger) Java Basics - Anfänger-Themen 13
H Methoden Bluej Anfänger Java Basics - Anfänger-Themen 13
M Erste Schritte Einfache Aufzugssteuerung programmieren - Anfänger Java Basics - Anfänger-Themen 2
D Anfänger-Problem mit dem HalloWelt-Programm Java Basics - Anfänger-Themen 5
S Compiler-Fehler Anfänger sucht Hilfe. Fehler beim Compilieren Java Basics - Anfänger-Themen 6
V Erste Schritte Java-Anfänger braucht Hilfe bei Arrays Java Basics - Anfänger-Themen 19
V Array mit Zufallszahlen - Anfänger - Hilfe Java Basics - Anfänger-Themen 12
J Anfänger hat Problem mit seinen Beet Java Basics - Anfänger-Themen 12
D Compiler-Fehler Anfänger Fehlermeldung Java Basics - Anfänger-Themen 3
das_leon if als Auswahl (Anfänger) Java Basics - Anfänger-Themen 1
N Anfänger Problem Java Basics - Anfänger-Themen 4
GoodGuy [Anfänger] Kann mal wer drüber gucken? Java Basics - Anfänger-Themen 3
R Erste Schritte Anfänger Probleme bei AnimationDrawable Java Basics - Anfänger-Themen 0
J Kleiner Taschenrechner! Anfänger braucht Hilfe :( Java Basics - Anfänger-Themen 2
C Taxiwarteschlange - Anfänger Java Basics - Anfänger-Themen 2
J Fehlermeldung : cannot invoke char(at) int on the primitive type int --- Anfänger Java Basics - Anfänger-Themen 5
I Java, Application, Eclipse (Anfänger) Java Basics - Anfänger-Themen 1
M Java Anfänger - Video Tutorial Reihe (DEUTSCH) Java Basics - Anfänger-Themen 11
C Anfänger: Array + Klasse Java Basics - Anfänger-Themen 5
S OOP Uhrenanzeige programmieren, Achtung Anfänger! Java Basics - Anfänger-Themen 9
B Compiler-Fehler Ein Java-Eclipse-Anfänger geht auf Reisen... Java Basics - Anfänger-Themen 10
I totaler Anfänger braucht Hilfe Java Basics - Anfänger-Themen 8
I Erste Schritte Bücher für Jungedliche[Anfänger] Java Basics - Anfänger-Themen 20
T Hallo anfänger braucht Hilfe :D Java Basics - Anfänger-Themen 7
A Anfänger Taschenrechner Frage Java Basics - Anfänger-Themen 14
D error: Class names, >>>HILFE, anfänger<<< Java Basics - Anfänger-Themen 4
J Hilfe für Anfänger Java Basics - Anfänger-Themen 8
E OOP Methode an andere Methode übergeben / OOP Anfänger Java Basics - Anfänger-Themen 4
Farbenfroh Exceptions Anfänger - Finde Fehler nicht Java Basics - Anfänger-Themen 7
H MergeSort (für Anfänger ) Java Basics - Anfänger-Themen 9
X Projekt Java Anfänger Java Basics - Anfänger-Themen 28
C Fehlersuche Adressbuch *Anfänger* Java Basics - Anfänger-Themen 5
C Anfänger braucht Hilfe bei Schularbeit Java Basics - Anfänger-Themen 3
J Erste Schritte Hilfe bei absolutem Anfänger-Projekt Java Basics - Anfänger-Themen 4
F Anfänger braucht Hilfe Java Basics - Anfänger-Themen 24
A Erste Schritte Übungen für Anfänger Java Basics - Anfänger-Themen 31
M Sieb des Eratosthenes für Anfänger Java Basics - Anfänger-Themen 10
M Tipps für einen Java-Anfänger Java Basics - Anfänger-Themen 5
S Anfänger Aufgaben Java Basics - Anfänger-Themen 6
S Java für Anfänger: Probleme mit read() Java Basics - Anfänger-Themen 20
P [Anfänger] DiceGame Aufagbe Java Basics - Anfänger-Themen 23
C Input/Output Anfänger Array-Verständnis Frage Java Basics - Anfänger-Themen 7
W Erste Schritte OOP-Lektüre für Anfänger/Umsteiger von Clipper auf Java Java Basics - Anfänger-Themen 6
J Welches Java-Videotutorial für Anfänger empfehlenswert? Java Basics - Anfänger-Themen 7
F Java-Anfänger, brauche Hilfe Java Basics - Anfänger-Themen 3
F Java-Anfänger, brauche Hilfe Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben