package com.thoughtworks.go.plugin.access.configrepo.contract.material;
import com.thoughtworks.go.plugin.access.configrepo.ErrorCollection;
public class CRPackageMaterial extends CRMaterial {
public static final String TYPE_NAME = "package";
private String package_id;
public CRPackageMaterial() {
type = TYPE_NAME;
}
public CRPackageMaterial(String packageId)
{
type = TYPE_NAME;
this.package_id = packageId;
}
public CRPackageMaterial(String material,String packageId)
{
super(TYPE_NAME,material);
this.package_id = packageId;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
CRPackageMaterial that = (CRPackageMaterial) o;
if(!super.equals(that))
return false;
if (package_id != null ? !package_id.equals(that.package_id) : that.package_id != null) {
return false;
}
return true;
}
@Override
public int hashCode() {
int result = super.hashCode();
result = 31 * result + (package_id != null ? package_id.hashCode() : 0);
return result;
}
@Override
public String typeName() {
return TYPE_NAME;
}
public String getPackageId() {
return package_id;
}
public void setPackageId(String packageId) {
this.package_id = packageId;
}
@Override
public void getErrors(ErrorCollection errors, String parentLocation) {
String location = getLocation(parentLocation);
errors.checkMissing(location,"package_id",package_id);
}
@Override
public String getLocation(String parent) {
String myLocation = getLocation() == null ? parent : getLocation();
String name = getName() == null ? "" : getName();
String url = getPackageId() != null ? getPackageId() : "unknown";
return String.format("%s; Package material %s ID: %s",myLocation,name,url);
}
}