001
014
015 package com.liferay.portlet.dynamicdatamapping.model;
016
017 import com.liferay.portal.kernel.util.MapUtil;
018 import com.liferay.portal.kernel.util.Validator;
019
020 import java.io.Serializable;
021
022 import java.util.ArrayList;
023 import java.util.LinkedHashMap;
024 import java.util.List;
025 import java.util.Map;
026
027
031 public class DDMFormField implements Serializable {
032
033 public DDMFormField(DDMFormField ddmFormField) {
034 _properties = new LinkedHashMap<>(ddmFormField._properties);
035
036 setDDMFormFieldOptions(
037 new DDMFormFieldOptions(ddmFormField.getDDMFormFieldOptions()));
038 setLabel(new LocalizedValue(ddmFormField.getLabel()));
039 setPredefinedValue(
040 new LocalizedValue(ddmFormField.getPredefinedValue()));
041 setStyle(new LocalizedValue(ddmFormField.getStyle()));
042 setTip(new LocalizedValue(ddmFormField.getTip()));
043
044 for (DDMFormField nestedDDMFormField :
045 ddmFormField._nestedDDMFormFields) {
046
047 addNestedDDMFormField(nestedDDMFormField);
048 }
049 }
050
051 public DDMFormField(String name, String type) {
052 _properties = new LinkedHashMap<>();
053
054 setName(name);
055 setType(type);
056
057 setDDMFormFieldOptions(new DDMFormFieldOptions());
058 setLabel(new LocalizedValue());
059 setPredefinedValue(new LocalizedValue());
060 setStyle(new LocalizedValue());
061 setTip(new LocalizedValue());
062 }
063
064 public void addNestedDDMFormField(DDMFormField nestedDDMFormField) {
065 nestedDDMFormField.setDDMForm(_ddmForm);
066
067 _nestedDDMFormFields.add(nestedDDMFormField);
068 }
069
070 public String getDataType() {
071 return MapUtil.getString(_properties, "dataType");
072 }
073
074 public DDMForm getDDMForm() {
075 return _ddmForm;
076 }
077
078 public DDMFormFieldOptions getDDMFormFieldOptions() {
079 return (DDMFormFieldOptions)_properties.get("options");
080 }
081
082 public String getFieldNamespace() {
083 return MapUtil.getString(_properties, "fieldNamespace");
084 }
085
086 public String getIndexType() {
087 return MapUtil.getString(_properties, "indexType");
088 }
089
090 public LocalizedValue getLabel() {
091 return (LocalizedValue)_properties.get("label");
092 }
093
094 public String getName() {
095 return MapUtil.getString(_properties, "name");
096 }
097
098 public List<DDMFormField> getNestedDDMFormFields() {
099 return _nestedDDMFormFields;
100 }
101
102 public Map<String, DDMFormField> getNestedDDMFormFieldsMap() {
103 Map<String, DDMFormField> nestedDDMFormFieldsMap =
104 new LinkedHashMap<>();
105
106 for (DDMFormField nestedDDMFormField : _nestedDDMFormFields) {
107 nestedDDMFormFieldsMap.put(
108 nestedDDMFormField.getName(), nestedDDMFormField);
109
110 nestedDDMFormFieldsMap.putAll(
111 nestedDDMFormField.getNestedDDMFormFieldsMap());
112 }
113
114 return nestedDDMFormFieldsMap;
115 }
116
117 public LocalizedValue getPredefinedValue() {
118 return (LocalizedValue)_properties.get("predefinedValue");
119 }
120
121 public Object getProperty(String name) {
122 return _properties.get(name);
123 }
124
125 public LocalizedValue getStyle() {
126 return (LocalizedValue)_properties.get("style");
127 }
128
129 public LocalizedValue getTip() {
130 return (LocalizedValue)_properties.get("tip");
131 }
132
133 public String getType() {
134 return MapUtil.getString(_properties, "type");
135 }
136
137 public String getVisibilityExpression() {
138 return MapUtil.getString(_properties, "visibilityExpression");
139 }
140
141 public boolean isLocalizable() {
142 return MapUtil.getBoolean(_properties, "localizable");
143 }
144
145 public boolean isMultiple() {
146 return MapUtil.getBoolean(_properties, "multiple");
147 }
148
149 public boolean isReadOnly() {
150 return MapUtil.getBoolean(_properties, "readOnly");
151 }
152
153 public boolean isRepeatable() {
154 return MapUtil.getBoolean(_properties, "repeatable");
155 }
156
157 public boolean isRequired() {
158 return MapUtil.getBoolean(_properties, "required");
159 }
160
161 public boolean isShowLabel() {
162 return MapUtil.getBoolean(_properties, "showLabel");
163 }
164
165 public boolean isTransient() {
166 if (Validator.isNull(getDataType())) {
167 return true;
168 }
169
170 return false;
171 }
172
173 public void setDataType(String dataType) {
174 _properties.put("dataType", dataType);
175 }
176
177 public void setDDMForm(DDMForm ddmForm) {
178 for (DDMFormField nestedDDMFormField : _nestedDDMFormFields) {
179 nestedDDMFormField.setDDMForm(ddmForm);
180 }
181
182 _ddmForm = ddmForm;
183 }
184
185 public void setDDMFormFieldOptions(
186 DDMFormFieldOptions ddmFormFieldOptions) {
187
188 _properties.put("options", ddmFormFieldOptions);
189 }
190
191 public void setFieldNamespace(String fieldNamespace) {
192 _properties.put("fieldNamespace", fieldNamespace);
193 }
194
195 public void setIndexType(String indexType) {
196 _properties.put("indexType", indexType);
197 }
198
199 public void setLabel(LocalizedValue label) {
200 _properties.put("label", label);
201 }
202
203 public void setLocalizable(boolean localizable) {
204 _properties.put("localizable", localizable);
205 }
206
207 public void setMultiple(boolean multiple) {
208 _properties.put("multiple", multiple);
209 }
210
211 public void setName(String name) {
212 _properties.put("name", name);
213 }
214
215 public void setNestedDDMFormFields(List<DDMFormField> nestedDDMFormFields) {
216 _nestedDDMFormFields = nestedDDMFormFields;
217 }
218
219 public void setPredefinedValue(LocalizedValue predefinedValue) {
220 _properties.put("predefinedValue", predefinedValue);
221 }
222
223 public void setProperty(String name, Object value) {
224 _properties.put(name, value);
225 }
226
227 public void setReadOnly(boolean readOnly) {
228 _properties.put("readOnly", readOnly);
229 }
230
231 public void setRepeatable(boolean repeatable) {
232 _properties.put("repeatable", repeatable);
233 }
234
235 public void setRequired(boolean required) {
236 _properties.put("required", required);
237 }
238
239 public void setShowLabel(boolean showLabel) {
240 _properties.put("showLabel", showLabel);
241 }
242
243 public void setStyle(LocalizedValue style) {
244 _properties.put("style", style);
245 }
246
247 public void setTip(LocalizedValue tip) {
248 _properties.put("tip", tip);
249 }
250
251 public void setType(String type) {
252 _properties.put("type", type);
253 }
254
255 public void setVisibilityExpression(String visibilityExpression) {
256 _properties.put("visibilityExpression", visibilityExpression);
257 }
258
259 private DDMForm _ddmForm;
260 private List<DDMFormField> _nestedDDMFormFields = new ArrayList<>();
261 private final Map<String, Object> _properties;
262
263 }