class ExternalIdentifier extends Referenceable {

    @Override
    public boolean equals(Object objectToCompare)
    {
        if (this == objectToCompare)
        {
            return true;
        }
        if (!(objectToCompare instanceof ExternalIdentifier))
        {
            return false;
        }
        if (!super.equals(objectToCompare))
        {
            return false;
        }
        ExternalIdentifier that = (ExternalIdentifier) objectToCompare;
        return Objects.equals(getIdentifier(), that.getIdentifier()) &&
                Objects.equals(getDescription(), that.getDescription()) &&
                Objects.equals(getUsage(), that.getUsage()) &&
                Objects.equals(getSource(), that.getSource()) &&
                getKeyPattern() == that.getKeyPattern() &&
                Objects.equals(getScope(), that.getScope()) &&
                Objects.equals(getScopeDescription(), that.getScopeDescription());
    }

    public  ExternalIdentifier();
    public  ExternalIdentifier(ExternalIdentifier templateExternalIdentifier);

}