org.epos.eposdatamodel.SoftwareApplication Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of epos-data-model-beans Show documentation
Show all versions of epos-data-model-beans Show documentation
Beans useful to interact with EPOS Metadata Catalogue
The newest version!
package org.epos.eposdatamodel;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/**
* This class represents software package, application and program.
*/
public class SoftwareApplication extends Software {
/**
* This property refers to a category of the Software Application. A Software Application may be associated with multiple categories.
**/
private List category;
/**
* This property refers to the Contact Point (i.e. Role) defined for the Software
* Application.
*/
private List contactPoint;
/**
* This property contains the description of the Software Application
**/
private String description;
/**
* If the Software Application can be downloaded this property contains the URL to download it.
**/
private String downloadURL;
/**
* This property contains an identifier for the Software Application.
**/
private List identifier = new ArrayList<>();
/**
* This property contains the URL at which the application may be installed.
**/
private String installURL;
/**
* This property contains the keywords used to describe the Software Application. Multiple entries in a keywords list are typically delimited by commas.
**/
private String keywords;
/**
* This property contains the URL of the license document that applies to the Software Application.
**/
private String licenseURL;
/**
* This property refers to the web page URL which describes the Software Application.
**/
private String mainEntityOfPage;
/**
* This property contains the name of the Software Application
**/
private String name;
/**
* This property represents an input or output parameters of the Software Application.
**/
private List parameter;
/**
* It represents the link to another Epos resource. e.g. Software, WebService,
* Operation linked to this software.
*/
private List relation;
/**
* Component dependency requirements for application. This includes runtime environments and shared libraries that are not included in the application distribution package, but required to run the application.
**/
private String requirements;
/**
* This property contains the version of the Software Application instance.
**/
private String softwareVersion;
public void addRelation(LinkedEntity relation) {
if (this.getRelation() == null) {
ArrayList relationList = new ArrayList<>();
relationList.add(relation);
this.setRelation(relationList);
} else {
this.getRelation().add(relation);
}
}
public void addCategory(String category) {
if (this.getCategory() == null) {
ArrayList categoryList = new ArrayList<>();
categoryList.add(category);
this.setCategory(categoryList);
} else {
this.getCategory().add(category);
}
}
public void addIdentifier(Identifier identifier) {
if (this.getIdentifier() == null) {
ArrayList identifierList = new ArrayList<>();
identifierList.add(identifier);
this.setIdentifier(identifierList);
} else {
this.getIdentifier().add(identifier);
}
}
public void addContactPoint(LinkedEntity contactPoint) {
if (this.getContactPoint() == null) {
ArrayList contactPointList = new ArrayList<>();
contactPointList.add(contactPoint);
this.setContactPoint(contactPointList);
} else {
this.getContactPoint().add(contactPoint);
}
}
public void addParameter(Parameter parameter) {
if (this.getParameter() == null) {
ArrayList parameterList = new ArrayList<>();
parameterList.add(parameter);
this.setParameter(parameterList);
} else {
this.getParameter().add(parameter);
}
}
public SoftwareApplication category(List category) {
this.category = category;
return this;
}
public SoftwareApplication addCategoryItem(String categoryItem) {
if (this.category == null) {
this.category = new ArrayList<>();
}
this.category.add(categoryItem);
return this;
}
/**
* This property refers to a category of the Software Application. A Software Application may be associated with multiple categories.
*
* @return category
**/
public List getCategory() {
return category;
}
public void setCategory(List category) {
this.category = category;
}
public SoftwareApplication description(String description) {
this.description = description;
return this;
}
/**
* This property contains the description of the Software Application
*
* @return description
**/
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public SoftwareApplication downloadURL(String downloadURL) {
this.downloadURL = downloadURL;
return this;
}
/**
* If the Software Application can be downloaded this property contains the URL to download it.
*
* @return downloadURL
**/
public String getDownloadURL() {
return downloadURL;
}
public void setDownloadURL(String downloadURL) {
this.downloadURL = downloadURL;
}
public SoftwareApplication identifier(List identifier) {
this.identifier = identifier;
return this;
}
public SoftwareApplication addIdentifierItem(Identifier identifierItem) {
this.identifier.add(identifierItem);
return this;
}
/**
* This property contains an identifier for the Software Application.
*
* @return identifier
**/
public List getIdentifier() {
return identifier;
}
public void setIdentifier(List identifier) {
this.identifier = identifier;
}
public SoftwareApplication installURL(String installURL) {
this.installURL = installURL;
return this;
}
/**
* This property contains the URL at which the application may be installed.
*
* @return installURL
**/
public String getInstallURL() {
return installURL;
}
public void setInstallURL(String installURL) {
this.installURL = installURL;
}
public SoftwareApplication keywords(String keywords) {
this.keywords = keywords;
return this;
}
/**
* This property contains the keywords used to describe the Software Application. Multiple entries in a keywords list are typically delimited by commas.
*
* @return keywords
**/
public String getKeywords() {
return keywords;
}
public void addKeywords(String keyword) {
if (this.keywords == null) {
this.keywords = keyword;
} else {
this.keywords = this.keywords + ",\t" + keyword;
}
}
public SoftwareApplication licenseURL(String licenseURL) {
this.licenseURL = licenseURL;
return this;
}
/**
* This property contains the URL of the license document that applies to the Software Application.
*
* @return licenseURL
**/
public String getLicenseURL() {
return licenseURL;
}
public void setLicenseURL(String licenseURL) {
this.licenseURL = licenseURL;
}
public SoftwareApplication mainEntityOfPage(String mainEntityOfPage) {
this.mainEntityOfPage = mainEntityOfPage;
return this;
}
/**
* This property refers to the web page URL which describes the Software Application.
*
* @return mainEntityofPage
**/
public String getMainEntityOfPage() {
return mainEntityOfPage;
}
public void setMainEntityOfPage(String mainEntityOfPage) {
this.mainEntityOfPage = mainEntityOfPage;
}
public SoftwareApplication name(String name) {
this.name = name;
return this;
}
/**
* This property contains the name of the Software Application
*
* @return name
**/
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public SoftwareApplication parameter(ArrayList parameter) {
this.parameter = parameter;
return this;
}
public SoftwareApplication addParameterItem(Parameter parameterItem) {
if (this.parameter == null) {
this.parameter = new ArrayList<>();
}
this.parameter.add(parameterItem);
return this;
}
/**
* This property represents an input or output parameters of the Software Application.
*
* @return parameter
**/
public List getParameter() {
return parameter;
}
public void setParameter(ArrayList parameter) {
this.parameter = parameter;
}
public SoftwareApplication requirements(String requirements) {
this.requirements = requirements;
return this;
}
/**
* Component dependency requirements for application. This includes runtime environments and shared libraries that are not included in the application distribution package, but required to run the application.
*
* @return requirements
**/
public String getRequirements() {
return requirements;
}
public void setRequirements(String requirements) {
this.requirements = requirements;
}
public SoftwareApplication softwareVersion(String softwareVersion) {
this.softwareVersion = softwareVersion;
return this;
}
/**
* This property contains the version of the Software Application instance.
*
* @return softwareVersion
**/
public String getSoftwareVersion() {
return softwareVersion;
}
public void setSoftwareVersion(String softwareVersion) {
this.softwareVersion = softwareVersion;
}
public List getContactPoint() {
return contactPoint;
}
public void setContactPoint(List contactPoint) {
this.contactPoint = contactPoint;
}
public List getRelation() {
return relation;
}
public void setRelation(List relation) {
this.relation = relation;
}
@Override
public String toString() {
return "SoftwareApplication{ category=" + category +
", contactPoint=" + contactPoint +
", description='" + description + '\'' +
", downloadURL='" + downloadURL + '\'' +
", identifier=" + identifier +
", installURL='" + installURL + '\'' +
", keywords='" + keywords + '\'' +
", licenseURL='" + licenseURL + '\'' +
", mainEntityOfPage='" + mainEntityOfPage + '\'' +
", name='" + name + '\'' +
", parameter=" + parameter +
", relation=" + relation +
", requirements='" + requirements + '\'' +
", softwareVersion='" + softwareVersion + '\'' +
"} " + super.toString();
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
if (!super.equals(o)) return false;
SoftwareApplication that = (SoftwareApplication) o;
return Objects.equals(getCategory(), that.getCategory()) && Objects.equals(getContactPoint(), that.getContactPoint()) && Objects.equals(getDescription(), that.getDescription()) && Objects.equals(getDownloadURL(), that.getDownloadURL()) && Objects.equals(getIdentifier(), that.getIdentifier()) && Objects.equals(getInstallURL(), that.getInstallURL()) && Objects.equals(getKeywords(), that.getKeywords()) && Objects.equals(getLicenseURL(), that.getLicenseURL()) && Objects.equals(getMainEntityOfPage(), that.getMainEntityOfPage()) && Objects.equals(getName(), that.getName()) && Objects.equals(getParameter(), that.getParameter()) && Objects.equals(getRelation(), that.getRelation()) && Objects.equals(getRequirements(), that.getRequirements()) && Objects.equals(getSoftwareVersion(), that.getSoftwareVersion());
}
@Override
public int hashCode() {
return Objects.hash(super.hashCode(), getCategory(), getContactPoint(), getDescription(), getDownloadURL(), getIdentifier(), getInstallURL(), getKeywords(), getLicenseURL(), getMainEntityOfPage(), getName(), getParameter(), getRelation(), getRequirements(), getSoftwareVersion());
}
}