package EnvironmentPluginAPI.Contract;
import java.io.Serializable;
/**
* This class is used to identify and describe environment plugins.
*/
public class TEnvironmentDescription implements Serializable {
private final String name;
private final String version;
private final String description;
public TEnvironmentDescription(String name, String version, String description) {
this.name = name;
this.version = version;
this.description = description;
}
public String getName() {
return name;
}
public String getVersion() {
return version;
}
public String getDescription() {
return description;
}
@Override
public String toString() {
return name + " " + version;
}
/**
* Environments are equal, if their name and version match (case insensitive).
* <br/><br/>
* The description is ignored.
* @param o
* @return
*/
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
TEnvironmentDescription that = (TEnvironmentDescription) o;
if (!name.equalsIgnoreCase((that.name))) return false;
if (!version.equalsIgnoreCase(that.version)) return false;
return true;
}
@Override
public int hashCode() {
int result = name.hashCode();
result = 31 * result + version.hashCode();
return result;
}
}