001    /**
002     * Copyright (c) 2000-2012 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, "social.activity." + _modelName + "." + _languageKey);
101            }
102    
103            public boolean isEnabled() {
104                    return _enabled;
105            }
106    
107            public boolean isLogActivity() {
108                    return _logActivity;
109            }
110    
111            public void setActivityProcessor(
112                    SocialActivityProcessor activityProcessor) {
113    
114                    _activityProcessor = activityProcessor;
115            }
116    
117            public void setActivityType(int activityKey) {
118                    _activityType = activityKey;
119            }
120    
121            public void setCounters(
122                    List<SocialActivityCounterDefinition> activityCounterDefinitions) {
123    
124                    _activityCounterDefinitions.clear();
125    
126                    for (SocialActivityCounterDefinition activityCounterDefinition :
127                                    activityCounterDefinitions) {
128    
129                            _activityCounterDefinitions.put(
130                                    activityCounterDefinition.getName(), activityCounterDefinition);
131                    }
132            }
133    
134            public void setEnabled(boolean enabled) {
135                    _enabled = enabled;
136            }
137    
138            public void setLanguageKey(String languageKey) {
139                    _languageKey = languageKey;
140            }
141    
142            public void setLogActivity(boolean logActivity) {
143                    _logActivity = logActivity;
144            }
145    
146            public void setModelName(String modelName) {
147                    _modelName = modelName;
148            }
149    
150            private List<SocialAchievement> _achievements =
151                    new ArrayList<SocialAchievement>();
152            private Map<String, SocialActivityCounterDefinition>
153                    _activityCounterDefinitions =
154                            new HashMap<String, SocialActivityCounterDefinition>();
155            private SocialActivityProcessor _activityProcessor;
156            private int _activityType;
157            private boolean _enabled = true;
158            private String _languageKey;
159            private boolean _logActivity;
160            private String _modelName;
161    
162    }