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