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.Validator;
019 import com.liferay.portlet.dynamicdatamapping.model.DDMForm;
020
021 import java.io.Serializable;
022
023 import java.util.ArrayList;
024 import java.util.LinkedHashMap;
025 import java.util.LinkedHashSet;
026 import java.util.List;
027 import java.util.Locale;
028 import java.util.Map;
029 import java.util.Set;
030
031
035 public class DDMFormValues implements Serializable {
036
037 public DDMFormValues(DDMForm ddmForm) {
038 _ddmForm = ddmForm;
039 }
040
041 public void addAvailableLocale(Locale locale) {
042 _availableLocales.add(locale);
043 }
044
045 public void addDDMFormFieldValue(DDMFormFieldValue ddmFormFieldValue) {
046 ddmFormFieldValue.setDDMFormValues(this);
047
048 _ddmFormFieldValues.add(ddmFormFieldValue);
049 }
050
051 @Override
052 public boolean equals(Object obj) {
053 if (this == obj) {
054 return true;
055 }
056
057 if (!(obj instanceof DDMFormValues)) {
058 return false;
059 }
060
061 DDMFormValues ddmFormValues = (DDMFormValues)obj;
062
063 if (Validator.equals(
064 _availableLocales, ddmFormValues._availableLocales) &&
065 Validator.equals(_defaultLocale, ddmFormValues._defaultLocale) &&
066 Validator.equals(
067 _ddmFormFieldValues, ddmFormValues._ddmFormFieldValues)) {
068
069 return true;
070 }
071
072 return false;
073 }
074
075 public Set<Locale> getAvailableLocales() {
076 return _availableLocales;
077 }
078
079 public DDMForm getDDMForm() {
080 return _ddmForm;
081 }
082
083 public List<DDMFormFieldValue> getDDMFormFieldValues() {
084 return _ddmFormFieldValues;
085 }
086
087 public Map<String, List<DDMFormFieldValue>> getDDMFormFieldValuesMap() {
088 Map<String, List<DDMFormFieldValue>> ddmFormFieldValuesMap =
089 new LinkedHashMap<>();
090
091 for (DDMFormFieldValue ddmFormFieldValue : _ddmFormFieldValues) {
092 List<DDMFormFieldValue> ddmFormFieldValues =
093 ddmFormFieldValuesMap.get(ddmFormFieldValue.getName());
094
095 if (ddmFormFieldValues == null) {
096 ddmFormFieldValues = new ArrayList<>();
097
098 ddmFormFieldValuesMap.put(
099 ddmFormFieldValue.getName(), ddmFormFieldValues);
100 }
101
102 ddmFormFieldValues.add(ddmFormFieldValue);
103 }
104
105 return ddmFormFieldValuesMap;
106 }
107
108 public Locale getDefaultLocale() {
109 return _defaultLocale;
110 }
111
112 @Override
113 public int hashCode() {
114 int hash = HashUtil.hash(0, _availableLocales);
115
116 hash = HashUtil.hash(hash, _defaultLocale);
117
118 return HashUtil.hash(hash, _ddmFormFieldValues);
119 }
120
121 public void setAvailableLocales(Set<Locale> availableLocales) {
122 _availableLocales = availableLocales;
123 }
124
125 public void setDDMFormFieldValues(
126 List<DDMFormFieldValue> ddmFormFieldValues) {
127
128 for (DDMFormFieldValue ddmFormFieldValue : ddmFormFieldValues) {
129 ddmFormFieldValue.setDDMFormValues(this);
130 }
131
132 _ddmFormFieldValues = ddmFormFieldValues;
133 }
134
135 public void setDefaultLocale(Locale defaultLocale) {
136 _defaultLocale = defaultLocale;
137 }
138
139 private Set<Locale> _availableLocales = new LinkedHashSet<>();
140 private final DDMForm _ddmForm;
141 private List<DDMFormFieldValue> _ddmFormFieldValues = new ArrayList<>();
142 private Locale _defaultLocale;
143
144 }