001
014
015 package com.liferay.portlet.social.model;
016
017 import com.liferay.portal.kernel.language.LanguageUtil;
018 import com.liferay.portal.kernel.util.HashUtil;
019 import com.liferay.portal.kernel.util.Validator;
020
021 import java.io.Serializable;
022
023 import java.util.ArrayList;
024 import java.util.Collection;
025 import java.util.HashMap;
026 import java.util.List;
027 import java.util.Locale;
028 import java.util.Map;
029
030
033 public class SocialActivityDefinition implements Serializable {
034
035 public void addCounter(
036 SocialActivityCounterDefinition activityCounterDefinition) {
037
038 _activityCounterDefinitions.put(
039 activityCounterDefinition.getName(), activityCounterDefinition);
040 }
041
042 @Override
043 public SocialActivityDefinition clone() {
044 SocialActivityDefinition activityDefinition =
045 new SocialActivityDefinition();
046
047 for (SocialActivityCounterDefinition activityCounterDefinition :
048 _activityCounterDefinitions.values()) {
049
050 activityDefinition.addCounter(activityCounterDefinition.clone());
051 }
052
053 List<SocialAchievement> achievements =
054 activityDefinition.getAchievements();
055
056 achievements.addAll(_achievements);
057
058 activityDefinition.setActivityProcessor(_activityProcessor);
059 activityDefinition.setActivityType(_activityType);
060 activityDefinition.setCountersEnabled(_countersEnabled);
061 activityDefinition.setLanguageKey(_languageKey);
062 activityDefinition.setLogActivity(_logActivity);
063 activityDefinition.setModelName(_modelName);
064
065 return activityDefinition;
066 }
067
068 @Override
069 public boolean equals(Object obj) {
070 if (this == obj) {
071 return true;
072 }
073
074 if (!(obj instanceof SocialActivityDefinition)) {
075 return false;
076 }
077
078 SocialActivityDefinition activityDefinition =
079 (SocialActivityDefinition)obj;
080
081 if ((activityDefinition != null) &&
082 Validator.equals(
083 _achievements, activityDefinition.getAchievements()) &&
084 Validator.equals(
085 _activityCounterDefinitions,
086 activityDefinition._activityCounterDefinitions) &&
087 Validator.equals(
088 _activityProcessor,
089 activityDefinition.getActivityProcessor()) &&
090 Validator.equals(
091 _activityType, activityDefinition.getActivityType()) &&
092 Validator.equals(
093 _countersEnabled, activityDefinition.isCountersEnabled()) &&
094 Validator.equals(
095 _languageKey, activityDefinition.getLanguageKey()) &&
096 Validator.equals(
097 _logActivity, activityDefinition.isLogActivity()) &&
098 Validator.equals(_modelName, activityDefinition.getModelName())) {
099
100 return true;
101 }
102
103 return false;
104 }
105
106 public List<SocialAchievement> getAchievements() {
107 return _achievements;
108 }
109
110 public SocialActivityCounterDefinition getActivityCounterDefinition(
111 String name) {
112
113 return _activityCounterDefinitions.get(name);
114 }
115
116 public Collection<SocialActivityCounterDefinition>
117 getActivityCounterDefinitions() {
118
119 return _activityCounterDefinitions.values();
120 }
121
122 public SocialActivityProcessor getActivityProcessor() {
123 return _activityProcessor;
124 }
125
126 public int getActivityType() {
127 return _activityType;
128 }
129
130 public String getLanguageKey() {
131 return _languageKey;
132 }
133
134 public String getModelName() {
135 return _modelName;
136 }
137
138 public String getName(Locale locale) {
139 return LanguageUtil.get(
140 locale, "social.activity." + _modelName + "." + _languageKey);
141 }
142
143 @Override
144 public int hashCode() {
145 int hash = HashUtil.hash(0, _achievements);
146
147 hash = HashUtil.hash(hash, _activityCounterDefinitions);
148 hash = HashUtil.hash(hash, _activityProcessor);
149 hash = HashUtil.hash(hash, _activityType);
150 hash = HashUtil.hash(hash, _countersEnabled);
151 hash = HashUtil.hash(hash, _languageKey);
152 hash = HashUtil.hash(hash, _logActivity);
153
154 return HashUtil.hash(hash, _modelName);
155 }
156
157 public boolean isCountersEnabled() {
158 return _countersEnabled;
159 }
160
161 public boolean isLogActivity() {
162 return _logActivity;
163 }
164
165 public void setActivityProcessor(
166 SocialActivityProcessor activityProcessor) {
167
168 _activityProcessor = activityProcessor;
169 }
170
171 public void setActivityType(int activityKey) {
172 _activityType = activityKey;
173 }
174
175 public void setCounters(
176 List<SocialActivityCounterDefinition> activityCounterDefinitions) {
177
178 _activityCounterDefinitions.clear();
179
180 for (SocialActivityCounterDefinition activityCounterDefinition :
181 activityCounterDefinitions) {
182
183 _activityCounterDefinitions.put(
184 activityCounterDefinition.getName(), activityCounterDefinition);
185 }
186 }
187
188 public void setCountersEnabled(boolean enabled) {
189 _countersEnabled = enabled;
190 }
191
192 public void setLanguageKey(String languageKey) {
193 _languageKey = languageKey;
194 }
195
196 public void setLogActivity(boolean logActivity) {
197 _logActivity = logActivity;
198 }
199
200 public void setModelName(String modelName) {
201 _modelName = modelName;
202 }
203
204 private final List<SocialAchievement> _achievements = new ArrayList<>();
205 private final Map<String, SocialActivityCounterDefinition>
206 _activityCounterDefinitions = new HashMap<>();
207 private SocialActivityProcessor _activityProcessor;
208 private int _activityType;
209 private boolean _countersEnabled = true;
210 private String _languageKey;
211 private boolean _logActivity;
212 private String _modelName;
213
214 }