1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.neo4j.examples.server;
20
21 import java.util.ArrayList;
22 import java.util.Arrays;
23 import java.util.List;
24
25 public class TraversalDescription {
26
27 public static final String DEPTH_FIRST = "depth first";
28 public static final String NODE = "node";
29 public static final String ALL = "all";
30
31 private String uniqueness = NODE;
32 private int maxDepth = 1;
33 private String returnFilter = ALL;
34 private String order = DEPTH_FIRST;
35 private List<Relationship> relationships = new ArrayList<Relationship>();
36
37 public void setOrder(String order) {
38 this.order = order;
39 }
40
41 public void setUniqueness(String uniqueness) {
42 this.uniqueness = uniqueness;
43 }
44
45 public void setMaxDepth(int maxDepth) {
46 this.maxDepth = maxDepth;
47 }
48
49 public void setReturnFilter(String returnFilter) {
50 this.returnFilter = returnFilter;
51 }
52
53 public void setRelationships(Relationship... relationships) {
54 this.relationships = Arrays.asList(relationships);
55 }
56
57 public String toJson() {
58 StringBuilder sb = new StringBuilder();
59 sb.append("{ ");
60 sb.append(" \"order\" : \"" + order + "\"");
61 sb.append(", ");
62 sb.append(" \"uniqueness\" : \"" + uniqueness + "\"");
63 sb.append(", ");
64 if (relationships.size() > 0) {
65 sb.append("\"relationships\" : [");
66 for (int i = 0; i < relationships.size(); i++) {
67 sb.append(relationships.get(i).toJsonCollection());
68 if (i < relationships.size() - 1) {
69 sb.append(", ");
70 }
71 }
72 sb.append("], ");
73 }
74 sb.append("\"return filter\" : { ");
75 sb.append("\"language\" : \"builtin\", ");
76 sb.append("\"name\" : \"");
77 sb.append(returnFilter);
78 sb.append("\" }, ");
79 sb.append("\"max depth\" : ");
80 sb.append(maxDepth);
81 sb.append(" }");
82 return sb.toString();
83 }
84 }