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

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