class AttributeTypeDef extends TypeDefElementHeader {

    @Override
    public boolean equals(Object object)
    {
        if (this == object)
        {
            return true;
        }
        if (object == null || getClass() != object.getClass())
        {
            return false;
        }
        AttributeTypeDef that = (AttributeTypeDef) object;
        return version == that.version &&
                Objects.equals(versionName, that.versionName) &&
                category == that.category &&
                Objects.equals(guid, that.guid) &&
                Objects.equals(name, that.name) &&
                Objects.equals(description, that.description) &&
                Objects.equals(descriptionGUID, that.descriptionGUID);
    }

    protected  AttributeTypeDef();
    protected  AttributeTypeDef(AttributeTypeDefCategory   category);
    protected  AttributeTypeDef(AttributeTypeDefCategory   category,
                               String                     guid,
                               String                     name);
    protected  AttributeTypeDef(AttributeTypeDef template);

}