class TypeDefPatch extends TypeDefElementHeader {

    @Override
    public boolean equals(Object objectToCompare)
    {
        if (this == objectToCompare)
        {
            return true;
        }
        if (objectToCompare == null || getClass() != objectToCompare.getClass())
        {
            return false;
        }
        TypeDefPatch that = (TypeDefPatch) objectToCompare;
        return applyToVersion == that.applyToVersion &&
                updateToVersion == that.updateToVersion &&
                Objects.equals(typeDefGUID, that.typeDefGUID) &&
                Objects.equals(typeDefName, that.typeDefName) &&
                typeDefStatus == that.typeDefStatus &&
                Objects.equals(newVersionName, that.newVersionName) &&
                Objects.equals(updatedBy, that.updatedBy) &&
                Objects.equals(updateTime, that.updateTime) &&
                Objects.equals(description, that.description) &&
                Objects.equals(descriptionGUID, that.descriptionGUID) &&
                Objects.equals(propertyDefinitions, that.propertyDefinitions) &&
                Objects.equals(typeDefOptions, that.typeDefOptions) &&
                Objects.equals(externalStandardMappings, that.externalStandardMappings) &&
                Objects.equals(validInstanceStatusList, that.validInstanceStatusList) &&
                initialStatus == that.initialStatus &&
                Objects.equals(validEntityDefs, that.validEntityDefs) &&
                Objects.equals(endDef1, that.endDef1) &&
                Objects.equals(endDef2, that.endDef2);
    }

    public  TypeDefPatch();
    public  TypeDefPatch(TypeDefPatch   template);

}