]> git.argeo.org Git - gpl/argeo-slc.git/blob - org.argeo.slc/src/main/java/org/argeo/slc/core/structure/tree/TreeSPath.java
Rename Ant sources
[gpl/argeo-slc.git] / org.argeo.slc / src / main / java / org / argeo / slc / core / structure / tree / TreeSPath.java
1 package org.argeo.slc.core.structure.tree;
2
3 import java.util.StringTokenizer;
4
5 import org.argeo.slc.core.structure.StructurePath;
6
7 public class TreeSPath implements StructurePath {
8 public static Character DEFAULT_SEPARATOR = '#';
9
10 private TreeSPath parent;
11 private String name;
12 private Character separator = DEFAULT_SEPARATOR;
13
14 public String getAsUniqueString() {
15 String parentStr = parent != null ? parent.getAsUniqueString() : "";
16 return parentStr + separator + name;
17 }
18
19 public Character getSeparator() {
20 return separator;
21 }
22
23 public TreeSPath getParent() {
24 return parent;
25 }
26
27 public String getName() {
28 return name;
29 }
30
31 public static TreeSPath createChild(TreeSPath parent, String name) {
32 TreeSPath path = new TreeSPath();
33 path.parent = parent;
34 path.name = name;
35 return path;
36 }
37
38 public static TreeSPath createTreeSPath(String path, Character separator) {
39 StringTokenizer st = new StringTokenizer(path, Character
40 .toString(separator));
41
42 TreeSPath currPath = null;
43 while (st.hasMoreTokens()) {
44 if (currPath == null) {// begin
45 currPath = createChild(null, st.nextToken());
46 } else {
47 currPath = createChild(currPath, st.nextToken());
48 }
49 }
50 return currPath;
51 }
52
53 @Override
54 public String toString(){
55 return getAsUniqueString();
56 }
57
58 @Override
59 public boolean equals(Object obj) {
60 if (obj instanceof StructurePath) {
61 StructurePath path = (StructurePath) obj;
62 return getAsUniqueString().equals(path.getAsUniqueString());
63 }
64 return false;
65 }
66
67
68 }