class InstancePropertyValue extends InstanceElementHeader {

    @Override
    public boolean equals(Object objectToCompare)
    {
        if (this == objectToCompare)
        {
            return true;
        }
        if (!(objectToCompare instanceof InstancePropertyValue))
        {
            return false;
        }
        InstancePropertyValue that = (InstancePropertyValue) objectToCompare;
        return getInstancePropertyCategory() == that.getInstancePropertyCategory() &&
                Objects.equals(getTypeGUID(), that.getTypeGUID()) &&
                Objects.equals(getTypeName(), that.getTypeName());
    }

    protected  InstancePropertyValue();
    protected  InstancePropertyValue(InstancePropertyCategory instancePropertyCategory);
    protected  InstancePropertyValue(InstancePropertyValue template);

}