X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;ds=inline;f=org.argeo.slc%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fcore%2Fstructure%2Ftree%2FTreeSPath.java;h=b00d1cf9443bd6351258f36b6d88de01db3077ca;hb=c228c125b7f40d1716911dd66971c720dc9478b5;hp=37d615f9af9d7ea7387fad8138a737eea01cc8d1;hpb=1a85bfb58f79c5f85b86f8b77aeed8eb0bbe238e;p=gpl%2Fargeo-slc.git diff --git a/org.argeo.slc/src/main/java/org/argeo/slc/core/structure/tree/TreeSPath.java b/org.argeo.slc/src/main/java/org/argeo/slc/core/structure/tree/TreeSPath.java index 37d615f9a..b00d1cf94 100644 --- a/org.argeo.slc/src/main/java/org/argeo/slc/core/structure/tree/TreeSPath.java +++ b/org.argeo.slc/src/main/java/org/argeo/slc/core/structure/tree/TreeSPath.java @@ -4,6 +4,7 @@ import java.util.List; import java.util.StringTokenizer; import java.util.Vector; +import org.argeo.slc.core.SlcException; import org.argeo.slc.core.structure.StructurePath; import org.argeo.slc.core.structure.StructureRegistry; @@ -18,6 +19,9 @@ public class TreeSPath implements StructurePath, Comparable { private String name; private Character separator = DEFAULT_SEPARATOR; + /** For ORM */ + private Long tid; + public String getAsUniqueString() { String parentStr = parent != null ? parent.getAsUniqueString() : ""; return parentStr + separator + name; @@ -54,6 +58,10 @@ public class TreeSPath implements StructurePath, Comparable { /** Create a child . */ public TreeSPath createChild(String name) { + if (name.indexOf(separator) > -1) { + throw new SlcException("Tree path name '" + name + + "' contains separator character " + separator); + } TreeSPath path = new TreeSPath(); path.parent = this; path.name = name; @@ -93,6 +101,14 @@ public class TreeSPath implements StructurePath, Comparable { return paths; } + public TreeSPath getRoot(){ + TreeSPath root = this; + while(root.getParent()!=null){ + root = root.getParent(); + } + return root; + } + @Override public String toString() { return getAsUniqueString(); @@ -111,4 +127,24 @@ public class TreeSPath implements StructurePath, Comparable { return getAsUniqueString().compareTo(o.getAsUniqueString()); } + Long getTid() { + return tid; + } + + void setTid(Long tid) { + this.tid = tid; + } + + public void setSeparator(Character separator) { + this.separator = separator; + } + + protected void setParent(TreeSPath parent) { + this.parent = parent; + } + + protected void setName(String name) { + this.name = name; + } + }