]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - org.argeo.slc/src/main/java/org/argeo/slc/core/structure/tree/TreeSPath.java
Persist path and registry
[gpl/argeo-slc.git] / org.argeo.slc / src / main / java / org / argeo / slc / core / structure / tree / TreeSPath.java
index 37d615f9af9d7ea7387fad8138a737eea01cc8d1..b00d1cf9443bd6351258f36b6d88de01db3077ca 100644 (file)
@@ -4,6 +4,7 @@ import java.util.List;
 import java.util.StringTokenizer;\r
 import java.util.Vector;\r
 \r
+import org.argeo.slc.core.SlcException;\r
 import org.argeo.slc.core.structure.StructurePath;\r
 import org.argeo.slc.core.structure.StructureRegistry;\r
 \r
@@ -18,6 +19,9 @@ public class TreeSPath implements StructurePath, Comparable<StructurePath> {
        private String name;\r
        private Character separator = DEFAULT_SEPARATOR;\r
 \r
+       /** For ORM */\r
+       private Long tid;\r
+\r
        public String getAsUniqueString() {\r
                String parentStr = parent != null ? parent.getAsUniqueString() : "";\r
                return parentStr + separator + name;\r
@@ -54,6 +58,10 @@ public class TreeSPath implements StructurePath, Comparable<StructurePath> {
 \r
        /** Create a child . */\r
        public TreeSPath createChild(String name) {\r
+               if (name.indexOf(separator) > -1) {\r
+                       throw new SlcException("Tree path name '" + name\r
+                                       + "' contains separator character " + separator);\r
+               }\r
                TreeSPath path = new TreeSPath();\r
                path.parent = this;\r
                path.name = name;\r
@@ -93,6 +101,14 @@ public class TreeSPath implements StructurePath, Comparable<StructurePath> {
                return paths;\r
        }\r
 \r
+       public TreeSPath getRoot(){\r
+               TreeSPath root = this;\r
+               while(root.getParent()!=null){\r
+                       root = root.getParent();\r
+               }\r
+               return root;\r
+       }\r
+       \r
        @Override\r
        public String toString() {\r
                return getAsUniqueString();\r
@@ -111,4 +127,24 @@ public class TreeSPath implements StructurePath, Comparable<StructurePath> {
                return getAsUniqueString().compareTo(o.getAsUniqueString());\r
        }\r
 \r
+       Long getTid() {\r
+               return tid;\r
+       }\r
+\r
+       void setTid(Long tid) {\r
+               this.tid = tid;\r
+       }\r
+\r
+       public void setSeparator(Character separator) {\r
+               this.separator = separator;\r
+       }\r
+\r
+       protected void setParent(TreeSPath parent) {\r
+               this.parent = parent;\r
+       }\r
+\r
+       protected void setName(String name) {\r
+               this.name = name;\r
+       }\r
+\r
 }\r