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