1 | |
package org.kuali.student.r2.core.atp.service; |
2 | |
|
3 | |
import java.util.Date; |
4 | |
import java.util.List; |
5 | |
|
6 | |
import org.kuali.rice.core.api.criteria.QueryByCriteria; |
7 | |
|
8 | |
import org.kuali.student.r2.common.exceptions.*; |
9 | |
import org.kuali.student.r2.core.atp.dto.AtpAtpRelationInfo; |
10 | |
import org.kuali.student.r2.core.atp.dto.AtpInfo; |
11 | |
import org.kuali.student.r2.core.atp.dto.MilestoneInfo; |
12 | |
|
13 | |
import org.kuali.student.r2.common.dto.ContextInfo; |
14 | |
import org.kuali.student.r2.common.dto.StateInfo; |
15 | |
import org.kuali.student.r2.common.dto.StateProcessInfo; |
16 | |
import org.kuali.student.r2.common.dto.StatusInfo; |
17 | |
import org.kuali.student.r2.common.dto.TypeInfo; |
18 | |
import org.kuali.student.r2.common.dto.TypeTypeRelationInfo; |
19 | |
import org.kuali.student.r2.common.dto.ValidationResultInfo; |
20 | |
import org.kuali.student.r2.common.datadictionary.dto.DictionaryEntryInfo; |
21 | |
|
22 | |
import javax.jws.WebParam; |
23 | |
|
24 | 0 | public class AtpServiceDecorator implements AtpService { |
25 | |
|
26 | |
private AtpService nextDecorator; |
27 | |
|
28 | |
public AtpService getNextDecorator() throws OperationFailedException { |
29 | 0 | if (null == nextDecorator) { |
30 | 0 | throw new OperationFailedException("Misconfigured application: nextDecorator is null"); |
31 | |
} |
32 | |
|
33 | 0 | return nextDecorator; |
34 | |
} |
35 | |
|
36 | |
public void setNextDecorator(AtpService nextDecorator) { |
37 | 0 | this.nextDecorator = nextDecorator; |
38 | 0 | } |
39 | |
|
40 | |
@Override |
41 | |
public List<String> getDataDictionaryEntryKeys(ContextInfo context) throws OperationFailedException, MissingParameterException, PermissionDeniedException { |
42 | |
|
43 | 0 | return getNextDecorator().getDataDictionaryEntryKeys(context); |
44 | |
} |
45 | |
|
46 | |
@Override |
47 | |
public DictionaryEntryInfo getDataDictionaryEntry(String entryKey, ContextInfo context) throws OperationFailedException, MissingParameterException, PermissionDeniedException, |
48 | |
DoesNotExistException { |
49 | |
|
50 | 0 | return getNextDecorator().getDataDictionaryEntry(entryKey, context); |
51 | |
} |
52 | |
|
53 | |
@Override |
54 | |
public TypeInfo getType(String typeKey, ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException { |
55 | |
|
56 | 0 | return getNextDecorator().getType(typeKey, context); |
57 | |
} |
58 | |
|
59 | |
@Override |
60 | |
public List<TypeInfo> getTypesByRefObjectURI(String refObjectURI, ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException { |
61 | |
|
62 | 0 | return getNextDecorator().getTypesByRefObjectURI(refObjectURI, context); |
63 | |
} |
64 | |
|
65 | |
@Override |
66 | |
public List<TypeInfo> getAllowedTypesForType(String ownerTypeKey, String relatedRefObjectURI, ContextInfo context) throws DoesNotExistException, InvalidParameterException, |
67 | |
MissingParameterException, OperationFailedException { |
68 | |
|
69 | 0 | return getNextDecorator().getAllowedTypesForType(ownerTypeKey, relatedRefObjectURI, context); |
70 | |
} |
71 | |
|
72 | |
@Override |
73 | |
public List<TypeTypeRelationInfo> getTypeRelationsByOwnerType(String ownerTypeKey, String relationTypeKey, ContextInfo context) throws DoesNotExistException, InvalidParameterException, |
74 | |
MissingParameterException, OperationFailedException { |
75 | |
|
76 | 0 | return getNextDecorator().getTypeRelationsByOwnerType(ownerTypeKey, relationTypeKey, context); |
77 | |
} |
78 | |
|
79 | |
@Override |
80 | |
public StateProcessInfo getProcessByKey(String processKey, ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException { |
81 | |
|
82 | 0 | return getNextDecorator().getProcessByKey(processKey, context); |
83 | |
} |
84 | |
|
85 | |
@Override |
86 | |
public List<String> getProcessByObjectType(String refObjectUri, ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException { |
87 | |
|
88 | 0 | return getNextDecorator().getProcessByObjectType(refObjectUri, context); |
89 | |
} |
90 | |
|
91 | |
@Override |
92 | |
public StateInfo getState(String processKey, String stateKey, ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException { |
93 | |
|
94 | 0 | return getNextDecorator().getState(processKey, stateKey, context); |
95 | |
} |
96 | |
|
97 | |
@Override |
98 | |
public List<StateInfo> getStatesByProcess(String processKey, ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException { |
99 | |
|
100 | 0 | return getNextDecorator().getStatesByProcess(processKey, context); |
101 | |
} |
102 | |
|
103 | |
@Override |
104 | |
public List<StateInfo> getInitialValidStates(String processKey, ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException { |
105 | |
|
106 | 0 | return getNextDecorator().getInitialValidStates(processKey, context); |
107 | |
} |
108 | |
|
109 | |
@Override |
110 | |
public StateInfo getNextHappyState(String processKey, String currentStateKey, ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, |
111 | |
OperationFailedException { |
112 | |
|
113 | 0 | return getNextDecorator().getNextHappyState(processKey, currentStateKey, context); |
114 | |
} |
115 | |
|
116 | |
@Override |
117 | |
public AtpInfo getAtp(String atpKey, ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException { |
118 | |
|
119 | 0 | return getNextDecorator().getAtp(atpKey, context); |
120 | |
} |
121 | |
|
122 | |
@Override |
123 | |
public List<AtpInfo> getAtpsByKeys(List<String> atpKeyList, ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, |
124 | |
PermissionDeniedException { |
125 | |
|
126 | 0 | return getNextDecorator().getAtpsByKeys(atpKeyList, context); |
127 | |
} |
128 | |
|
129 | |
@Override |
130 | |
public List<String> getAtpKeysByType(String atpTypeKey, ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException { |
131 | |
|
132 | 0 | return getNextDecorator().getAtpKeysByType(atpTypeKey, context); |
133 | |
} |
134 | |
|
135 | |
@Override |
136 | |
public List<AtpInfo> getAtpsByDate(Date searchDate, ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException { |
137 | |
|
138 | 0 | return getNextDecorator().getAtpsByDate(searchDate, context); |
139 | |
} |
140 | |
|
141 | |
@Override |
142 | |
public List<AtpInfo> getAtpsByDateAndType(Date searchDate, String searchTypeKey, ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, |
143 | |
PermissionDeniedException { |
144 | |
|
145 | 0 | return getNextDecorator().getAtpsByDateAndType(searchDate, searchTypeKey, context); |
146 | |
} |
147 | |
|
148 | |
@Override |
149 | |
public List<AtpInfo> getAtpsByDates(Date startDate, Date endDate, ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, |
150 | |
PermissionDeniedException { |
151 | |
|
152 | 0 | return getNextDecorator().getAtpsByDates(startDate, endDate, context); |
153 | |
} |
154 | |
|
155 | |
@Override |
156 | |
public List<AtpInfo> getAtpsByDatesAndType(Date startDate, Date endDate, String searchTypeKey, ContextInfo context) throws InvalidParameterException, MissingParameterException, |
157 | |
OperationFailedException, PermissionDeniedException { |
158 | |
|
159 | 0 | return getNextDecorator().getAtpsByDatesAndType(startDate, endDate, searchTypeKey, context); |
160 | |
} |
161 | |
|
162 | |
@Override |
163 | |
public List<AtpInfo> getAtpsByStartDateRange(Date searchDateRangeStart, Date searchDateRangeEnd, ContextInfo context) throws InvalidParameterException, MissingParameterException, |
164 | |
OperationFailedException, PermissionDeniedException { |
165 | |
|
166 | 0 | return getNextDecorator().getAtpsByStartDateRange(searchDateRangeStart, searchDateRangeEnd, context); |
167 | |
} |
168 | |
|
169 | |
@Override |
170 | |
public List<AtpInfo> getAtpsByStartDateRangeAndType(Date searchDateRangeStart, Date searchDateRangeEnd, String searchTypeKey, ContextInfo context) throws InvalidParameterException, |
171 | |
MissingParameterException, OperationFailedException, PermissionDeniedException { |
172 | |
|
173 | 0 | return getNextDecorator().getAtpsByStartDateRangeAndType(searchDateRangeStart, searchDateRangeEnd, searchTypeKey, context); |
174 | |
} |
175 | |
|
176 | |
@Override |
177 | |
public MilestoneInfo getMilestone(String milestoneKey, ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, |
178 | |
PermissionDeniedException { |
179 | |
|
180 | 0 | return getNextDecorator().getMilestone(milestoneKey, context); |
181 | |
} |
182 | |
|
183 | |
@Override |
184 | |
public List<MilestoneInfo> getMilestonesByIds(List<String> milestoneKeyList, ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, |
185 | |
OperationFailedException, PermissionDeniedException { |
186 | |
|
187 | 0 | return getNextDecorator().getMilestonesByIds(milestoneKeyList, context); |
188 | |
} |
189 | |
|
190 | |
@Override |
191 | |
public List<String> getMilestoneIdsByType(String milestoneTypeKey, ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, |
192 | |
PermissionDeniedException { |
193 | |
|
194 | 0 | return getNextDecorator().getMilestoneIdsByType(milestoneTypeKey, context); |
195 | |
} |
196 | |
|
197 | |
@Override |
198 | |
public List<MilestoneInfo> getMilestonesForAtp(String atpKey, ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException { |
199 | |
|
200 | 0 | return getNextDecorator().getMilestonesForAtp(atpKey, context); |
201 | |
} |
202 | |
|
203 | |
@Override |
204 | |
public List<MilestoneInfo> getMilestonesByDatesForAtp(@WebParam(name = "atpKey") String atpKey, @WebParam(name = "startDate") Date startDate, @WebParam(name = "endDate") Date endDate, |
205 | |
@WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException { |
206 | 0 | return getNextDecorator().getMilestonesByDatesForAtp(atpKey, startDate, endDate, contextInfo); |
207 | |
} |
208 | |
|
209 | |
@Override |
210 | |
public List<MilestoneInfo> getMilestonesByTypeForAtp(@WebParam(name = "atpKey") String atpKey, @WebParam(name = "milestoneTypeKey") String milestoneTypeKey, |
211 | |
@WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException { |
212 | 0 | return getNextDecorator().getMilestonesByTypeForAtp(atpKey, milestoneTypeKey, contextInfo); |
213 | |
} |
214 | |
|
215 | |
@Override |
216 | |
public List<MilestoneInfo> getMilestonesByDates(Date startDate, Date endDate, ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, |
217 | |
PermissionDeniedException { |
218 | |
|
219 | 0 | return getNextDecorator().getMilestonesByDates(startDate, endDate, context); |
220 | |
} |
221 | |
|
222 | |
@Override |
223 | |
public List<String> searchForAtpKeys(QueryByCriteria criteria, ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, |
224 | |
PermissionDeniedException { |
225 | |
|
226 | 0 | return getNextDecorator().searchForAtpKeys(criteria, context); |
227 | |
} |
228 | |
|
229 | |
@Override |
230 | |
public List<AtpInfo> searchForAtps(QueryByCriteria criteria, ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException { |
231 | |
|
232 | 0 | return getNextDecorator().searchForAtps(criteria, context); |
233 | |
} |
234 | |
|
235 | |
@Override |
236 | |
public List<ValidationResultInfo> validateAtp(String validationType, String atpTypeKey, AtpInfo atpInfo, ContextInfo context) throws DoesNotExistException, InvalidParameterException, |
237 | |
MissingParameterException, OperationFailedException, PermissionDeniedException { |
238 | |
|
239 | 0 | return getNextDecorator().validateAtp(validationType, atpTypeKey, atpInfo, context); |
240 | |
} |
241 | |
|
242 | |
@Override |
243 | |
public AtpInfo createAtp(String atpKey, AtpInfo atpInfo, ContextInfo context) throws AlreadyExistsException, DataValidationErrorException, InvalidParameterException, MissingParameterException, |
244 | |
OperationFailedException, PermissionDeniedException { |
245 | |
|
246 | 0 | return getNextDecorator().createAtp(atpKey, atpInfo, context); |
247 | |
} |
248 | |
|
249 | |
@Override |
250 | |
public AtpInfo updateAtp(String atpKey, AtpInfo atpInfo, ContextInfo context) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, |
251 | |
OperationFailedException, PermissionDeniedException, VersionMismatchException, ReadOnlyException { |
252 | |
|
253 | 0 | return getNextDecorator().updateAtp(atpKey, atpInfo, context); |
254 | |
} |
255 | |
|
256 | |
@Override |
257 | |
public StatusInfo deleteAtp(String atpKey, ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, |
258 | |
PermissionDeniedException { |
259 | |
|
260 | 0 | return getNextDecorator().deleteAtp(atpKey, context); |
261 | |
} |
262 | |
|
263 | |
@Override |
264 | |
public List<String> searchForMilestoneIds(QueryByCriteria criteria, ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, |
265 | |
PermissionDeniedException { |
266 | |
|
267 | 0 | return getNextDecorator().searchForMilestoneIds(criteria, context); |
268 | |
} |
269 | |
|
270 | |
@Override |
271 | |
public List<MilestoneInfo> searchForMilestones(QueryByCriteria criteria, ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, |
272 | |
PermissionDeniedException { |
273 | |
|
274 | 0 | return getNextDecorator().searchForMilestones(criteria, context); |
275 | |
} |
276 | |
|
277 | |
@Override |
278 | |
public List<ValidationResultInfo> validateMilestone(String validationType, MilestoneInfo milestoneInfo, ContextInfo context) throws DoesNotExistException, InvalidParameterException, |
279 | |
MissingParameterException, OperationFailedException, PermissionDeniedException { |
280 | |
|
281 | 0 | return getNextDecorator().validateMilestone(validationType, milestoneInfo, context); |
282 | |
} |
283 | |
|
284 | |
@Override |
285 | |
public MilestoneInfo createMilestone(MilestoneInfo milestoneInfo, ContextInfo context) throws DataValidationErrorException, InvalidParameterException, MissingParameterException, |
286 | |
OperationFailedException, PermissionDeniedException, ReadOnlyException { |
287 | |
|
288 | 0 | return getNextDecorator().createMilestone(milestoneInfo, context); |
289 | |
} |
290 | |
|
291 | |
@Override |
292 | |
public MilestoneInfo updateMilestone(String milestoneKey, MilestoneInfo milestoneInfo, ContextInfo context) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, |
293 | |
MissingParameterException, OperationFailedException, PermissionDeniedException, VersionMismatchException, ReadOnlyException { |
294 | |
|
295 | 0 | return getNextDecorator().updateMilestone(milestoneKey, milestoneInfo, context); |
296 | |
} |
297 | |
|
298 | |
@Override |
299 | |
public StatusInfo deleteMilestone(String milestoneKey, ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, |
300 | |
PermissionDeniedException { |
301 | |
|
302 | 0 | return getNextDecorator().deleteMilestone(milestoneKey, context); |
303 | |
} |
304 | |
|
305 | |
@Override |
306 | |
public StatusInfo addMilestoneToAtp(@WebParam(name = "milestoneId") String milestoneId, @WebParam(name = "atpKey") String atpKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) |
307 | |
throws AlreadyExistsException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException { |
308 | 0 | return getNextDecorator().addMilestoneToAtp(milestoneId, atpKey, contextInfo); |
309 | |
} |
310 | |
|
311 | |
@Override |
312 | |
public StatusInfo removeMilestoneFromAtp(@WebParam(name = "milestoneId") String milestoneId, @WebParam(name = "atpKey") String atpKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) |
313 | |
throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException { |
314 | 0 | return getNextDecorator().removeMilestoneFromAtp(milestoneId, atpKey, contextInfo); |
315 | |
} |
316 | |
|
317 | |
@Override |
318 | |
public AtpAtpRelationInfo getAtpAtpRelation(String atpAtpRelationId, ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, |
319 | |
OperationFailedException, PermissionDeniedException { |
320 | |
|
321 | 0 | return getNextDecorator().getAtpAtpRelation(atpAtpRelationId, context); |
322 | |
} |
323 | |
|
324 | |
@Override |
325 | |
public List<AtpAtpRelationInfo> getAtpAtpRelationsByIds(List<String> atpAtpRelationIds, ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, |
326 | |
MissingParameterException, OperationFailedException, PermissionDeniedException { |
327 | 0 | return getNextDecorator().getAtpAtpRelationsByIds(atpAtpRelationIds, contextInfo); |
328 | |
} |
329 | |
|
330 | |
@Override |
331 | |
public List<String> getAtpAtpRelationIdsByType(String atpAtpRelationTypeKey, ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, |
332 | |
PermissionDeniedException { |
333 | |
|
334 | 0 | return getNextDecorator().getAtpAtpRelationIdsByType(atpAtpRelationTypeKey, context); |
335 | |
} |
336 | |
|
337 | |
@Override |
338 | |
public List<AtpAtpRelationInfo> getAtpAtpRelationsByAtp(String atpKey, ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, |
339 | |
PermissionDeniedException { |
340 | |
|
341 | 0 | return getNextDecorator().getAtpAtpRelationsByAtp(atpKey, context); |
342 | |
} |
343 | |
|
344 | |
@Override |
345 | |
public List<AtpAtpRelationInfo> getAtpAtpRelationsByAtps(@WebParam(name = "atpKey") String atpKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, |
346 | |
MissingParameterException, OperationFailedException, PermissionDeniedException { |
347 | 0 | return getNextDecorator().getAtpAtpRelationsByAtps(atpKey, contextInfo); |
348 | |
} |
349 | |
|
350 | |
@Override |
351 | |
public List<String> searchForAtpAtpRelationIds(QueryByCriteria criteria, ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, |
352 | |
PermissionDeniedException { |
353 | |
|
354 | 0 | return getNextDecorator().searchForAtpAtpRelationIds(criteria, context); |
355 | |
} |
356 | |
|
357 | |
@Override |
358 | |
public List<AtpAtpRelationInfo> searchForAtpAtpRelations(QueryByCriteria criteria, ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, |
359 | |
PermissionDeniedException { |
360 | |
|
361 | 0 | return getNextDecorator().searchForAtpAtpRelations(criteria, context); |
362 | |
} |
363 | |
|
364 | |
@Override |
365 | |
public List<ValidationResultInfo> validateAtpAtpRelation(String validationTypeKey, String atpKey, String atpPeerKey, String atpAtpRelationTypeKey, AtpAtpRelationInfo atpAtpRelationInfo, |
366 | |
ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException { |
367 | |
|
368 | 0 | return getNextDecorator().validateAtpAtpRelation(validationTypeKey, atpKey, atpPeerKey, atpAtpRelationTypeKey, atpAtpRelationInfo, contextInfo); |
369 | |
} |
370 | |
|
371 | |
@Override |
372 | |
public AtpAtpRelationInfo createAtpAtpRelation(String atpKey, String atpPeerKey, AtpAtpRelationInfo atpAtpRelationInfo, ContextInfo contextInfo) throws DoesNotExistException, |
373 | |
DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException { |
374 | |
|
375 | 0 | return getNextDecorator().createAtpAtpRelation(atpKey, atpPeerKey, atpAtpRelationInfo, contextInfo); |
376 | |
} |
377 | |
|
378 | |
@Override |
379 | |
public AtpAtpRelationInfo updateAtpAtpRelation(String atpAtpRelationId, AtpAtpRelationInfo atpAtpRelationInfo, ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, |
380 | |
InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException { |
381 | 0 | return getNextDecorator().updateAtpAtpRelation(atpAtpRelationId, atpAtpRelationInfo, contextInfo); |
382 | |
} |
383 | |
|
384 | |
@Override |
385 | |
public StatusInfo deleteAtpAtpRelation(String atpAtpRelationId, ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, |
386 | |
PermissionDeniedException { |
387 | |
|
388 | 0 | return getNextDecorator().deleteAtpAtpRelation(atpAtpRelationId, context); |
389 | |
} |
390 | |
|
391 | |
@Override |
392 | |
public List<AtpAtpRelationInfo> getAtpAtpRelationsByTypeAndAtp(String atpKey, String relationType, ContextInfo context) throws InvalidParameterException, MissingParameterException, |
393 | |
OperationFailedException, PermissionDeniedException { |
394 | 0 | return getNextDecorator().getAtpAtpRelationsByTypeAndAtp(atpKey, relationType, context); |
395 | |
} |
396 | |
} |