/*
* Copyright (C) 2005-2008 Jive Software. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jivesoftware.openfire.update;
/**
* Plugin available at igniterealtime.org. The plugin may or may not be locally installed.
*
* @author Gaston Dombiak
*/
public class AvailablePlugin {
/**
* Name of the plugin.
*/
private String name;
/**
* Latest version of the plugin that was found.
*/
private String latestVersion;
/**
* URL from where the latest version of the plugin can be downloaded.
*/
private String url;
/**
* Icon's URL of the latest version of the plugin.
*/
private String icon;
/**
* README URL of the latest version of the plugin.
*/
private String readme;
/**
* Changelog URL of the latest version of the plugin.
*/
private String changelog;
/**
* Type of license of the plugin.
*/
private String licenseType;
/**
* Description of the plugin as specified in plugin.xml.
*/
private String description;
/**
* Author of the plugin as specified in plugin.xml.
*/
private String author;
/**
* Minimum server version required by this plugin as specified in plugin.xml.
*/
private String minServerVersion;
/**
* Size in bytes of the plugin jar file.
*/
private String fileSize;
public AvailablePlugin(String name, String description, String latestVersion, String author,
String icon, String changelog, String readme, String licenseType,
String minServerVersion, String url, String fileSize) {
this.author = author;
this.icon = icon;
this.changelog = changelog;
this.readme = readme;
this.licenseType = licenseType;
this.description = description;
this.latestVersion = latestVersion;
this.minServerVersion = minServerVersion;
this.name = name;
this.url = url;
this.fileSize = fileSize;
}
/**
* Returns the name of the plugin that is not installed.
*
* @return the name of the plugin that is not installed.
*/
public String getName() {
return name;
}
/**
* Returns the latest version of the plugin that is not installed.
*
* @return the latest version of the plugin that is not installed.
*/
public String getLatestVersion() {
return latestVersion;
}
/**
* Return the icon's URL of the latest version of the plugin.
*
* @return the icon's URL of the latest version of the plugin.
*/
public String getIcon() {
return icon;
}
/**
* Returns the URL to the README file of the latest version of the plugin.
*
* @return the URL to the README file of the latest version of the plugin.
*/
public String getReadme() {
return readme;
}
/**
* Returns the URL to the change log of the plugin.
*
* @return the URL to the change log of the plugin.
*/
public String getChangelog() {
return changelog;
}
/**
* Returns the URL from where the plugin.
*
* @return the URL from where the plugin.
*/
public String getURL() {
return url;
}
/**
* Returns the author of the plugin as specified in plugin.xml.
*
* @return author of the plugin as specified in plugin.xml.
*/
public String getAuthor() {
return author;
}
/**
* Returns true if the plugin is commercial.
*
* @return true if the plugin is commercial.
*/
public boolean isCommercial() {
return "commercial".equals(licenseType);
}
/**
* Returns the type of license the plugin is being released under.
*
* @return the type of license of the plugin.
*/
public String getLicenseType() {
return licenseType;
}
/**
* Returns the description of the plugin as specified in plugin.xml.
*
* @return description of the plugin as specified in plugin.xml.
*/
public String getDescription() {
return description;
}
/**
* Returns the minimum server version required by this plugin as specified in plugin.xml.
*
* @return minimum server version required by this plugin as specified in plugin.xml.
*/
public String getMinServerVersion() {
return minServerVersion;
}
/**
* Returns the size in bytes of the plugin jar file.
*
* @return the size in bytes of the plugin jar file.
*/
public long getFileSize() {
if (fileSize == null) {
// Dummy value for old xml files that didn't contain this piece of information
return -1L;
}
return Long.parseLong(fileSize);
}
/**
* Returns the hash code for this object.
* @return the hash code.
*/
public int getHashCode(){
return hashCode();
}
}