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