hallo!also mein problem ist eigentlich das ich das richtige eltern teil nicht bekomme!
ich soll zwischen absoluten und relativen pfad unterscheiden.
realtive kann ich schon den eltern teil zurück geben und auch den kinder namen(knoten)
, beim absoluten pfad geht immoment nur den knoten zurück geben aber nicht das mir das eltern teil zurück gegeben wird.
also ich soll das eltern teil vom knoten ermitteln und dann von dem wieder das elternteil zu ermitteln bis es kein elternteil mehr gibt ,dann ist es die wurzel!
dann zum absoluten pfad umwandeln und so wie mit relativen pfad fortführen!
mein code errstmal!
so mein problem ist das ich bei dieser zeile
immer NULL rauskommt.und somit nicht in meine schleife geht!
wie kriege ich also den richtigen eltern teil
ich soll zwischen absoluten und relativen pfad unterscheiden.
realtive kann ich schon den eltern teil zurück geben und auch den kinder namen(knoten)
, beim absoluten pfad geht immoment nur den knoten zurück geben aber nicht das mir das eltern teil zurück gegeben wird.
also ich soll das eltern teil vom knoten ermitteln und dann von dem wieder das elternteil zu ermitteln bis es kein elternteil mehr gibt ,dann ist es die wurzel!
dann zum absoluten pfad umwandeln und so wie mit relativen pfad fortführen!
mein code errstmal!
Java:
@Override
public Preferences node(String pathName) {
if (pathName.isEmpty())
return this;
int index = pathName.indexOf("/");
if(index == 0){ //absoluter Pfad
Preferences parent = parent();
while (parent != null) { //solange es eltern gibt
if(parent.parent() == null)
break;
parent = parent.parent();
}
//zum relativen pfad machen zur weiter verarbeitung
pathName = pathName.substring(index+1);
}
index = pathName.indexOf("/");
if (index < 0) { // Wenn der index < 0 ist wurde kein Slash mehr
// gefunden
Preferences p = getOrCreateNode(pathName);
// und im pathName steht das letzte Element
return p;
}
String[] split = pathName.split("/", 2);
Preferences node1 = node(split[0]);
Preferences node2 = node1.node(split[1]);
return node2;
}
/**
* Prüft ob ein Pfad vorhanden ist, wenn kein pfad vorhanden ist, erzeuge
* ihn und gebe ihn zurück!
*
* @param
* @return value, der gegebene oder erzeugte Pfad
*/
private Preferences getOrCreateNode(String nodeName) {
SimplePreferences value = nodeMap.get(nodeName); // prüfen ob knoten
// vorhanden ist
if (value == null) { // knoten nicht vorhanden
value = new SimplePreferences(nodeName,this); // knoten erzeugen
nodeMap.put(nodeName, value);
}
return value;
}
@Override
public String name() {
return name;
}
/**
* Liefert den Eltern-Knoten zurück, oder null falls es sich bei diesem
* Knoten um einen Wurzel-Knoten handelt.
*/
@Override
public Preferences parent() {
return parent;
}
Java:
Preferences parent = parent();
wie kriege ich also den richtigen eltern teil