001    /**
002     * Copyright (c) 2000-2011 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.social.model;
016    
017    import com.liferay.portal.kernel.language.LanguageUtil;
018    
019    import java.io.Serializable;
020    
021    import java.util.ArrayList;
022    import java.util.Collection;
023    import java.util.HashMap;
024    import java.util.List;
025    import java.util.Locale;
026    import java.util.Map;
027    
028    /**
029     * @author Zsolt Berentey
030     */
031    public class SocialActivityDefinition implements Serializable {
032    
033            public void addCounter(
034                    SocialActivityCounterDefinition activityCounterDefinition) {
035    
036                    _activityCounterDefinitions.put(
037                            activityCounterDefinition.getName(), activityCounterDefinition);
038            }
039    
040            @Override
041            public SocialActivityDefinition clone() {
042                    SocialActivityDefinition activityDefinition =
043                            new SocialActivityDefinition();
044    
045                    for (SocialActivityCounterDefinition activityCounterDefinition :
046                                    _activityCounterDefinitions.values()) {
047    
048                            activityDefinition.addCounter(activityCounterDefinition.clone());
049                    }
050    
051                    List<SocialAchievement> achievements =
052                            activityDefinition.getAchievements();
053    
054                    achievements.addAll(_achievements);
055    
056                    activityDefinition.setActivityProcessor(_activityProcessor);
057                    activityDefinition.setActivityType(_activityType);
058                    activityDefinition.setEnabled(_enabled);
059                    activityDefinition.setLanguageKey(_languageKey);
060                    activityDefinition.setLogActivity(_logActivity);
061                    activityDefinition.setModelName(_modelName);
062    
063                    return activityDefinition;
064            }
065    
066            public List<SocialAchievement> getAchievements() {
067                    return _achievements;
068            }
069    
070            public SocialActivityCounterDefinition getActivityCounterDefinition(
071                    String name) {
072    
073                    return _activityCounterDefinitions.get(name);
074            }
075    
076            public Collection<SocialActivityCounterDefinition>
077                    getActivityCounterDefinitions() {
078    
079                    return _activityCounterDefinitions.values();
080            }
081    
082            public SocialActivityProcessor getActivityProcessor() {
083                    return _activityProcessor;
084            }
085    
086            public int getActivityType() {
087                    return _activityType;
088            }
089    
090            public String getLanguageKey() {
091                    return _languageKey;
092            }
093    
094            public String getModelName() {
095                    return _modelName;
096            }
097    
098            public String getName(Locale locale) {
099                    return LanguageUtil.get(
100                            locale,
101                            "social.activity." + _modelName + "." + _languageKey);
102            }
103    
104            public boolean isEnabled() {
105                    return _enabled;
106            }
107    
108            public boolean isLogActivity() {
109                    return _logActivity;
110            }
111    
112            public void setActivityProcessor(
113                    SocialActivityProcessor activityProcessor) {
114    
115                    _activityProcessor = activityProcessor;
116            }
117    
118            public void setActivityType(int activityKey) {
119                    _activityType = activityKey;
120            }
121    
122            public void setCounters(
123                    List<SocialActivityCounterDefinition> activityCounterDefinitions) {
124    
125                    _activityCounterDefinitions.clear();
126    
127                    for (SocialActivityCounterDefinition activityCounterDefinition :
128                                    activityCounterDefinitions) {
129    
130                            _activityCounterDefinitions.put(
131                                    activityCounterDefinition.getName(), activityCounterDefinition);
132                    }
133            }
134    
135            public void setEnabled(boolean enabled) {
136                    _enabled = enabled;
137            }
138    
139            public void setLanguageKey(String languageKey) {
140                    _languageKey = languageKey;
141            }
142    
143            public void setLogActivity(boolean logActivity) {
144                    _logActivity = logActivity;
145            }
146    
147            public void setModelName(String modelName) {
148                    _modelName = modelName;
149            }
150    
151            private List<SocialAchievement> _achievements =
152                    new ArrayList<SocialAchievement>();
153            private Map<String, SocialActivityCounterDefinition>
154                    _activityCounterDefinitions =
155                            new HashMap<String, SocialActivityCounterDefinition>();
156            private SocialActivityProcessor _activityProcessor;
157            private int _activityType;
158            private boolean _enabled = true;
159            private String _languageKey;
160            private boolean _logActivity;
161            private String _modelName;
162    
163    }