001
014
015 package com.liferay.portlet.dynamicdatamapping.storage;
016
017 import com.liferay.portal.kernel.util.HashUtil;
018 import com.liferay.portal.kernel.util.StringUtil;
019 import com.liferay.portal.kernel.util.Validator;
020 import com.liferay.portlet.dynamicdatamapping.model.DDMForm;
021 import com.liferay.portlet.dynamicdatamapping.model.DDMFormField;
022 import com.liferay.portlet.dynamicdatamapping.model.Value;
023
024 import java.io.Serializable;
025
026 import java.util.ArrayList;
027 import java.util.HashMap;
028 import java.util.List;
029 import java.util.Map;
030
031
035 public class DDMFormFieldValue implements Serializable {
036
037 public void addNestedDDMFormFieldValue(
038 DDMFormFieldValue nestedDDMFormFieldValue) {
039
040 nestedDDMFormFieldValue.setDDMFormValues(_ddmFormValues);
041
042 _nestedDDMFormFieldValues.add(nestedDDMFormFieldValue);
043 }
044
045 @Override
046 public boolean equals(Object obj) {
047 if (this == obj) {
048 return true;
049 }
050
051 if (!(obj instanceof DDMFormFieldValue)) {
052 return false;
053 }
054
055 DDMFormFieldValue ddmFormFieldValue = (DDMFormFieldValue)obj;
056
057 if (Validator.equals(_instanceId, ddmFormFieldValue._instanceId) &&
058 Validator.equals(_name, ddmFormFieldValue._name) &&
059 Validator.equals(_value, ddmFormFieldValue._value) &&
060 Validator.equals(
061 _nestedDDMFormFieldValues,
062 ddmFormFieldValue._nestedDDMFormFieldValues)) {
063
064 return true;
065 }
066
067 return false;
068 }
069
070 public DDMFormField getDDMFormField() {
071 DDMForm ddmForm = _ddmFormValues.getDDMForm();
072
073 Map<String, DDMFormField> ddmFormFieldsMap =
074 ddmForm.getDDMFormFieldsMap(true);
075
076 return ddmFormFieldsMap.get(_name);
077 }
078
079 public DDMFormValues getDDMFormValues() {
080 return _ddmFormValues;
081 }
082
083 public String getInstanceId() {
084 return _instanceId;
085 }
086
087 public String getName() {
088 return _name;
089 }
090
091 public List<DDMFormFieldValue> getNestedDDMFormFieldValues() {
092 return _nestedDDMFormFieldValues;
093 }
094
095 public Map<String, List<DDMFormFieldValue>>
096 getNestedDDMFormFieldValuesMap() {
097
098 Map<String, List<DDMFormFieldValue>> nestedDDMFormFieldValuesMap =
099 new HashMap<>();
100
101 for (DDMFormFieldValue nestedDDMFormFieldValue :
102 _nestedDDMFormFieldValues) {
103
104 List<DDMFormFieldValue> nestedDDMFormFieldValues =
105 nestedDDMFormFieldValuesMap.get(
106 nestedDDMFormFieldValue.getName());
107
108 if (nestedDDMFormFieldValues == null) {
109 nestedDDMFormFieldValues = new ArrayList<>();
110
111 nestedDDMFormFieldValuesMap.put(
112 nestedDDMFormFieldValue.getName(),
113 nestedDDMFormFieldValues);
114 }
115
116 nestedDDMFormFieldValues.add(nestedDDMFormFieldValue);
117 }
118
119 return nestedDDMFormFieldValuesMap;
120 }
121
122 public String getType() {
123 DDMFormField ddmFormField = getDDMFormField();
124
125 return ddmFormField.getType();
126 }
127
128 public Value getValue() {
129 return _value;
130 }
131
132 @Override
133 public int hashCode() {
134 int hash = HashUtil.hash(0, _instanceId);
135
136 hash = HashUtil.hash(hash, _name);
137 hash = HashUtil.hash(hash, _nestedDDMFormFieldValues);
138
139 return HashUtil.hash(hash, _value);
140 }
141
142 public void setDDMFormValues(DDMFormValues ddmFormValues) {
143 for (DDMFormFieldValue nestedDDMFormFieldValue :
144 _nestedDDMFormFieldValues) {
145
146 nestedDDMFormFieldValue.setDDMFormValues(ddmFormValues);
147 }
148
149 _ddmFormValues = ddmFormValues;
150 }
151
152 public void setInstanceId(String instanceId) {
153 _instanceId = instanceId;
154 }
155
156 public void setName(String name) {
157 _name = name;
158 }
159
160 public void setNestedDDMFormFields(
161 List<DDMFormFieldValue> nestedDDMFormFieldValues) {
162
163 _nestedDDMFormFieldValues = nestedDDMFormFieldValues;
164 }
165
166 public void setValue(Value value) {
167 _value = value;
168 }
169
170 private DDMFormValues _ddmFormValues;
171 private String _instanceId = StringUtil.randomString();
172 private String _name;
173 private List<DDMFormFieldValue> _nestedDDMFormFieldValues =
174 new ArrayList<>();
175 private Value _value;
176
177 }