1 package org.apache.fulcrum.intake.model;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.commons.lang3.StringUtils;
23 import org.apache.fulcrum.intake.IntakeException;
24 import org.apache.fulcrum.intake.validator.StringValidator;
25
26
27
28
29
30
31
32
33
34 public class StringField
35 extends Field<String>
36 {
37
38 private static final long serialVersionUID = -7218385325093690333L;
39
40
41
42
43
44
45
46
47 public StringField(XmlField field, Group group)
48 throws IntakeException
49 {
50 super(field, group);
51 }
52
53
54
55
56
57
58 @Override
59 protected String getDefaultValidator()
60 {
61 return StringValidator.class.getName();
62 }
63
64
65
66
67
68
69 @Override
70 public void setDefaultValue(String prop)
71 {
72 defaultValue = prop;
73 }
74
75
76
77
78
79
80
81
82
83 @Override
84 public void setEmptyValue(String prop)
85 {
86 emptyValue = prop;
87 }
88
89
90
91
92 @Override
93 protected void doSetValue()
94 {
95 if (isMultiValued())
96 {
97 String[] ss = parser.getStrings(getKey());
98 String[] sval = new String[ss.length];
99 for (int i = 0; i < ss.length; i++)
100 {
101 sval[i] = StringUtils.isNotEmpty(ss[i]) ? ss[i] : (String) getEmptyValue();
102 }
103 setTestValue(sval);
104 }
105 else
106 {
107 String val = parser.getString(getKey());
108 setTestValue(StringUtils.isNotEmpty(val) ? val : (String) getEmptyValue());
109 }
110 }
111
112
113
114
115
116
117
118 @Override
119 public void setRequired(boolean v, String message)
120 {
121 super.setRequired(v, message);
122 if (v)
123 {
124 if (isMultiValued())
125 {
126 String[] ss = (String[]) getTestValue();
127 if (ss == null || ss.length == 0)
128 {
129 setValid(false);
130 setMessage(message);
131 }
132 else
133 {
134 boolean set = false;
135 for (int i = 0; i < ss.length; i++)
136 {
137 set |= StringUtils.isNotEmpty(ss[i]);
138 if (set)
139 {
140 break;
141 }
142 }
143 if (!set)
144 {
145 setValid(false);
146 setMessage(message);
147 }
148 }
149 }
150 else
151 {
152 if (!isSet() || StringUtils.isEmpty((String)getTestValue()))
153 {
154 setValid(false);
155 setMessage(message);
156 }
157 }
158 }
159 }
160 }