Iteration

Status
Nicht offen für weitere Antworten.

tw80

Mitglied
Hallo,


Ich wollte fragen, wie man ein elegante Iteration für mein Problem hinbekommt.
Es geht um ein UML Modell, welches ich ergänzen möchte.

Im speziellen gehts es hierbei um drei UML::properties und drei UML::ConnectorEnd, die ich miteinander verbinden möchte (siehe screen1.png).

Was ich erreichen will, ist folgendes:

Jede Property bekommt eine Referenz von einer Klasse (die For-Schleife for (Property pro: ) löst das.

Jedes ConnectorEnd soll mit einer Property verbunden werden, die eine Referenz zu einer Klasse schon hat. Das krieg ich leider nicht hin, wenn ich das wie folgt mache. Alle ConnectorEnd sind dann mit P3 verbunden; erwünscht ist aber dass ein ConnectorEnd mit P1, das zweite ConnectorEnd mit P2 und das dritte ConnectorEnd mit P3 verbunden ist.

Wo liegt bei mir der Denkfehler ?


Java:
EList<Property> prop = inter.getOwnedAttributes();

        for (Connector con : inter.getOwnedConnectors())
            for (ConnectorEnd conend : con.getEnds()) {
                // mit dieser Schleife bekommt jede Property eine Referenz zu einer Klasse 
                for (Property pro : prop) {
                    if (pro.getName().startsWith("P1"))
                        pro.setType(class0);
                    else if (pro.getName().startsWith("P2"))
                        pro.setType(class1);
                    else
                        pro.setType(class2);
                    // hier soll jede ConnectorEnd eine Referenz zu einer
                    // Property bekommen
                    conend.setRole(pro);

                }
            }


 

Anhänge

  • screen1.png
    screen1.png
    1,9 KB · Aufrufe: 38
Zuletzt bearbeitet:
S

SlaterB

Gast
Java:
for (Property pro : prop) {
                    if (pro.getName().startsWith("P1"))
                        pro.setType(class0);
                    else if (pro.getName().startsWith("P2"))
                        pro.setType(class1);
                    else
                        pro.setType(class2);
dieser Abschnitt ist doch wohl unabhängig von den Connectoren, das muss nicht 3x oder noch öfter durchgeführt werden (bei mehreren Connectoren),
einmal außerhalb der Schleifen reicht

und um nun genau drei ConnectorEnd mit genau drei Property zu verbinden bietet sich in etwa an
Java:
for (i bis 3) {
con.getEnds().get(i).setRole(prop.get(i));
}
 

tw80

Mitglied
dieser Abschnitt ist doch wohl unabhängig von den Connectoren, das muss nicht 3x oder noch öfter durchgeführt werden (bei mehreren Connectoren),
einmal außerhalb der Schleifen reicht.

Für dieses spezielle Beispiel schon. Aber wenn ichs generisch machen möchte, hängt die Anzahl der ConnectorEnds mit der Anzahl der Property ab; d.h. soviele Properties existieren, die eine Referenz zu einer Klasse haben, soviele ConnectorEnds muss es auch geben.
 

Painii

Bekanntes Mitglied
Java:
if (pro.getName().startsWith("P1"))
                          pro.setType(class0);
else if (pro.getName().startsWith("P2"))
 pro.setType(class1);

Ok...
also die Properties fangen alle mit "P" an, das kannst du ja weglassen, dann kommt deine Zahl - die ist immer 1 höher als deine klassennummer? (also P1->class0)

Meine Idee wäre, ein Object[] zu haben in dem deine Klassen gespeichert sind, dann die Nummer parsen und zu dem index i-1 zu packen.

Java:
Object[] class //Alle Klassen einmal speichern
int i = Integer.valueOf(pro.getName().substring(1,2)); //Der 2. Buchstabe im String
pro.setType(class[i-1]); //Deine Klasse eben
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Mehmetaa Iteration Java Basics - Anfänger-Themen 3
Henri Iteration lauft nicht gut Java Basics - Anfänger-Themen 7
Henri Erste Schritte Iteration ändern Java Basics - Anfänger-Themen 12
I Iteration in Feldern Java Basics - Anfänger-Themen 2
C Compiler-Fehler Wird eine if Bedingung nach einer for-Schleife nach jeder Iteration überprüft? Java Basics - Anfänger-Themen 1
F Array Iteration Java Basics - Anfänger-Themen 4
M Löschen von Objekten während Iteration über Liste Java Basics - Anfänger-Themen 9
K Stammbaum durchlaufen (Iteration etc) Java Basics - Anfänger-Themen 9
D Rekursion in Iteration Java Basics - Anfänger-Themen 5
K Iteration - Alte und neue For Schleife Java Basics - Anfänger-Themen 17
A ArrayList-iteration mit Prüfung auf instanceof durch switch case? Java Basics - Anfänger-Themen 13
J Umgekehrte Iteration Java Basics - Anfänger-Themen 5
Q Iteration wie machen Java Basics - Anfänger-Themen 5
W iteration Java Basics - Anfänger-Themen 8
H Iteration und Editierung einer Liste Java Basics - Anfänger-Themen 6
B Collection während Iteration verändern Java Basics - Anfänger-Themen 7
G iteration durch Array stoppt nicht bei Laufbedingung? Java Basics - Anfänger-Themen 13
C Lösung einer Aufgabe mittels Iteration und Rekursion Java Basics - Anfänger-Themen 12
W Aus Iteration mach Rekursion Java Basics - Anfänger-Themen 3
G Rekursion versus Iteration Java Basics - Anfänger-Themen 58

Ähnliche Java Themen

Neue Themen


Oben