001
014
015 package com.liferay.social.kernel.model;
016
017 import com.liferay.portal.kernel.language.LanguageUtil;
018 import com.liferay.portal.kernel.util.HashUtil;
019
020 import java.io.Serializable;
021
022 import java.util.ArrayList;
023 import java.util.Collection;
024 import java.util.HashMap;
025 import java.util.List;
026 import java.util.Locale;
027 import java.util.Map;
028 import java.util.Objects;
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 Objects.equals(
083 _achievements, activityDefinition.getAchievements()) &&
084 Objects.equals(
085 _activityCounterDefinitions,
086 activityDefinition._activityCounterDefinitions) &&
087 Objects.equals(
088 _activityProcessor,
089 activityDefinition.getActivityProcessor()) &&
090 (_activityType == activityDefinition.getActivityType()) &&
091 (_countersEnabled == activityDefinition.isCountersEnabled()) &&
092 Objects.equals(
093 _languageKey, activityDefinition.getLanguageKey()) &&
094 (_logActivity == activityDefinition.isLogActivity()) &&
095 Objects.equals(_modelName, activityDefinition.getModelName())) {
096
097 return true;
098 }
099
100 return false;
101 }
102
103 public List<SocialAchievement> getAchievements() {
104 return _achievements;
105 }
106
107 public SocialActivityCounterDefinition getActivityCounterDefinition(
108 String name) {
109
110 return _activityCounterDefinitions.get(name);
111 }
112
113 public Collection<SocialActivityCounterDefinition>
114 getActivityCounterDefinitions() {
115
116 return _activityCounterDefinitions.values();
117 }
118
119 public SocialActivityProcessor getActivityProcessor() {
120 return _activityProcessor;
121 }
122
123 public int getActivityType() {
124 return _activityType;
125 }
126
127 public String getLanguageKey() {
128 return _languageKey;
129 }
130
131 public String getModelName() {
132 return _modelName;
133 }
134
135 public String getName(Locale locale) {
136 return LanguageUtil.get(
137 locale, "social.activity." + _modelName + "." + _languageKey);
138 }
139
140 @Override
141 public int hashCode() {
142 int hash = HashUtil.hash(0, _achievements);
143
144 hash = HashUtil.hash(hash, _activityCounterDefinitions);
145 hash = HashUtil.hash(hash, _activityProcessor);
146 hash = HashUtil.hash(hash, _activityType);
147 hash = HashUtil.hash(hash, _countersEnabled);
148 hash = HashUtil.hash(hash, _languageKey);
149 hash = HashUtil.hash(hash, _logActivity);
150
151 return HashUtil.hash(hash, _modelName);
152 }
153
154 public boolean isCountersEnabled() {
155 return _countersEnabled;
156 }
157
158 public boolean isLogActivity() {
159 return _logActivity;
160 }
161
162 public void setActivityProcessor(
163 SocialActivityProcessor activityProcessor) {
164
165 _activityProcessor = activityProcessor;
166 }
167
168 public void setActivityType(int activityKey) {
169 _activityType = activityKey;
170 }
171
172 public void setCounters(
173 List<SocialActivityCounterDefinition> activityCounterDefinitions) {
174
175 _activityCounterDefinitions.clear();
176
177 for (SocialActivityCounterDefinition activityCounterDefinition :
178 activityCounterDefinitions) {
179
180 _activityCounterDefinitions.put(
181 activityCounterDefinition.getName(), activityCounterDefinition);
182 }
183 }
184
185 public void setCountersEnabled(boolean enabled) {
186 _countersEnabled = enabled;
187 }
188
189 public void setLanguageKey(String languageKey) {
190 _languageKey = languageKey;
191 }
192
193 public void setLogActivity(boolean logActivity) {
194 _logActivity = logActivity;
195 }
196
197 public void setModelName(String modelName) {
198 _modelName = modelName;
199 }
200
201 private final List<SocialAchievement> _achievements = new ArrayList<>();
202 private final Map<String, SocialActivityCounterDefinition>
203 _activityCounterDefinitions = new HashMap<>();
204 private SocialActivityProcessor _activityProcessor;
205 private int _activityType;
206 private boolean _countersEnabled = true;
207 private String _languageKey;
208 private boolean _logActivity;
209 private String _modelName;
210
211 }