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
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
\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
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
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