1 package org
.argeo
.slc
.core
.structure
.tree
;
3 import java
.util
.StringTokenizer
;
5 import org
.argeo
.slc
.core
.structure
.StructurePath
;
7 public class TreeSPath
implements StructurePath
{
8 public static Character DEFAULT_SEPARATOR
= '#';
10 private TreeSPath parent
;
12 private Character separator
= DEFAULT_SEPARATOR
;
14 public String
getAsUniqueString() {
15 String parentStr
= parent
!= null ? parent
.getAsUniqueString() : "";
16 return parentStr
+ separator
+ name
;
19 public Character
getSeparator() {
23 public TreeSPath
getParent() {
27 public String
getName() {
31 public static TreeSPath
createChild(TreeSPath parent
, String name
) {
32 TreeSPath path
= new TreeSPath();
38 public static TreeSPath
createTreeSPath(String path
, Character separator
) {
39 StringTokenizer st
= new StringTokenizer(path
, Character
40 .toString(separator
));
42 TreeSPath currPath
= null;
43 while (st
.hasMoreTokens()) {
44 if (currPath
== null) {// begin
45 currPath
= createChild(null, st
.nextToken());
47 currPath
= createChild(currPath
, st
.nextToken());
54 public String
toString(){
55 return getAsUniqueString();
59 public boolean equals(Object obj
) {
60 if (obj
instanceof StructurePath
) {
61 StructurePath path
= (StructurePath
) obj
;
62 return getAsUniqueString().equals(path
.getAsUniqueString());