annotate src/main/java/jp/ac/u_ryukyu/cr/ie/tatsuki/bbs/JuGrix.java @ 23:a9dc4ffd1f52

add stringPathToIdTest and Method
author one
date Mon, 27 Oct 2014 10:40:29 +0900
parents b6b5e3f48988
children 96b9017b0e44
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
1 package jp.ac.u_ryukyu.cr.ie.tatsuki.bbs;
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
2
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
3 import java.util.Iterator;
11
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
4 import java.util.LinkedList;
8
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
5 import java.util.regex.Matcher;
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
6 import java.util.regex.Pattern;
7
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
7
15
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
8 import fj.Ord;
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
9 import fj.P2;
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
10 import fj.data.TreeMap;
7
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath;
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.InterfaceTraverser;
9
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
15 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
16 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
7
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
17 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Pair;
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
18
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
19 public class JuGrix {
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
20
8
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
21 JungleTree personTree;
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
22 JungleTree organizationTree;
12
f93d15042315 fix bag
one
parents: 11
diff changeset
23 JungleTree roleTree;
23
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
24 JungleTree rdeTree;
8
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
25 public JuGrix(){
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
26 try{
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
27 loadXml reader = new loadXml();
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
28 personTree = reader.loadTestData("Person.xml");
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
29 organizationTree = reader.loadTestData("Organization.xml");
12
f93d15042315 fix bag
one
parents: 11
diff changeset
30 roleTree = reader.loadTestData("Role.xml");
23
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
31 rdeTree = reader.loadTestData("RoleDescriptionElement.xml");
8
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
32 } catch (Exception e) {
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
33 e.printStackTrace();
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
34 }
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
35 }
12
f93d15042315 fix bag
one
parents: 11
diff changeset
36
8
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
37 public boolean isActive(String id){
7
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
38
8
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
39 InterfaceTraverser ifTraverser = personTree.getTraverser();
7
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
40 Iterator<Pair<TreeNode,NodePath>> pairIterator = ifTraverser.find(
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
41 (TreeNode node) -> {
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
42 String personId = node.getAttributes().getString("id");
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
43 if (personId == null)
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
44 return false;
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
45 if (personId.equals(id))
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
46 return true;
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
47 return false;
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
48 }
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
49 ,"id",id);
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
50
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
51 if (pairIterator.hasNext())
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
52 return true;
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
53 return false;
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
54
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
55 }
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
56
12
f93d15042315 fix bag
one
parents: 11
diff changeset
57 public Iterator<String> personIds(String orgId, LinkedList<String> roleIds){
17
f59fc20f4af9 add deepChildOrganizationIdsTest and Method
one
parents: 16
diff changeset
58 return personIdsSearch(orgId, roleIds).iterator();
7
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
59 }
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
60
18
0fce1292ab38 add deepPersonIdsTest and Method but not Test
one
parents: 17
diff changeset
61 public LinkedList<String> personIdLink(String orgId, LinkedList<String> roleIds){
0fce1292ab38 add deepPersonIdsTest and Method but not Test
one
parents: 17
diff changeset
62 return personIdsSearch(orgId, roleIds);
0fce1292ab38 add deepPersonIdsTest and Method but not Test
one
parents: 17
diff changeset
63 }
0fce1292ab38 add deepPersonIdsTest and Method but not Test
one
parents: 17
diff changeset
64
12
f93d15042315 fix bag
one
parents: 11
diff changeset
65 public Iterator<String> personIds(LinkedList<String> orgIds ,LinkedList<String> roleIds){
7
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
66
13
one
parents: 11
diff changeset
67 LinkedList<String> personIds = new LinkedList<String>();
11
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
68
12
f93d15042315 fix bag
one
parents: 11
diff changeset
69 for (String orgId : orgIds) {
f93d15042315 fix bag
one
parents: 11
diff changeset
70 personIds.addAll(personIdsSearch(orgId, roleIds));
7
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
71 }
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
72 return personIds.iterator();
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
73 }
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
74
12
f93d15042315 fix bag
one
parents: 11
diff changeset
75 private LinkedList<String> personIdsSearch(String id, LinkedList<String> roleIds) {
f93d15042315 fix bag
one
parents: 11
diff changeset
76
f93d15042315 fix bag
one
parents: 11
diff changeset
77 if (!filter(id, roleIds))
f93d15042315 fix bag
one
parents: 11
diff changeset
78 return new LinkedList<String>();
f93d15042315 fix bag
one
parents: 11
diff changeset
79
f93d15042315 fix bag
one
parents: 11
diff changeset
80 InterfaceTraverser personTraverser = personTree.getTraverser();
f93d15042315 fix bag
one
parents: 11
diff changeset
81 Iterator<Pair<TreeNode, NodePath>> pairPersonIterator = personTraverser.find(
7
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
82 (TreeNode node) -> {
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
83 String personId = node.getAttributes().getString("element");
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
84 if (personId == null)
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
85 return false;
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
86 if (personId.equals("Person"))
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
87 return true;
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
88 return false;
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
89 }
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
90 ,"element","Person");
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
91
11
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
92 LinkedList<String> names = new LinkedList<String>();
12
f93d15042315 fix bag
one
parents: 11
diff changeset
93
7
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
94 for (;pairPersonIterator.hasNext();) {
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
95
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
96 Pair<TreeNode, NodePath> pairPerson = pairPersonIterator.next();
12
f93d15042315 fix bag
one
parents: 11
diff changeset
97 Iterator<Pair<TreeNode,NodePath>> pairIdIterator = personTraverser.find(
7
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
98 (TreeNode node) -> {
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
99 String personId = node.getAttributes().getString("text");
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
100 if (personId == null)
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
101 return false;
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
102 if (personId.equals(id))
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
103 return true;
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
104 return false;
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
105 }
15
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
106 ,pairPerson.left());
12
f93d15042315 fix bag
one
parents: 11
diff changeset
107
f93d15042315 fix bag
one
parents: 11
diff changeset
108 if (pairIdIterator.hasNext()) {
f93d15042315 fix bag
one
parents: 11
diff changeset
109 String name = pairPerson.left().getAttributes().getString("id");
f93d15042315 fix bag
one
parents: 11
diff changeset
110 names.add(name);
f93d15042315 fix bag
one
parents: 11
diff changeset
111 }
f93d15042315 fix bag
one
parents: 11
diff changeset
112 }
f93d15042315 fix bag
one
parents: 11
diff changeset
113 return names;
f93d15042315 fix bag
one
parents: 11
diff changeset
114 }
f93d15042315 fix bag
one
parents: 11
diff changeset
115
f93d15042315 fix bag
one
parents: 11
diff changeset
116
f93d15042315 fix bag
one
parents: 11
diff changeset
117 public boolean filter(String orgId, LinkedList<String> roleIds) {
f93d15042315 fix bag
one
parents: 11
diff changeset
118 if (roleIds == null)
f93d15042315 fix bag
one
parents: 11
diff changeset
119 return true;
f93d15042315 fix bag
one
parents: 11
diff changeset
120
f93d15042315 fix bag
one
parents: 11
diff changeset
121 InterfaceTraverser orgTraverser = organizationTree.getTraverser();
f93d15042315 fix bag
one
parents: 11
diff changeset
122
f93d15042315 fix bag
one
parents: 11
diff changeset
123 Iterator<Pair<TreeNode,NodePath>> orgNodeIterator = orgTraverser.find(
f93d15042315 fix bag
one
parents: 11
diff changeset
124 (TreeNode node) -> {
f93d15042315 fix bag
one
parents: 11
diff changeset
125 String personId = node.getAttributes().getString("element");
f93d15042315 fix bag
one
parents: 11
diff changeset
126 if (personId == null)
f93d15042315 fix bag
one
parents: 11
diff changeset
127 return false;
17
f59fc20f4af9 add deepChildOrganizationIdsTest and Method
one
parents: 16
diff changeset
128 if (!personId.equals("Organization"))
f59fc20f4af9 add deepChildOrganizationIdsTest and Method
one
parents: 16
diff changeset
129 return false;
12
f93d15042315 fix bag
one
parents: 11
diff changeset
130 String compareOrgId = node.getAttributes().getString("id");
17
f59fc20f4af9 add deepChildOrganizationIdsTest and Method
one
parents: 16
diff changeset
131 if (compareOrgId == null)
12
f93d15042315 fix bag
one
parents: 11
diff changeset
132 return false;
f93d15042315 fix bag
one
parents: 11
diff changeset
133 if (compareOrgId.equals(orgId))
f93d15042315 fix bag
one
parents: 11
diff changeset
134 return true;
f93d15042315 fix bag
one
parents: 11
diff changeset
135 return false;
17
f59fc20f4af9 add deepChildOrganizationIdsTest and Method
one
parents: 16
diff changeset
136 });
12
f93d15042315 fix bag
one
parents: 11
diff changeset
137
f93d15042315 fix bag
one
parents: 11
diff changeset
138 if (!orgNodeIterator.hasNext())
f93d15042315 fix bag
one
parents: 11
diff changeset
139 return false;
f93d15042315 fix bag
one
parents: 11
diff changeset
140
f93d15042315 fix bag
one
parents: 11
diff changeset
141 TreeNode searchNode = orgNodeIterator.next().left();
f93d15042315 fix bag
one
parents: 11
diff changeset
142
f93d15042315 fix bag
one
parents: 11
diff changeset
143 for (String id : roleIds) {
f93d15042315 fix bag
one
parents: 11
diff changeset
144 Pattern personPattern = Pattern.compile("r:");
f93d15042315 fix bag
one
parents: 11
diff changeset
145 Matcher personMacher = personPattern.matcher(id);
f93d15042315 fix bag
one
parents: 11
diff changeset
146 if (personMacher.find()) {
f93d15042315 fix bag
one
parents: 11
diff changeset
147 if (!roleFilter(id , searchNode))
f93d15042315 fix bag
one
parents: 11
diff changeset
148 return false;
f93d15042315 fix bag
one
parents: 11
diff changeset
149 }
f93d15042315 fix bag
one
parents: 11
diff changeset
150
f93d15042315 fix bag
one
parents: 11
diff changeset
151 Pattern organizationPattern = Pattern.compile("rde:");
f93d15042315 fix bag
one
parents: 11
diff changeset
152 Matcher organizationMacher = organizationPattern.matcher(id);
f93d15042315 fix bag
one
parents: 11
diff changeset
153 if (organizationMacher.find()) {
f93d15042315 fix bag
one
parents: 11
diff changeset
154 if (!rdeFilter(id,searchNode))
f93d15042315 fix bag
one
parents: 11
diff changeset
155 return false;
f93d15042315 fix bag
one
parents: 11
diff changeset
156 }
f93d15042315 fix bag
one
parents: 11
diff changeset
157 }
f93d15042315 fix bag
one
parents: 11
diff changeset
158 return true;
f93d15042315 fix bag
one
parents: 11
diff changeset
159 }
f93d15042315 fix bag
one
parents: 11
diff changeset
160
f93d15042315 fix bag
one
parents: 11
diff changeset
161 private boolean rdeFilter(String id, TreeNode targetNode) {
f93d15042315 fix bag
one
parents: 11
diff changeset
162
f93d15042315 fix bag
one
parents: 11
diff changeset
163 InterfaceTraverser orgTraverser = organizationTree.getTraverser();
f93d15042315 fix bag
one
parents: 11
diff changeset
164 Iterator<Pair<TreeNode,NodePath>> pairIdIterator = orgTraverser.find(
f93d15042315 fix bag
one
parents: 11
diff changeset
165 (TreeNode node) -> {
f93d15042315 fix bag
one
parents: 11
diff changeset
166 String element = node.getAttributes().getString("element");
f93d15042315 fix bag
one
parents: 11
diff changeset
167 if (element == null)
f93d15042315 fix bag
one
parents: 11
diff changeset
168 return false;
f93d15042315 fix bag
one
parents: 11
diff changeset
169 if (!element.equals("roleRefId"))
f93d15042315 fix bag
one
parents: 11
diff changeset
170 return false;
f93d15042315 fix bag
one
parents: 11
diff changeset
171 String roleId = node.getAttributes().getString("text");
f93d15042315 fix bag
one
parents: 11
diff changeset
172 if (roleId != null)
f93d15042315 fix bag
one
parents: 11
diff changeset
173 return true;
f93d15042315 fix bag
one
parents: 11
diff changeset
174 return false;
f93d15042315 fix bag
one
parents: 11
diff changeset
175 }
15
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
176 ,targetNode);
12
f93d15042315 fix bag
one
parents: 11
diff changeset
177
f93d15042315 fix bag
one
parents: 11
diff changeset
178 TreeMap<String, String> idMap = TreeMap.empty(Ord.stringOrd);
f93d15042315 fix bag
one
parents: 11
diff changeset
179 for (; pairIdIterator.hasNext();) {
f93d15042315 fix bag
one
parents: 11
diff changeset
180 String roleId = pairIdIterator.next().left().getAttributes().getString("text");
f93d15042315 fix bag
one
parents: 11
diff changeset
181 idMap = idMap.set(roleId,roleId);
f93d15042315 fix bag
one
parents: 11
diff changeset
182 }
f93d15042315 fix bag
one
parents: 11
diff changeset
183
f93d15042315 fix bag
one
parents: 11
diff changeset
184 Iterator<P2<String, String>> ids = idMap.iterator();
f93d15042315 fix bag
one
parents: 11
diff changeset
185 InterfaceTraverser roleTraverser = roleTree.getTraverser();
f93d15042315 fix bag
one
parents: 11
diff changeset
186
f93d15042315 fix bag
one
parents: 11
diff changeset
187 for (;ids.hasNext();) {
f93d15042315 fix bag
one
parents: 11
diff changeset
188 String roleId = ids.next()._1();
f93d15042315 fix bag
one
parents: 11
diff changeset
189 Iterator<Pair<TreeNode,NodePath>> roleNodeIterator = roleTraverser.find(
f93d15042315 fix bag
one
parents: 11
diff changeset
190 (TreeNode node) -> {
f93d15042315 fix bag
one
parents: 11
diff changeset
191 String element = node.getAttributes().getString("element");
f93d15042315 fix bag
one
parents: 11
diff changeset
192 if (element == null)
f93d15042315 fix bag
one
parents: 11
diff changeset
193 return false;
f93d15042315 fix bag
one
parents: 11
diff changeset
194 if (!element.equals("Role"))
f93d15042315 fix bag
one
parents: 11
diff changeset
195 return false;
f93d15042315 fix bag
one
parents: 11
diff changeset
196 String compareRoleId = node.getAttributes().getString("id");
f93d15042315 fix bag
one
parents: 11
diff changeset
197 if (compareRoleId == null)
f93d15042315 fix bag
one
parents: 11
diff changeset
198 return false;
f93d15042315 fix bag
one
parents: 11
diff changeset
199 if (compareRoleId.equals(roleId))
f93d15042315 fix bag
one
parents: 11
diff changeset
200 return true;
f93d15042315 fix bag
one
parents: 11
diff changeset
201 return false;
f93d15042315 fix bag
one
parents: 11
diff changeset
202 }
f93d15042315 fix bag
one
parents: 11
diff changeset
203 ,"id",roleId);
f93d15042315 fix bag
one
parents: 11
diff changeset
204
f93d15042315 fix bag
one
parents: 11
diff changeset
205 for (;roleNodeIterator.hasNext();) {
f93d15042315 fix bag
one
parents: 11
diff changeset
206 TreeNode roleNode = roleNodeIterator.next().left();
f93d15042315 fix bag
one
parents: 11
diff changeset
207 Iterator<Pair<TreeNode,NodePath>> rdeNodeIterator = roleTraverser.find(
f93d15042315 fix bag
one
parents: 11
diff changeset
208 (TreeNode node) -> {
f93d15042315 fix bag
one
parents: 11
diff changeset
209 String elementName = node.getAttributes().getString("element");
f93d15042315 fix bag
one
parents: 11
diff changeset
210 if (elementName == null)
f93d15042315 fix bag
one
parents: 11
diff changeset
211 return false;
f93d15042315 fix bag
one
parents: 11
diff changeset
212 if (!elementName.equals("roleDescriptionElementRefIds"))
f93d15042315 fix bag
one
parents: 11
diff changeset
213 return false;
f93d15042315 fix bag
one
parents: 11
diff changeset
214 String rdeId = node.getAttributes().getString("text");
f93d15042315 fix bag
one
parents: 11
diff changeset
215 if (rdeId == null)
f93d15042315 fix bag
one
parents: 11
diff changeset
216 return false;
f93d15042315 fix bag
one
parents: 11
diff changeset
217 Pattern personPattern = Pattern.compile(id);
f93d15042315 fix bag
one
parents: 11
diff changeset
218 Matcher personMacher = personPattern.matcher(rdeId);
f93d15042315 fix bag
one
parents: 11
diff changeset
219 if (personMacher.find())
f93d15042315 fix bag
one
parents: 11
diff changeset
220 return true;
f93d15042315 fix bag
one
parents: 11
diff changeset
221 return false;
f93d15042315 fix bag
one
parents: 11
diff changeset
222 }
15
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
223 ,roleNode);
12
f93d15042315 fix bag
one
parents: 11
diff changeset
224
f93d15042315 fix bag
one
parents: 11
diff changeset
225 if (!rdeNodeIterator.hasNext())
f93d15042315 fix bag
one
parents: 11
diff changeset
226 return false;
f93d15042315 fix bag
one
parents: 11
diff changeset
227 }
7
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
228
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
229 }
12
f93d15042315 fix bag
one
parents: 11
diff changeset
230 return true;
f93d15042315 fix bag
one
parents: 11
diff changeset
231 }
f93d15042315 fix bag
one
parents: 11
diff changeset
232
f93d15042315 fix bag
one
parents: 11
diff changeset
233 public boolean roleFilter(String id, TreeNode orgNode) {
17
f59fc20f4af9 add deepChildOrganizationIdsTest and Method
one
parents: 16
diff changeset
234 System.out.println(orgNode.getAttributes().getString("id"));
12
f93d15042315 fix bag
one
parents: 11
diff changeset
235 InterfaceTraverser orgTraverser = organizationTree.getTraverser();
f93d15042315 fix bag
one
parents: 11
diff changeset
236
f93d15042315 fix bag
one
parents: 11
diff changeset
237 Iterator<Pair<TreeNode,NodePath>> pairIdIterator = orgTraverser.find(
f93d15042315 fix bag
one
parents: 11
diff changeset
238 (TreeNode node) -> {
f93d15042315 fix bag
one
parents: 11
diff changeset
239 String elementName = node.getAttributes().getString("element");
f93d15042315 fix bag
one
parents: 11
diff changeset
240 if (elementName == null)
f93d15042315 fix bag
one
parents: 11
diff changeset
241 return false;
17
f59fc20f4af9 add deepChildOrganizationIdsTest and Method
one
parents: 16
diff changeset
242 if (!elementName.equals("roleRefIds"))
12
f93d15042315 fix bag
one
parents: 11
diff changeset
243 return false;
f93d15042315 fix bag
one
parents: 11
diff changeset
244 String roleId = node.getAttributes().getString("text");
f93d15042315 fix bag
one
parents: 11
diff changeset
245 if (roleId == null)
f93d15042315 fix bag
one
parents: 11
diff changeset
246 return false;
f93d15042315 fix bag
one
parents: 11
diff changeset
247 if (roleId.equals(id))
f93d15042315 fix bag
one
parents: 11
diff changeset
248 return true;
f93d15042315 fix bag
one
parents: 11
diff changeset
249 return false;
f93d15042315 fix bag
one
parents: 11
diff changeset
250 }
15
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
251 ,orgNode);
12
f93d15042315 fix bag
one
parents: 11
diff changeset
252
f93d15042315 fix bag
one
parents: 11
diff changeset
253 if (pairIdIterator.hasNext()){
f93d15042315 fix bag
one
parents: 11
diff changeset
254 System.out.println(pairIdIterator.next().left().getAttributes().getString("text"));
f93d15042315 fix bag
one
parents: 11
diff changeset
255 return true;
f93d15042315 fix bag
one
parents: 11
diff changeset
256 }
f93d15042315 fix bag
one
parents: 11
diff changeset
257 return false;
7
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
258 }
8
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
259
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
260 public Iterator<String> roleIds(String id) {
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
261 Pattern personPattern = Pattern.compile("p:");
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
262 Matcher personMacher = personPattern.matcher(id);
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
263 if (personMacher.find()) {
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
264 return searchRoleIds(personTree, id, "Person");
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
265 }
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
266
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
267 Pattern organizationPattern = Pattern.compile("o:");
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
268 Matcher organizationMacher = organizationPattern.matcher(id);
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
269 if (organizationMacher.find()) {
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
270 return searchRoleIds(organizationTree, id, "Organization");
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
271 }
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
272
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
273 return null;
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
274 }
7
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
275
8
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
276 public Iterator<String> searchRoleIds(JungleTree tree, String id, String element){
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
277
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
278 InterfaceTraverser ifTraverser = tree.getTraverser();
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
279 Iterator<Pair<TreeNode,NodePath>> searchTargetIterator = ifTraverser.find(
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
280 (TreeNode node) -> {
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
281 String nodeElement = node.getAttributes().getString("element");
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
282 if (nodeElement == null)
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
283 return false;
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
284 if (!nodeElement.equals(element))
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
285 return false;
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
286 String nodeId = node.getAttributes().getString("id");
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
287 if (nodeId == null)
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
288 return false;
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
289 if (nodeId.equals(id))
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
290 return true;
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
291 return false;
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
292 }
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
293 ,"id",id);
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
294
11
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
295 LinkedList<String> ids = new LinkedList<String>();
9
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
296
8
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
297 for (;searchTargetIterator.hasNext();) {
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
298
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
299 Pair<TreeNode, NodePath> searchTargetPair = searchTargetIterator.next();
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
300 Iterator<Pair<TreeNode,NodePath>> pairIdIterator = ifTraverser.find(
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
301 (TreeNode node) -> {
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
302 String nodeElement = node.getAttributes().getString("element");
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
303 if (nodeElement == null)
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
304 return false;
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
305 if (!nodeElement.equals("roleRefId"))
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
306 return false;
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
307 String nodeId = node.getAttributes().getString("text");
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
308 if (nodeId != null)
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
309 return true;
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
310 return false;
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
311 }
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
312 ,searchTargetPair.left());
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
313
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
314
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
315 for (;pairIdIterator.hasNext();){
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
316 Pair<TreeNode, NodePath> idNodePath = pairIdIterator.next();
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
317 String attribute = idNodePath.left().getAttributes().getString("text");
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
318
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
319 Iterator<String> checkList = ids.iterator();
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
320 for (;checkList.hasNext();) {
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
321 if(checkList.next().equals(attribute))
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
322 attribute = null;
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
323 }
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
324
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
325 if (attribute != null) {
11
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
326 ids.add(attribute);
8
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
327 System.out.println("-------------------------" + attribute + "-------------------------");
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
328 }
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
329 }
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
330 }
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
331 return ids.iterator();
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
332 }
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
333
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
334
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
335 public Iterator<String> competentRoleId(String personId) {
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
336
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
337 InterfaceTraverser ifTraverser = personTree.getTraverser();
11
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
338 Iterator<Pair<TreeNode, NodePath>> pairPersonIterator = searchPerson(personId, ifTraverser);
8
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
339
9
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
340 if (!pairPersonIterator.hasNext())
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
341 return new NullIterator();
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
342 TreeNode person = pairPersonIterator.next().left();
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
343
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
344 Iterator<Pair<TreeNode,NodePath>> targetPairIterator = ifTraverser.find(
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
345 (TreeNode node) -> {
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
346 String nodeElement = node.getAttributes().getString("element");
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
347 if (nodeElement == null)
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
348 return false;
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
349 if (!nodeElement.equals("priority"))
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
350 return false;
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
351 String priority = node.getAttributes().getString("text");
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
352 if (priority == null)
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
353 return false;
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
354 if (priority.equals("0"))
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
355 return true;
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
356 return false;
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
357 }
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
358 ,person);
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
359
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
360
11
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
361 LinkedList<String> idList = new LinkedList<String>();
9
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
362 for (;targetPairIterator.hasNext();) {
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
363 NodePath searchPath = targetPairIterator.next().right();
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
364 Pair<Integer, NodePath> searchPair = searchPath.last();
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
365 NodePath targetPath = searchPair.right().add(searchPair.left() + 1);
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
366 TreeNode targetNode = getTarget(person, targetPath);
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
367 String id = targetNode.getAttributes().getString("text");
11
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
368 idList.add(id);
9
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
369 }
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
370
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
371 return idList.iterator();
8
378bfec11a8d add roleIdsTest and method
one
parents: 7
diff changeset
372 }
7
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
373
10
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
374
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
375 public Iterator<String> concurrentRoleIds(String personId) {
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
376
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
377 InterfaceTraverser ifTraverser = personTree.getTraverser();
11
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
378 Iterator<Pair<TreeNode, NodePath>> pairPersonIterator = searchPerson(
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
379 personId, ifTraverser);
10
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
380
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
381 if (!pairPersonIterator.hasNext())
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
382 return new NullIterator();
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
383 TreeNode person = pairPersonIterator.next().left();
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
384
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
385 Iterator<Pair<TreeNode,NodePath>> targetPairIterator = ifTraverser.find(
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
386 (TreeNode node) -> {
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
387 String nodeElement = node.getAttributes().getString("element");
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
388 if (nodeElement == null)
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
389 return false;
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
390 if (!nodeElement.equals("priority"))
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
391 return false;
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
392 String priority = node.getAttributes().getString("text");
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
393 if (priority == null)
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
394 return false;
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
395 if (!priority.equals("0"))
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
396 return true;
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
397 return false;
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
398 }
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
399 ,person);
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
400
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
401
11
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
402 LinkedList<String> idList = new LinkedList<String>();
10
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
403 for (;targetPairIterator.hasNext();) {
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
404 NodePath searchPath = targetPairIterator.next().right();
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
405 Pair<Integer, NodePath> searchPair = searchPath.last();
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
406 NodePath targetPath = searchPair.right().add(searchPair.left() + 1);
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
407 TreeNode targetNode = getTarget(person, targetPath);
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
408 String id = targetNode.getAttributes().getString("text");
11
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
409 idList.add(id);
10
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
410 }
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
411
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
412 return idList.iterator();
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
413 }
11
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
414 private Iterator<Pair<TreeNode, NodePath>> searchPerson(String personId,
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
415 InterfaceTraverser ifTraverser) {
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
416 Iterator<Pair<TreeNode,NodePath>> pairPersonIterator = ifTraverser.find(
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
417 (TreeNode node) -> {
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
418 String nodeElement = node.getAttributes().getString("element");
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
419 if (nodeElement == null)
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
420 return false;
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
421 if (!nodeElement.equals("Person"))
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
422 return false;
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
423 String nodeId = node.getAttributes().getString("id");
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
424 if (nodeId == null)
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
425 return false;
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
426 if (nodeId.equals(personId))
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
427 return true;
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
428 return false;
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
429 }
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
430 ,"element","Person");
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
431 return pairPersonIterator;
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
432 }
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
433
18
0fce1292ab38 add deepPersonIdsTest and Method but not Test
one
parents: 17
diff changeset
434
0fce1292ab38 add deepPersonIdsTest and Method but not Test
one
parents: 17
diff changeset
435
0fce1292ab38 add deepPersonIdsTest and Method but not Test
one
parents: 17
diff changeset
436 public Iterator<String> deepPersonIds(String orgId, LinkedList<String> filterIds) {
0fce1292ab38 add deepPersonIdsTest and Method but not Test
one
parents: 17
diff changeset
437
0fce1292ab38 add deepPersonIdsTest and Method but not Test
one
parents: 17
diff changeset
438 Iterator<String> childrensIterator = deepChildOrganizationIds(orgId, new LinkedList<String>());
0fce1292ab38 add deepPersonIdsTest and Method but not Test
one
parents: 17
diff changeset
439 if (!childrensIterator.hasNext())
0fce1292ab38 add deepPersonIdsTest and Method but not Test
one
parents: 17
diff changeset
440 return new NullIterator();
0fce1292ab38 add deepPersonIdsTest and Method but not Test
one
parents: 17
diff changeset
441
0fce1292ab38 add deepPersonIdsTest and Method but not Test
one
parents: 17
diff changeset
442 LinkedList<String> childrenPersonList = new LinkedList<String>();
19
da872647cbe4 add deepChildOrganizationIdsPlusTest and Method
one
parents: 18
diff changeset
443 //childrenPersonList.addAll(personIdLink(orgId, filterIds));
18
0fce1292ab38 add deepPersonIdsTest and Method but not Test
one
parents: 17
diff changeset
444 for (;childrensIterator.hasNext();) {
0fce1292ab38 add deepPersonIdsTest and Method but not Test
one
parents: 17
diff changeset
445 String id = childrensIterator.next();
0fce1292ab38 add deepPersonIdsTest and Method but not Test
one
parents: 17
diff changeset
446 childrenPersonList.addAll(personIdLink(id, filterIds));
0fce1292ab38 add deepPersonIdsTest and Method but not Test
one
parents: 17
diff changeset
447 }
0fce1292ab38 add deepPersonIdsTest and Method but not Test
one
parents: 17
diff changeset
448
0fce1292ab38 add deepPersonIdsTest and Method but not Test
one
parents: 17
diff changeset
449 return childrenPersonList.iterator();
0fce1292ab38 add deepPersonIdsTest and Method but not Test
one
parents: 17
diff changeset
450 }
0fce1292ab38 add deepPersonIdsTest and Method but not Test
one
parents: 17
diff changeset
451
19
da872647cbe4 add deepChildOrganizationIdsPlusTest and Method
one
parents: 18
diff changeset
452 public Iterator<String> deepChildOrganizationIdsPlus(String orgId, LinkedList<String> filterIds) {
da872647cbe4 add deepChildOrganizationIdsPlusTest and Method
one
parents: 18
diff changeset
453 LinkedList<String> orgList = new LinkedList<String>();
da872647cbe4 add deepChildOrganizationIdsPlusTest and Method
one
parents: 18
diff changeset
454 if (filter(orgId, filterIds))
da872647cbe4 add deepChildOrganizationIdsPlusTest and Method
one
parents: 18
diff changeset
455 orgList.add(orgId);
da872647cbe4 add deepChildOrganizationIdsPlusTest and Method
one
parents: 18
diff changeset
456 orgList.addAll(_deepChildOrganizationIds(orgId,filterIds));
da872647cbe4 add deepChildOrganizationIdsPlusTest and Method
one
parents: 18
diff changeset
457 return orgList.iterator();
da872647cbe4 add deepChildOrganizationIdsPlusTest and Method
one
parents: 18
diff changeset
458 }
da872647cbe4 add deepChildOrganizationIdsPlusTest and Method
one
parents: 18
diff changeset
459
17
f59fc20f4af9 add deepChildOrganizationIdsTest and Method
one
parents: 16
diff changeset
460 public Iterator<String> deepChildOrganizationIds(String orgId, LinkedList<String> filterIds) {
f59fc20f4af9 add deepChildOrganizationIdsTest and Method
one
parents: 16
diff changeset
461 return _deepChildOrganizationIds(orgId,filterIds).iterator();
f59fc20f4af9 add deepChildOrganizationIdsTest and Method
one
parents: 16
diff changeset
462 }
f59fc20f4af9 add deepChildOrganizationIdsTest and Method
one
parents: 16
diff changeset
463
f59fc20f4af9 add deepChildOrganizationIdsTest and Method
one
parents: 16
diff changeset
464 public LinkedList<String> _deepChildOrganizationIds(String orgId, LinkedList<String> filterIds) {
f59fc20f4af9 add deepChildOrganizationIdsTest and Method
one
parents: 16
diff changeset
465
19
da872647cbe4 add deepChildOrganizationIdsPlusTest and Method
one
parents: 18
diff changeset
466 Iterator<String> childrensIterator = childOrganizationIds(orgId,new LinkedList<String>());
17
f59fc20f4af9 add deepChildOrganizationIdsTest and Method
one
parents: 16
diff changeset
467 if (!childrensIterator.hasNext())
f59fc20f4af9 add deepChildOrganizationIdsTest and Method
one
parents: 16
diff changeset
468 return new LinkedList<String>();
f59fc20f4af9 add deepChildOrganizationIdsTest and Method
one
parents: 16
diff changeset
469
f59fc20f4af9 add deepChildOrganizationIdsTest and Method
one
parents: 16
diff changeset
470 LinkedList<String> childrenList = new LinkedList<String>();
f59fc20f4af9 add deepChildOrganizationIdsTest and Method
one
parents: 16
diff changeset
471 for (;childrensIterator.hasNext();) {
f59fc20f4af9 add deepChildOrganizationIdsTest and Method
one
parents: 16
diff changeset
472 String childrenId = childrensIterator.next();
f59fc20f4af9 add deepChildOrganizationIdsTest and Method
one
parents: 16
diff changeset
473 if(filter(childrenId,filterIds))
f59fc20f4af9 add deepChildOrganizationIdsTest and Method
one
parents: 16
diff changeset
474 childrenList.add(childrenId);
f59fc20f4af9 add deepChildOrganizationIdsTest and Method
one
parents: 16
diff changeset
475 childrenList.addAll(_deepChildOrganizationIds(childrenId, filterIds));
f59fc20f4af9 add deepChildOrganizationIdsTest and Method
one
parents: 16
diff changeset
476 }
f59fc20f4af9 add deepChildOrganizationIdsTest and Method
one
parents: 16
diff changeset
477
f59fc20f4af9 add deepChildOrganizationIdsTest and Method
one
parents: 16
diff changeset
478 return childrenList;
f59fc20f4af9 add deepChildOrganizationIdsTest and Method
one
parents: 16
diff changeset
479 }
f59fc20f4af9 add deepChildOrganizationIdsTest and Method
one
parents: 16
diff changeset
480
11
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
481
19
da872647cbe4 add deepChildOrganizationIdsPlusTest and Method
one
parents: 18
diff changeset
482 public Iterator<String> childOrganizationIds(String orgId, LinkedList<String> filterIds) {
da872647cbe4 add deepChildOrganizationIdsPlusTest and Method
one
parents: 18
diff changeset
483 if(!filter(orgId,filterIds))
da872647cbe4 add deepChildOrganizationIdsPlusTest and Method
one
parents: 18
diff changeset
484 return new NullIterator();
da872647cbe4 add deepChildOrganizationIdsPlusTest and Method
one
parents: 18
diff changeset
485 InterfaceTraverser orgTraverser = organizationTree.getTraverser();
da872647cbe4 add deepChildOrganizationIdsPlusTest and Method
one
parents: 18
diff changeset
486 Iterator<Pair<TreeNode, NodePath>> pairPersonIterator = orgTraverser.find(
da872647cbe4 add deepChildOrganizationIdsPlusTest and Method
one
parents: 18
diff changeset
487 (TreeNode node) -> {
da872647cbe4 add deepChildOrganizationIdsPlusTest and Method
one
parents: 18
diff changeset
488 String nodeElement = node.getAttributes().getString("element");
da872647cbe4 add deepChildOrganizationIdsPlusTest and Method
one
parents: 18
diff changeset
489 if (nodeElement == null)
da872647cbe4 add deepChildOrganizationIdsPlusTest and Method
one
parents: 18
diff changeset
490 return false;
da872647cbe4 add deepChildOrganizationIdsPlusTest and Method
one
parents: 18
diff changeset
491 if (!nodeElement.equals("Organization"))
da872647cbe4 add deepChildOrganizationIdsPlusTest and Method
one
parents: 18
diff changeset
492 return false;
da872647cbe4 add deepChildOrganizationIdsPlusTest and Method
one
parents: 18
diff changeset
493 String nodeId = node.getAttributes().getString("id");
da872647cbe4 add deepChildOrganizationIdsPlusTest and Method
one
parents: 18
diff changeset
494 if (nodeId == null)
da872647cbe4 add deepChildOrganizationIdsPlusTest and Method
one
parents: 18
diff changeset
495 return false;
da872647cbe4 add deepChildOrganizationIdsPlusTest and Method
one
parents: 18
diff changeset
496 if (nodeId.equals(orgId))
da872647cbe4 add deepChildOrganizationIdsPlusTest and Method
one
parents: 18
diff changeset
497 return true;
da872647cbe4 add deepChildOrganizationIdsPlusTest and Method
one
parents: 18
diff changeset
498 return false;
da872647cbe4 add deepChildOrganizationIdsPlusTest and Method
one
parents: 18
diff changeset
499 }
da872647cbe4 add deepChildOrganizationIdsPlusTest and Method
one
parents: 18
diff changeset
500 ,"element","Organization");
11
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
501
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
502 if (!pairPersonIterator.hasNext())
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
503 return new NullIterator();
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
504 TreeNode person = pairPersonIterator.next().left();
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
505
19
da872647cbe4 add deepChildOrganizationIdsPlusTest and Method
one
parents: 18
diff changeset
506
da872647cbe4 add deepChildOrganizationIdsPlusTest and Method
one
parents: 18
diff changeset
507 Iterator<Pair<TreeNode,NodePath>> chilrenOrgIdsIterator = orgTraverser.find(
11
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
508 (TreeNode node) -> {
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
509 String nodeElement = node.getAttributes().getString("element");
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
510 if (nodeElement == null)
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
511 return false;
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
512 if (nodeElement.equals("childOrganizations"))
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
513 return true;
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
514 return false;
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
515 }
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
516 ,person);
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
517
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
518 if (!chilrenOrgIdsIterator.hasNext())
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
519 return new NullIterator();
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
520
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
521 TreeNode chilerenOrgIds = chilrenOrgIdsIterator.next().left();
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
522
19
da872647cbe4 add deepChildOrganizationIdsPlusTest and Method
one
parents: 18
diff changeset
523 Iterator<Pair<TreeNode,NodePath>> chilrenOrgIdIterator = orgTraverser.find(
11
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
524 (TreeNode node) -> {
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
525 String nodeElement = node.getAttributes().getString("element");
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
526 if (nodeElement == null)
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
527 return false;
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
528 if (!nodeElement.equals("organizationRefIds"))
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
529 return false;
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
530 nodeElement = node.getAttributes().getString("text");
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
531 if (nodeElement != null)
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
532 return true;
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
533 return false;
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
534 }
16
4cfa77c61ee1 add childOrganizationIdsTest and Method
one
parents: 15
diff changeset
535 ,chilerenOrgIds);
11
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
536
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
537 LinkedList<String> ids = new LinkedList<String>();
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
538
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
539 for (;chilrenOrgIdIterator.hasNext();) {
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
540 ids.add(chilrenOrgIdIterator.next().left().getAttributes().getString("text"));
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
541 }
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
542
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
543 return ids.iterator();
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
544 }
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
545
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
546
10
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
547
9
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
548 public TreeNode getTarget(TreeNode node , NodePath path){
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
549 TreeNode target;
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
550 Pair<Integer, NodePath> pathNode = path.pop();
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
551 int num = pathNode.left();
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
552 NodePath newPath = pathNode.right();
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
553 if (num == -1 && newPath.size() != 0)
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
554 return getTarget(node, newPath);
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
555
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
556 Either<Error, TreeNode> either = node.getChildren().at(num);
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
557 if (either.isA())
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
558 return node;
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
559
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
560 TreeNode child = either.b();
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
561 if (pathNode.right().size() == 0)
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
562 return child;
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
563
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
564 target = getTarget(child,pathNode.right());
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
565 return target;
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
566 }
10
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
567
9
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
568 class NullIterator implements Iterator<String>{
7
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
569
9
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
570 @Override
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
571 public boolean hasNext() {
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
572 return false;
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
573 }
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
574
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
575 @Override
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
576 public String next() {
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
577 return null;
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
578 }
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
579
28f383f677ff add competentRoledTest and method
one
parents: 8
diff changeset
580 }
10
ccb74917f06a add concurrentRoleIdsTest and method
one
parents: 9
diff changeset
581
15
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
582 public String rolePriority(String personId, String roleId) {
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
583 InterfaceTraverser personTraverser = personTree.getTraverser();
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
584 Iterator<Pair<TreeNode,NodePath>> personIterator = personTraverser.find(
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
585 (TreeNode node) -> {
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
586 String element = node.getAttributes().getString("element");
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
587 if (element == null)
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
588 return false;
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
589 if (!element.equals("Person"))
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
590 return false;
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
591 String nodeId = node.getAttributes().getString("id");
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
592 if (nodeId == null)
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
593 return false;
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
594 if (nodeId.equals(personId))
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
595 return true;
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
596 return false;
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
597 });
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
598
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
599 if (!personIterator.hasNext())
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
600 return "";
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
601
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
602 TreeNode targetNode = personIterator.next().left();
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
603
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
604 Iterator<Pair<TreeNode,NodePath>> priorityIterator = personTraverser.find(
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
605 (TreeNode node) -> {
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
606 String element = node.getAttributes().getString("element");
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
607 if (element == null)
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
608 return false;
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
609 if (!element.equals("roleRefId"))
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
610 return false;
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
611 String compareRoleId = node.getAttributes().getString("text");
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
612 if (compareRoleId == null)
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
613 return false;
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
614 if (compareRoleId.equals(roleId))
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
615 return true;
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
616 return false;
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
617 },targetNode);
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
618
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
619 for (;priorityIterator.hasNext();) {
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
620 Pair<TreeNode, NodePath> priorityPair = priorityIterator.next();
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
621 NodePath roleNodePath = priorityPair.right();
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
622 Pair<Integer, NodePath> last = roleNodePath.last();
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
623 NodePath priorityNodePath = last.right().add(last.left() - 1);
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
624 TreeNode priorityNode = getTarget(targetNode,priorityNodePath);
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
625 if (priorityNode.getAttributes().getString("element").equals("priority"))
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
626 return priorityNode.getAttributes().getString("text");
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
627 }
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
628 return "";
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
629 }
5ef4b1004ade rolePriorityTest
one
parents: 14
diff changeset
630
20
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
631 public Iterator<String> parentOrganizationIds(String orgId, LinkedList<String> filterIds) {
21
daf0c3c810f9 add deepParentOrganizationIdsTest and Method
one
parents: 20
diff changeset
632 return _parentOrganizationIds(orgId, filterIds).iterator();
daf0c3c810f9 add deepParentOrganizationIdsTest and Method
one
parents: 20
diff changeset
633 }
daf0c3c810f9 add deepParentOrganizationIdsTest and Method
one
parents: 20
diff changeset
634 public LinkedList<String> _parentOrganizationIds(String orgId, LinkedList<String> filterIds) {
20
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
635
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
636 InterfaceTraverser orgTraverser = organizationTree.getTraverser();
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
637 Iterator<Pair<TreeNode,NodePath>> orgIterator = orgTraverser.find(
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
638 (TreeNode node) -> {
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
639 String element = node.getAttributes().getString("element");
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
640 if (element == null)
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
641 return false;
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
642 if (!element.equals("Organization"))
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
643 return false;
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
644 String nodeId = node.getAttributes().getString("id");
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
645 if (nodeId == null)
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
646 return false;
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
647 if (nodeId.equals(orgId))
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
648 return true;
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
649 return false;
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
650 });
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
651
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
652 if (!orgIterator.hasNext())
21
daf0c3c810f9 add deepParentOrganizationIdsTest and Method
one
parents: 20
diff changeset
653 return new LinkedList<String>();
20
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
654
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
655 TreeNode orgNode = orgIterator.next().left();
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
656
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
657 Iterator<Pair<TreeNode,NodePath>> parentOrgIterator = orgTraverser.find(
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
658 (TreeNode node) -> {
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
659 String element = node.getAttributes().getString("element");
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
660 if (element == null)
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
661 return false;
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
662 if (element.equals("parentOrganizations"))
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
663 return true;
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
664 return false;
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
665 }, orgNode);
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
666
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
667 LinkedList<String> parentIds = new LinkedList<String>();
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
668
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
669 for (;parentOrgIterator.hasNext();) {
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
670 TreeNode parentOrgNode = parentOrgIterator.next().left();
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
671
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
672 Iterator<Pair<TreeNode,NodePath>> parentNodeIterator = orgTraverser.find(
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
673 (TreeNode node) -> {
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
674 String element = node.getAttributes().getString("element");
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
675 if (element == null)
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
676 return false;
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
677 if (!element.equals("organizationRefId"))
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
678 return false;
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
679 String parentId = node.getAttributes().getString("text");
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
680 if (parentId != null)
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
681 return true;
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
682 return false;
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
683 }, parentOrgNode);
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
684
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
685 for (;parentNodeIterator.hasNext();) {
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
686 String parentId = parentNodeIterator.next().left().getAttributes().getString("text");
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
687 if (filter(parentId, filterIds))
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
688 parentIds.add(parentId);
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
689 }
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
690
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
691
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
692 }
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
693
21
daf0c3c810f9 add deepParentOrganizationIdsTest and Method
one
parents: 20
diff changeset
694 return parentIds;
daf0c3c810f9 add deepParentOrganizationIdsTest and Method
one
parents: 20
diff changeset
695 }
daf0c3c810f9 add deepParentOrganizationIdsTest and Method
one
parents: 20
diff changeset
696
daf0c3c810f9 add deepParentOrganizationIdsTest and Method
one
parents: 20
diff changeset
697 public Iterator<String> deepParentOrganizationIds(String orgId, LinkedList<String> filterIds) {
daf0c3c810f9 add deepParentOrganizationIdsTest and Method
one
parents: 20
diff changeset
698 return _deepParentOrganizationIds(orgId, filterIds).iterator();
daf0c3c810f9 add deepParentOrganizationIdsTest and Method
one
parents: 20
diff changeset
699 }
22
b6b5e3f48988 deepParentOrganizationIdsPlusTest and Method
one
parents: 21
diff changeset
700
21
daf0c3c810f9 add deepParentOrganizationIdsTest and Method
one
parents: 20
diff changeset
701 public LinkedList<String> _deepParentOrganizationIds(String orgId, LinkedList<String> filterIds) {
daf0c3c810f9 add deepParentOrganizationIdsTest and Method
one
parents: 20
diff changeset
702
daf0c3c810f9 add deepParentOrganizationIdsTest and Method
one
parents: 20
diff changeset
703
daf0c3c810f9 add deepParentOrganizationIdsTest and Method
one
parents: 20
diff changeset
704 Iterator<String> parentIds = parentOrganizationIds(orgId, filterIds);
daf0c3c810f9 add deepParentOrganizationIdsTest and Method
one
parents: 20
diff changeset
705 if (!parentIds.hasNext())
daf0c3c810f9 add deepParentOrganizationIdsTest and Method
one
parents: 20
diff changeset
706 return new LinkedList<String>();
daf0c3c810f9 add deepParentOrganizationIdsTest and Method
one
parents: 20
diff changeset
707
daf0c3c810f9 add deepParentOrganizationIdsTest and Method
one
parents: 20
diff changeset
708 LinkedList<String> parentIdList = new LinkedList<String>();
daf0c3c810f9 add deepParentOrganizationIdsTest and Method
one
parents: 20
diff changeset
709
daf0c3c810f9 add deepParentOrganizationIdsTest and Method
one
parents: 20
diff changeset
710 for (;parentIds.hasNext();) {
daf0c3c810f9 add deepParentOrganizationIdsTest and Method
one
parents: 20
diff changeset
711 String parentId = parentIds.next();
daf0c3c810f9 add deepParentOrganizationIdsTest and Method
one
parents: 20
diff changeset
712 if (filter(parentId, filterIds))
daf0c3c810f9 add deepParentOrganizationIdsTest and Method
one
parents: 20
diff changeset
713 parentIdList.add(parentId);
daf0c3c810f9 add deepParentOrganizationIdsTest and Method
one
parents: 20
diff changeset
714 parentIdList.addAll(_deepParentOrganizationIds(parentId, filterIds));
daf0c3c810f9 add deepParentOrganizationIdsTest and Method
one
parents: 20
diff changeset
715 }
daf0c3c810f9 add deepParentOrganizationIdsTest and Method
one
parents: 20
diff changeset
716 return parentIdList;
20
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
717 }
ae739e8d86a2 ad parentOrganizationsTest and method
one
parents: 19
diff changeset
718
22
b6b5e3f48988 deepParentOrganizationIdsPlusTest and Method
one
parents: 21
diff changeset
719 public Iterator<String> deepParentOrganizationIdsPlus(String id,LinkedList<String> filterIds) {
b6b5e3f48988 deepParentOrganizationIdsPlusTest and Method
one
parents: 21
diff changeset
720 LinkedList<String> parentIds = new LinkedList<String>();
b6b5e3f48988 deepParentOrganizationIdsPlusTest and Method
one
parents: 21
diff changeset
721 if (filter(id, filterIds))
b6b5e3f48988 deepParentOrganizationIdsPlusTest and Method
one
parents: 21
diff changeset
722 parentIds.add(id);
b6b5e3f48988 deepParentOrganizationIdsPlusTest and Method
one
parents: 21
diff changeset
723 parentIds.addAll(_deepParentOrganizationIds(id,filterIds));
b6b5e3f48988 deepParentOrganizationIdsPlusTest and Method
one
parents: 21
diff changeset
724 return parentIds.iterator();
b6b5e3f48988 deepParentOrganizationIdsPlusTest and Method
one
parents: 21
diff changeset
725 }
b6b5e3f48988 deepParentOrganizationIdsPlusTest and Method
one
parents: 21
diff changeset
726
23
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
727 public String stringPathToId(String args) {
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
728 String[] splitPath = args.split(":");
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
729
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
730 String str = splitPath[2];
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
731 for (int count = 3; count < splitPath.length;count++) {
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
732 str = str + ":" + splitPath[count];
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
733 }
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
734
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
735 final String StrPath = str;
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
736
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
737 InterfaceTraverser traverser = null;
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
738 TreeNode root = null ;
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
739 if (splitPath[0].equals("r")) {
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
740 traverser = roleTree.getTraverser();
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
741 root = roleTree.getRootNode();
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
742 }
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
743 if (splitPath[0].equals("rde")) {
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
744 traverser = rdeTree.getTraverser();
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
745 root = rdeTree.getRootNode();
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
746 }
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
747
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
748 Iterator<Pair<TreeNode,NodePath>> idIterator = traverser.find(
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
749 (TreeNode node) -> {
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
750 String element = node.getAttributes().getString("element");
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
751 if (element == null)
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
752 return false;
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
753 if (!element.equals("path"))
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
754 return false;
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
755 String pathString = node.getAttributes().getString("text");
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
756 if (pathString == null)
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
757 return false;
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
758 if (pathString.equals(StrPath))
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
759 return true;
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
760 return false;
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
761 });
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
762
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
763 if (!idIterator.hasNext())
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
764 return "";
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
765
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
766 Pair<TreeNode, NodePath> nodePair = idIterator.next();
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
767 NodePath path = nodePair.right();
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
768 NodePath targetPath = path.last().right();
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
769
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
770 TreeNode targetNode = getTarget(root, targetPath);
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
771 String targetId = targetNode.getAttributes().getString("id");
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
772 return targetId;
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
773 }
a9dc4ffd1f52 add stringPathToIdTest and Method
one
parents: 22
diff changeset
774
11
67305f53aad0 change fj List to LinkedList
one
parents: 10
diff changeset
775
16
4cfa77c61ee1 add childOrganizationIdsTest and Method
one
parents: 15
diff changeset
776
4cfa77c61ee1 add childOrganizationIdsTest and Method
one
parents: 15
diff changeset
777
17
f59fc20f4af9 add deepChildOrganizationIdsTest and Method
one
parents: 16
diff changeset
778
18
0fce1292ab38 add deepPersonIdsTest and Method but not Test
one
parents: 17
diff changeset
779
0fce1292ab38 add deepPersonIdsTest and Method but not Test
one
parents: 17
diff changeset
780
7
47eb9ee2a1db add PersonIdsTest and Method
one
parents:
diff changeset
781 }