001
014
015 package com.liferay.portal.plugin;
016
017 import com.liferay.portal.kernel.plugin.License;
018 import com.liferay.portal.kernel.plugin.PluginPackage;
019 import com.liferay.portal.kernel.plugin.RemotePluginPackageRepository;
020 import com.liferay.portal.kernel.plugin.Screenshot;
021 import com.liferay.portal.kernel.util.GetterUtil;
022 import com.liferay.portal.kernel.util.StringBundler;
023 import com.liferay.portal.kernel.util.StringPool;
024 import com.liferay.portal.kernel.util.Validator;
025
026 import java.io.Serializable;
027
028 import java.util.ArrayList;
029 import java.util.Collections;
030 import java.util.Date;
031 import java.util.List;
032 import java.util.Properties;
033
034 import org.apache.commons.lang.builder.EqualsBuilder;
035 import org.apache.commons.lang.builder.HashCodeBuilder;
036
037
040 public class PluginPackageImpl
041 implements Comparable<PluginPackage>, PluginPackage, Serializable {
042
043 public static final String STATUS_ALL = "all";
044
045 public static final String STATUS_INSTALLATION_IN_PROCESS =
046 "installationInProcess";
047
048 public static final String STATUS_NEWER_VERSION_INSTALLED =
049 "newerVersionInstalled";
050
051 public static final String STATUS_NOT_INSTALLED = "notInstalled";
052
053 public static final String STATUS_NOT_INSTALLED_OR_OLDER_VERSION_INSTALLED =
054 "notInstalledOrOlderVersionInstalled";
055
056 public static final String STATUS_OLDER_VERSION_INSTALLED =
057 "olderVersionInstalled";
058
059 public static final String STATUS_SAME_VERSION_INSTALLED =
060 "sameVersionInstalled";
061
062 public PluginPackageImpl(String moduleId) {
063 _moduleId = ModuleId.getInstance(moduleId);
064 }
065
066 @Override
067 public int compareTo(PluginPackage pluginPackage) {
068 return getName().compareTo(pluginPackage.getName());
069 }
070
071 @Override
072 public boolean equals(Object obj) {
073 if (this == obj) {
074 return true;
075 }
076
077 if (!(obj instanceof PluginPackage)) {
078 return false;
079 }
080
081 PluginPackage pluginPackage = (PluginPackage)obj;
082
083 EqualsBuilder equalsBuilder = new EqualsBuilder();
084
085 equalsBuilder.append(getModuleId(), pluginPackage.getModuleId());
086 equalsBuilder.append(
087 getRepositoryURL(), pluginPackage.getRepositoryURL());
088
089 return equalsBuilder.isEquals();
090 }
091
092 @Override
093 public String getArtifactId() {
094 return _moduleId.getArtifactId();
095 }
096
097 @Override
098 public String getArtifactURL() {
099 return getRepositoryURL() + _moduleId.getArtifactPath();
100 }
101
102 @Override
103 public String getAuthor() {
104 return _author;
105 }
106
107 @Override
108 public String getChangeLog() {
109 return _changeLog;
110 }
111
112 @Override
113 public String getContext() {
114 return _context;
115 }
116
117 @Override
118 public Properties getDeploymentSettings() {
119 return _deploymentSettings;
120 }
121
122 @Override
123 public String getDownloadURL() {
124 String useDownloadURL = getRepository().getSettings().getProperty(
125 RemotePluginPackageRepository.SETTING_USE_DOWNLOAD_URL);
126
127 if (!GetterUtil.getBoolean(useDownloadURL, true)) {
128 return getArtifactURL();
129 }
130
131 if (Validator.isNotNull(_downloadURL)) {
132 return _downloadURL;
133 }
134
135 return getArtifactURL();
136 }
137
138 @Override
139 public String getGroupId() {
140 return _moduleId.getGroupId();
141 }
142
143 @Override
144 public List<License> getLicenses() {
145 return _licenses;
146 }
147
148 @Override
149 public List<String> getLiferayVersions() {
150 return _liferayVersions;
151 }
152
153 @Override
154 public String getLongDescription() {
155 return _longDescription;
156 }
157
158 @Override
159 public Date getModifiedDate() {
160 return _modifiedDate;
161 }
162
163 @Override
164 public String getModuleId() {
165 return _moduleId.toString();
166 }
167
168 @Override
169 public String getName() {
170 return _name;
171 }
172
173 @Override
174 public String getPackageId() {
175 return _moduleId.getPackageId();
176 }
177
178 @Override
179 public String getPageURL() {
180 return _pageURL;
181 }
182
183 @Override
184 public String getRecommendedDeploymentContext() {
185 String context = _recommendedDeploymentContext;
186
187 if (Validator.isNull(context)) {
188 context = _moduleId.getArtifactId();
189 }
190
191 return context;
192 }
193
194 @Override
195 public RemotePluginPackageRepository getRepository() {
196 return _repository;
197 }
198
199 @Override
200 public String getRepositoryURL() {
201 if (_repository != null) {
202 return _repository.getRepositoryURL();
203 }
204 else {
205 return RemotePluginPackageRepository.LOCAL_URL;
206 }
207 }
208
209 @Override
210 public List<String> getRequiredDeploymentContexts() {
211 return _requiredDeploymentContexts;
212 }
213
214 @Override
215 public List<Screenshot> getScreenshots() {
216 return _screenshots;
217 }
218
219 @Override
220 public String getShortDescription() {
221 return _shortDescription;
222 }
223
224 @Override
225 public List<String> getTags() {
226 return _tags;
227 }
228
229 @Override
230 public List<String> getTypes() {
231 return _types;
232 }
233
234 @Override
235 public String getVersion() {
236 return _moduleId.getVersion();
237 }
238
239 @Override
240 public int hashCode() {
241 HashCodeBuilder hashCodeBuilder = new HashCodeBuilder();
242
243 hashCodeBuilder.append(getModuleId());
244 hashCodeBuilder.append(getRepositoryURL());
245
246 return hashCodeBuilder.hashCode();
247 }
248
249 @Override
250 public boolean isLaterVersionThan(PluginPackage pluginPackage) {
251 return _moduleId.isLaterVersionThan(pluginPackage.getVersion());
252 }
253
254 @Override
255 public boolean isPreviousVersionThan(PluginPackage pluginPackage) {
256 return _moduleId.isPreviousVersionThan(pluginPackage.getVersion());
257 }
258
259 @Override
260 public boolean isSameVersionAs(PluginPackage pluginPackage) {
261 return _moduleId.isSameVersionAs(pluginPackage.getVersion());
262 }
263
264 @Override
265 public void setAuthor(String author) {
266 _author = author;
267 }
268
269 @Override
270 public void setChangeLog(String changeLog) {
271 _changeLog = changeLog;
272 }
273
274 @Override
275 public void setContext(String context) {
276 _context = context;
277 }
278
279 @Override
280 public void setDeploymentSettings(Properties deploymentSettings) {
281 _deploymentSettings = deploymentSettings;
282 }
283
284 @Override
285 public void setDownloadURL(String downloadURL) {
286 _downloadURL = downloadURL;
287 }
288
289 @Override
290 public void setLicenses(List<License> licenses) {
291 _licenses = licenses;
292 }
293
294 @Override
295 public void setLiferayVersions(List<String> liferayVersions) {
296 _liferayVersions = liferayVersions;
297 }
298
299 @Override
300 public void setLongDescription(String longDescription) {
301 _longDescription = longDescription;
302 }
303
304 @Override
305 public void setModifiedDate(Date modifiedDate) {
306 _modifiedDate = modifiedDate;
307 }
308
309 @Override
310 public void setName(String name) {
311 _name = name;
312 }
313
314 @Override
315 public void setPageURL(String pageURL) {
316 _pageURL = pageURL;
317 }
318
319 @Override
320 public void setRecommendedDeploymentContext(
321 String recommendedDeploymentContext) {
322
323 _recommendedDeploymentContext = recommendedDeploymentContext;
324 }
325
326 @Override
327 public void setRepository(RemotePluginPackageRepository repository) {
328 _repository = repository;
329 }
330
331 @Override
332 public void setRequiredDeploymentContexts(
333 List<String> requiredDeploymentContexts) {
334
335 _requiredDeploymentContexts = requiredDeploymentContexts;
336 }
337
338 @Override
339 public void setScreenshots(List<Screenshot> screenshots) {
340 _screenshots = screenshots;
341 }
342
343 @Override
344 public void setShortDescription(String shortDescription) {
345 _shortDescription = shortDescription;
346 }
347
348 @Override
349 public void setTags(List<String> tags) {
350 _tags = tags;
351 }
352
353 @Override
354 public void setTypes(List<String> types) {
355 _types = types;
356 }
357
358 @Override
359 public String toString() {
360 StringBundler sb = new StringBundler(4);
361
362 sb.append(StringPool.SLASH);
363 sb.append(_context);
364 sb.append(StringPool.COLON);
365 sb.append(_moduleId);
366
367 return sb.toString();
368 }
369
370 private String _author;
371 private String _changeLog = StringPool.BLANK;
372 private String _context;
373 private Properties _deploymentSettings;
374 private String _downloadURL;
375 private List<License> _licenses = new ArrayList<License>();
376 private List<String> _liferayVersions = new ArrayList<String>();
377 private String _longDescription = StringPool.BLANK;
378 private Date _modifiedDate;
379 private ModuleId _moduleId;
380 private String _name;
381 private String _pageURL;
382 private String _recommendedDeploymentContext;
383 private RemotePluginPackageRepository _repository;
384 private List<String> _requiredDeploymentContexts = Collections.emptyList();
385 private List<Screenshot> _screenshots = new ArrayList<Screenshot>();
386 private String _shortDescription = StringPool.BLANK;
387 private List<String> _tags = new ArrayList<String>();
388 private List<String> _types = new ArrayList<String>();
389
390 }