class Endpoint extends Referenceable {

    @Override
    public boolean equals(Object objectToCompare)
    {
        if (this == objectToCompare)
        {
            return true;
        }
        if (!(objectToCompare instanceof Endpoint))
        {
            return false;
        }
        if (!super.equals(objectToCompare))
        {
            return false;
        }
        Endpoint endpoint = (Endpoint) objectToCompare;
        return Objects.equals(getDisplayName(), endpoint.getDisplayName()) &&
                Objects.equals(getDescription(), endpoint.getDescription()) &&
                Objects.equals(getAddress(), endpoint.getAddress()) &&
                Objects.equals(getProtocol(), endpoint.getProtocol()) &&
                Objects.equals(getEncryptionMethod(), endpoint.getEncryptionMethod());
    }

    public  Endpoint();
    public  Endpoint(Endpoint templateEndpoint);

}