1   /**
2    * Copyright (c) 2000-2010 Liferay, Inc. All rights reserved.
3    *
4    * The contents of this file are subject to the terms of the Liferay Enterprise
5    * Subscription License ("License"). You may not use this file except in
6    * compliance with the License. You can obtain a copy of the License by
7    * contacting Liferay, Inc. See the License for the specific language governing
8    * permissions and limitations under the License, including but not limited to
9    * distribution rights of the Software.
10   *
11   *
12   *
13   */
14  
15  package com.liferay.portal.plugin;
16  
17  import com.liferay.portal.kernel.plugin.License;
18  import com.liferay.portal.kernel.plugin.PluginPackage;
19  import com.liferay.portal.kernel.plugin.RemotePluginPackageRepository;
20  import com.liferay.portal.kernel.plugin.Screenshot;
21  import com.liferay.portal.kernel.util.GetterUtil;
22  import com.liferay.portal.kernel.util.StringBundler;
23  import com.liferay.portal.kernel.util.StringPool;
24  import com.liferay.portal.kernel.util.Validator;
25  
26  import java.io.Serializable;
27  
28  import java.util.ArrayList;
29  import java.util.Date;
30  import java.util.List;
31  import java.util.Properties;
32  
33  import org.apache.commons.lang.builder.EqualsBuilder;
34  import org.apache.commons.lang.builder.HashCodeBuilder;
35  
36  /**
37   * <a href="PluginPackageImpl.java.html"><b><i>View Source</i></b></a>
38   *
39   * @author Jorge Ferrer
40   */
41  public class PluginPackageImpl
42      implements Comparable<PluginPackage>, PluginPackage, Serializable {
43  
44      public static final String STATUS_ALL = "all";
45  
46      public static final String STATUS_INSTALLATION_IN_PROCESS =
47          "installationInProcess";
48  
49      public static final String STATUS_NEWER_VERSION_INSTALLED =
50          "newerVersionInstalled";
51  
52      public static final String STATUS_NOT_INSTALLED = "notInstalled";
53  
54      public static final String STATUS_NOT_INSTALLED_OR_OLDER_VERSION_INSTALLED =
55          "notInstalledOrOlderVersionInstalled";
56  
57      public static final String STATUS_OLDER_VERSION_INSTALLED =
58          "olderVersionInstalled";
59  
60      public static final String STATUS_SAME_VERSION_INSTALLED =
61          "sameVersionInstalled";
62  
63      public PluginPackageImpl(String moduleId) {
64          _moduleId = ModuleId.getInstance(moduleId);
65      }
66  
67      public int compareTo(PluginPackage pluginPackage) {
68          return getName().compareTo(pluginPackage.getName());
69      }
70  
71      public boolean equals(Object obj) {
72          if (!(obj instanceof PluginPackage)) {
73              return false;
74          }
75  
76          PluginPackage pluginPackage = (PluginPackage)obj;
77  
78          EqualsBuilder equalsBuilder = new EqualsBuilder();
79  
80          equalsBuilder.append(getModuleId(), pluginPackage.getModuleId());
81          equalsBuilder.append(
82              getRepositoryURL(), pluginPackage.getRepositoryURL());
83  
84          return equalsBuilder.isEquals();
85      }
86  
87      public String getArtifactId() {
88          return _moduleId.getArtifactId();
89      }
90  
91      public String getArtifactURL() {
92          return getRepositoryURL() + _moduleId.getArtifactPath();
93      }
94  
95      public String getAuthor() {
96          return _author;
97      }
98  
99      public String getChangeLog() {
100         return _changeLog;
101     }
102 
103     public String getContext() {
104         return _context;
105     }
106 
107     public Properties getDeploymentSettings() {
108         return _deploymentSettings;
109     }
110 
111     public String getDownloadURL() {
112         String useDownloadURL = getRepository().getSettings().getProperty(
113             RemotePluginPackageRepository.SETTING_USE_DOWNLOAD_URL);
114 
115         if (!GetterUtil.getBoolean(useDownloadURL, true)) {
116             return getArtifactURL();
117         }
118 
119         if (Validator.isNotNull(_downloadURL)) {
120             return _downloadURL;
121         }
122 
123         return getArtifactURL();
124     }
125 
126     public String getGroupId() {
127         return _moduleId.getGroupId();
128     }
129 
130     public List<License> getLicenses() {
131         return _licenses;
132     }
133 
134     public List<String> getLiferayVersions() {
135         return _liferayVersions;
136     }
137 
138     public String getLongDescription() {
139         return _longDescription;
140     }
141 
142     public Date getModifiedDate() {
143         return _modifiedDate;
144     }
145 
146     public String getModuleId() {
147         return _moduleId.toString();
148     }
149 
150     public String getName() {
151         return _name;
152     }
153 
154     public String getPackageId() {
155         return _moduleId.getPackageId();
156     }
157 
158     public String getPageURL() {
159         return _pageURL;
160     }
161 
162     public String getRecommendedDeploymentContext() {
163         String context = _recommendedDeploymentContext;
164 
165         if (Validator.isNull(context)) {
166             context = _moduleId.getArtifactId();
167         }
168 
169         return context;
170     }
171 
172     public RemotePluginPackageRepository getRepository() {
173         return _repository;
174     }
175 
176     public String getRepositoryURL() {
177         if (_repository != null) {
178             return _repository.getRepositoryURL();
179         }
180         else {
181             return RemotePluginPackageRepository.LOCAL_URL;
182         }
183     }
184 
185     public List<Screenshot> getScreenshots() {
186         return _screenshots;
187     }
188 
189     public String getShortDescription() {
190         return _shortDescription;
191     }
192 
193     public List<String> getTags() {
194         return _tags;
195     }
196 
197     public List<String> getTypes() {
198         return _types;
199     }
200 
201     public String getVersion() {
202         return _moduleId.getVersion();
203     }
204 
205     public int hashCode() {
206         HashCodeBuilder hashCodeBuilder = new HashCodeBuilder();
207 
208         hashCodeBuilder.append(getModuleId());
209         hashCodeBuilder.append(getRepositoryURL());
210 
211         return hashCodeBuilder.hashCode();
212     }
213 
214     public boolean isLaterVersionThan(PluginPackage pluginPackage) {
215         return _moduleId.isLaterVersionThan(pluginPackage.getVersion());
216     }
217 
218     public boolean isPreviousVersionThan(PluginPackage pluginPackage) {
219         return _moduleId.isPreviousVersionThan(pluginPackage.getVersion());
220     }
221 
222     public boolean isSameVersionAs(PluginPackage pluginPackage) {
223         return _moduleId.isSameVersionAs(pluginPackage.getVersion());
224     }
225 
226     public void setAuthor(String author) {
227         _author = author;
228     }
229 
230     public void setChangeLog(String changeLog) {
231         _changeLog = changeLog;
232     }
233 
234     public void setContext(String context) {
235         _context = context;
236     }
237 
238     public void setDeploymentSettings(Properties deploymentSettings) {
239         _deploymentSettings = deploymentSettings;
240     }
241 
242     public void setDownloadURL(String downloadURL) {
243         _downloadURL = downloadURL;
244     }
245 
246     public void setLicenses(List<License> licenses) {
247         _licenses = licenses;
248     }
249 
250     public void setLiferayVersions(List<String> liferayVersions) {
251         _liferayVersions = liferayVersions;
252     }
253 
254     public void setLongDescription(String longDescription) {
255         _longDescription = longDescription;
256     }
257 
258     public void setModifiedDate(Date modifiedDate) {
259         _modifiedDate = modifiedDate;
260     }
261 
262     public void setName(String name) {
263         _name = name;
264     }
265 
266     public void setPageURL(String pageURL) {
267         _pageURL = pageURL;
268     }
269 
270     public void setRecommendedDeploymentContext(
271         String recommendedDeploymentContext) {
272 
273         _recommendedDeploymentContext = recommendedDeploymentContext;
274     }
275 
276     public void setRepository(RemotePluginPackageRepository repository) {
277         _repository = repository;
278     }
279 
280     public void setScreenshots(List<Screenshot> screenshots) {
281         _screenshots = screenshots;
282     }
283 
284     public void setShortDescription(String shortDescription) {
285         _shortDescription = shortDescription;
286     }
287 
288     public void setTags(List<String> tags) {
289         _tags = tags;
290     }
291 
292     public void setTypes(List<String> types) {
293         _types = types;
294     }
295 
296     public String toString() {
297         StringBundler sb = new StringBundler(4);
298 
299         sb.append(StringPool.SLASH);
300         sb.append(_context);
301         sb.append(StringPool.COLON);
302         sb.append(_moduleId);
303 
304         return sb.toString();
305     }
306 
307     private String _author;
308     private String _changeLog = StringPool.BLANK;
309     private String _context;
310     private Properties _deploymentSettings;
311     private String _downloadURL;
312     private List<License> _licenses = new ArrayList<License>();
313     private List<String> _liferayVersions = new ArrayList<String>();
314     private String _longDescription = StringPool.BLANK;
315     private Date _modifiedDate;
316     private ModuleId _moduleId;
317     private String _name;
318     private String _pageURL;
319     private String _recommendedDeploymentContext;
320     private RemotePluginPackageRepository _repository;
321     private List<Screenshot> _screenshots = new ArrayList<Screenshot>();
322     private String _shortDescription = StringPool.BLANK;
323     private List<String> _tags = new ArrayList<String>();
324     private List<String> _types = new ArrayList<String>();
325 
326 }