Classes in this File | Line Coverage | Branch Coverage | Complexity | ||||
UniversityIdWorkflowEDLConfigComponent |
|
| 3.5;3.5 |
1 | /* | |
2 | * Copyright 2005-2009 The Kuali Foundation | |
3 | * | |
4 | * | |
5 | * Licensed under the Educational Community License, Version 2.0 (the "License"); | |
6 | * you may not use this file except in compliance with the License. | |
7 | * You may obtain a copy of the License at | |
8 | * | |
9 | * http://www.opensource.org/licenses/ecl2.php | |
10 | * | |
11 | * Unless required by applicable law or agreed to in writing, software | |
12 | * distributed under the License is distributed on an "AS IS" BASIS, | |
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
14 | * See the License for the specific language governing permissions and | |
15 | * limitations under the License. | |
16 | */ | |
17 | package org.kuali.rice.edl.impl.components; | |
18 | ||
19 | import org.kuali.rice.edl.impl.EDLXmlUtils; | |
20 | import org.kuali.rice.edl.impl.RequestParser; | |
21 | import org.kuali.rice.kim.api.identity.principal.Principal; | |
22 | import org.kuali.rice.kim.api.services.KimApiServiceLocator; | |
23 | import org.w3c.dom.Element; | |
24 | import org.w3c.dom.NodeList; | |
25 | ||
26 | ||
27 | /** | |
28 | * Matches university ID param to UserService to validate universityId. Returns error message if | |
29 | * universityId does NOT match. | |
30 | * | |
31 | * @author Kuali Rice Team (rice.collab@kuali.org) | |
32 | */ | |
33 | 0 | public class UniversityIdWorkflowEDLConfigComponent extends SimpleWorkflowEDLConfigComponent { |
34 | ||
35 | private boolean required; | |
36 | ||
37 | @Override | |
38 | public Element getReplacementConfigElement(Element element) { | |
39 | 0 | Element replacementEl = (Element)element.cloneNode(true); |
40 | 0 | Element type = (Element)((NodeList)replacementEl.getElementsByTagName(EDLXmlUtils.TYPE_E)).item(0); |
41 | 0 | type.setTextContent("text"); |
42 | ||
43 | //find the validation element if required is true set a boolean and determin if blanks | |
44 | //are allowed based on that | |
45 | 0 | Element validation = (Element)((NodeList)replacementEl.getElementsByTagName(EDLXmlUtils.VALIDATION_E)).item(0); |
46 | 0 | if (validation != null && validation.getAttribute("required").equals("true")) { |
47 | 0 | required = true; |
48 | } | |
49 | 0 | return replacementEl; |
50 | } | |
51 | ||
52 | @Override | |
53 | public String getErrorMessage(Element originalConfigElement, RequestParser requestParser, MatchingParam param) { | |
54 | ||
55 | /* | |
56 | * <documentContent> | |
57 | * <applicationContent> | |
58 | * <data edlName="Test2"> | |
59 | * <version current="true" date="Thu Sep 14 14:44:43 EDT 2006" version="0"> | |
60 | * <field name="networkId"> | |
61 | * <value>jitrue</value> | |
62 | * </field> | |
63 | * <field name="universityId"> | |
64 | * <value>0000394389</value> | |
65 | * </field> | |
66 | * </version> | |
67 | * </data> | |
68 | * </applicationContent> | |
69 | * </documentContent> | |
70 | */ | |
71 | ||
72 | 0 | if (param.getParamValue().length() == 0 && required == true) { |
73 | //empty and required so send error | |
74 | 0 | return ("University ID is a required field"); |
75 | 0 | } else if (param.getParamValue().length() == 0 && required == false) { |
76 | //empty but not required then just return | |
77 | 0 | return null; |
78 | } else { | |
79 | //not blank validate as normal whether required or not | |
80 | 0 | String employeeId = param.getParamValue(); |
81 | ||
82 | 0 | Principal principal = KimApiServiceLocator.getIdentityService().getPrincipal(employeeId); |
83 | 0 | if (principal == null) { |
84 | 0 | return ("The value " + employeeId + " is an invalid University ID"); |
85 | } | |
86 | ||
87 | ||
88 | } | |
89 | 0 | return null; |
90 | } | |
91 | ||
92 | public boolean isRequired() { | |
93 | 0 | return required; |
94 | } | |
95 | ||
96 | public void setRequired(boolean required) { | |
97 | 0 | this.required = required; |
98 | 0 | } |
99 | ||
100 | ||
101 | } | |
102 |