001
014
015 package com.liferay.portlet.dynamicdatamapping.storage;
016
017 import com.liferay.portal.kernel.util.LocaleUtil;
018 import com.liferay.portal.kernel.util.Validator;
019
020 import java.io.Serializable;
021
022 import java.util.ArrayList;
023 import java.util.Collection;
024 import java.util.Collections;
025 import java.util.Comparator;
026 import java.util.HashMap;
027 import java.util.HashSet;
028 import java.util.Iterator;
029 import java.util.List;
030 import java.util.Locale;
031 import java.util.Map;
032 import java.util.Set;
033
034
037 public class Fields implements Serializable {
038
039 public boolean contains(String name) {
040 return _fieldsMap.containsKey(name);
041 }
042
043 @Override
044 public boolean equals(Object obj) {
045 if (!(obj instanceof Fields)) {
046 return false;
047 }
048
049 Fields fields = (Fields)obj;
050
051 if (Validator.equals(_fieldsMap, fields._fieldsMap)) {
052 return true;
053 }
054
055 return false;
056 }
057
058 public Field get(String name) {
059 return _fieldsMap.get(name);
060 }
061
062 public Set<Locale> getAvailableLocales() {
063 Set<Locale> availableLocales = new HashSet<Locale>();
064
065 for (Field field : _fieldsMap.values()) {
066 for (Locale availableLocale : field.getAvailableLocales()) {
067 availableLocales.add(availableLocale);
068 }
069 }
070
071 return availableLocales;
072 }
073
074 public Locale getDefaultLocale() {
075 Locale defaultLocale = LocaleUtil.getDefault();
076
077 Iterator<Field> itr = iterator();
078
079 if (itr.hasNext()) {
080 Field field = itr.next();
081
082 defaultLocale = field.getDefaultLocale();
083 }
084
085 return defaultLocale;
086 }
087
088 public Set<String> getNames() {
089 return _fieldsMap.keySet();
090 }
091
092 public Iterator<Field> iterator() {
093 return iterator(null);
094 }
095
096 public Iterator<Field> iterator(Comparator<Field> comparator) {
097 Collection<Field> fieldsCollection = _fieldsMap.values();
098
099 List<Field> fieldsList = new ArrayList<Field>(fieldsCollection);
100
101 if (comparator != null) {
102 Collections.sort(fieldsList, comparator);
103 }
104
105 return fieldsList.iterator();
106 }
107
108 public void put(Field field) {
109 _fieldsMap.put(field.getName(), field);
110 }
111
112 public Field remove(String name) {
113 return _fieldsMap.remove(name);
114 }
115
116 private Map<String, Field> _fieldsMap = new HashMap<String, Field>();
117
118 }