001    /**
002     * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
003     *
004     * This library is free software; you can redistribute it and/or modify it under
005     * the terms of the GNU Lesser General Public License as published by the Free
006     * Software Foundation; either version 2.1 of the License, or (at your option)
007     * any later version.
008     *
009     * This library is distributed in the hope that it will be useful, but WITHOUT
010     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
011     * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
012     * details.
013     */
014    
015    package com.liferay.portlet.dynamicdatamapping.storage;
016    
017    import com.liferay.portlet.dynamicdatamapping.model.Value;
018    
019    import java.util.ArrayList;
020    import java.util.HashMap;
021    import java.util.List;
022    import java.util.Map;
023    
024    /**
025     * @author Marcellus Tavares
026     * @author Pablo Carvalho
027     */
028    public class DDMFormFieldValue {
029    
030            public void addNestedDDMFormFieldValue(
031                    DDMFormFieldValue nestedDDMFormFieldValue) {
032    
033                    nestedDDMFormFieldValue.setDDMFormValues(_ddmFormValues);
034    
035                    _nestedDDMFormFieldValues.add(nestedDDMFormFieldValue);
036            }
037    
038            public DDMFormValues getDDMFormValues() {
039                    return _ddmFormValues;
040            }
041    
042            public String getInstanceId() {
043                    return _instanceId;
044            }
045    
046            public String getName() {
047                    return _name;
048            }
049    
050            public List<DDMFormFieldValue> getNestedDDMFormFieldValues() {
051                    return _nestedDDMFormFieldValues;
052            }
053    
054            public Map<String, List<DDMFormFieldValue>>
055                    getNestedDDMFormFieldValuesMap() {
056    
057                    Map<String, List<DDMFormFieldValue>> nestedDDMFormFieldValuesMap =
058                            new HashMap<String, List<DDMFormFieldValue>>();
059    
060                    for (DDMFormFieldValue nestedDDMFormFieldValue :
061                                    _nestedDDMFormFieldValues) {
062    
063                            List<DDMFormFieldValue> nestedDDMFormFieldValues =
064                                    nestedDDMFormFieldValuesMap.get(
065                                            nestedDDMFormFieldValue.getName());
066    
067                            if (nestedDDMFormFieldValues == null) {
068                                    nestedDDMFormFieldValues = new ArrayList<DDMFormFieldValue>();
069    
070                                    nestedDDMFormFieldValuesMap.put(
071                                            nestedDDMFormFieldValue.getName(),
072                                            nestedDDMFormFieldValues);
073                            }
074    
075                            nestedDDMFormFieldValues.add(nestedDDMFormFieldValue);
076                    }
077    
078                    return nestedDDMFormFieldValuesMap;
079            }
080    
081            public Value getValue() {
082                    return _value;
083            }
084    
085            public void setDDMFormValues(DDMFormValues ddmFormValues) {
086                    for (DDMFormFieldValue nestedDDMFormFieldValue :
087                                    _nestedDDMFormFieldValues) {
088    
089                            nestedDDMFormFieldValue.setDDMFormValues(ddmFormValues);
090                    }
091    
092                    _ddmFormValues = ddmFormValues;
093            }
094    
095            public void setInstanceId(String instanceId) {
096                    _instanceId = instanceId;
097            }
098    
099            public void setName(String name) {
100                    _name = name;
101            }
102    
103            public void setNestedDDMFormFields(
104                    List<DDMFormFieldValue> nestedDDMFormFieldValues) {
105    
106                    _nestedDDMFormFieldValues = nestedDDMFormFieldValues;
107            }
108    
109            public void setValue(Value value) {
110                    _value = value;
111            }
112    
113            private DDMFormValues _ddmFormValues;
114            private String _instanceId;
115            private String _name;
116            private List<DDMFormFieldValue> _nestedDDMFormFieldValues =
117                    new ArrayList<DDMFormFieldValue>();
118            private Value _value;
119    
120    }