Hallo,
ich möchte gerne eine rekursive Methode erstellen.
Das Ziel ist es von einem "Element" alle Kinder zu bekommen. Also sprich alle Elemente, die miteinander verknüpft sind.
Hierzu habe ich eine Liste von den Connections von einem Diagrammodell. Nun gehe ich diese Connections durch und suche die Verbindung.
Das heißt, dass ich mit einem "Element" in the Methode starte, und dann immer wieder darüber iteriere, bis es keine Kinder mehr gibt...
Allerdings scheint, dass der Methodenaufruf noch nicht so ganz passt. Ebenfalls muss irgendwie noch ein Check sein, wenn es kein Kind mehr gibt, weil sonst gebe ich ja wieder eine leere Liste zurück?
Ich verwende diese Klassen:
Kann mir hier jemand helfen?
ich möchte gerne eine rekursive Methode erstellen.
Das Ziel ist es von einem "Element" alle Kinder zu bekommen. Also sprich alle Elemente, die miteinander verknüpft sind.
Hierzu habe ich eine Liste von den Connections von einem Diagrammodell. Nun gehe ich diese Connections durch und suche die Verbindung.
Das heißt, dass ich mit einem "Element" in the Methode starte, und dann immer wieder darüber iteriere, bis es keine Kinder mehr gibt...
Allerdings scheint, dass der Methodenaufruf noch nicht so ganz passt. Ebenfalls muss irgendwie noch ein Check sein, wenn es kein Kind mehr gibt, weil sonst gebe ich ja wieder eine leere Liste zurück?
Java:
/**
* Findet alle ChildElement von einem Element / alle Connections
*
*/
public List<Element> findAllChildFromElement(DefaultDiagramModel diagramModel, Element startElement) {
LOGGER.info("START findAllChildFromElement");
List<Element> elementList = new ArrayList<Element>();
for (EndPoint endPoint : startElement.getEndPoints()) {
// Alle Connections durchgehen, und prüfen, wer diesen Endpoint verwenden als Target
for (Connection connection : diagramModel.getConnections()) {
if (connection.getSource().equals(endPoint)) {
Element e = findElementByEndpoint(diagramModel, connection.getTarget());
elementList.add(e);
// Methode nochmals aufrufen
elementList = findAllChildFromElement(diagramModel, e);
}
}
}
LOGGER.info("END findAllChildFromElement");
return elementList;
}
Ich verwende diese Klassen:
DefaultDiagramModel (primefaces 6.0 API)
www.primefaces.org
Kann mir hier jemand helfen?