class ExternalReference extends Referenceable {

    @Override
    public boolean equals(Object objectToCompare)
    {
        if (this == objectToCompare)
        {
            return true;
        }
        if (!(objectToCompare instanceof ExternalReference))
        {
            return false;
        }
        if (!super.equals(objectToCompare))
        {
            return false;
        }
        ExternalReference that = (ExternalReference) objectToCompare;
        return Objects.equals(getReferenceId(), that.getReferenceId()) &&
                Objects.equals(getLinkDescription(), that.getLinkDescription()) &&
                Objects.equals(getDisplayName(), that.getDisplayName()) &&
                Objects.equals(uri, that.uri) &&
                Objects.equals(getResourceDescription(), that.getResourceDescription()) &&
                Objects.equals(getVersion(), that.getVersion()) &&
                Objects.equals(getOrganization(), that.getOrganization());
    }

    public  ExternalReference();
    public  ExternalReference(ExternalReference templateExternalReference);

}