]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.graph/src/org/simantics/graph/query/PathChild.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.graph / src / org / simantics / graph / query / PathChild.java
1 package org.simantics.graph.query;\r
2 \r
3 import org.simantics.databoard.util.URIStringUtils;\r
4 \r
5 \r
6 public class PathChild implements Path {\r
7         public final String name;\r
8         public final Path parent;\r
9         \r
10         public PathChild(String name, Path parent) {\r
11                 if(parent == null)\r
12                         System.out.println("ERR");\r
13                 this.name = name;\r
14                 this.parent = parent;\r
15         }\r
16         \r
17         @Override\r
18         public int hashCode() {\r
19                 return name.hashCode() + (parent == null ? 0 : 31 * parent.hashCode());\r
20         }\r
21         \r
22         @Override\r
23         public boolean equals(Object obj) {\r
24                 if (this == obj)\r
25                         return true;\r
26                 if (obj == null || getClass() != obj.getClass())\r
27                         return false;\r
28                 PathChild other = (PathChild) obj;\r
29                 return name.equals(other.name) &&\r
30                         (parent == null ? other.parent == null : parent.equals(other.parent));          \r
31         }\r
32         \r
33         @Override\r
34         public String toString() {\r
35                 StringBuilder b = new StringBuilder();\r
36                 toString(b);\r
37                 return b.toString();\r
38         }\r
39 \r
40         public void toString(StringBuilder b) {\r
41                 if(parent == null)\r
42                         b.append("http:/");\r
43                 else\r
44                         parent.toString(b);\r
45                 b.append("/");\r
46                 b.append(URIStringUtils.escape(name));\r
47         }\r
48         \r
49         @Override\r
50         public Path child(String childName) {\r
51                 return new PathChild(childName, this);\r
52         }\r
53 }\r