class CollectionDef extends AttributeTypeDef {

    @Override
    public boolean equals(Object objectToCompare)
    {
        if (this == objectToCompare)
        {
            return true;
        }
        if (!(objectToCompare instanceof CollectionDef))
        {
            return false;
        }
        if (!super.equals(objectToCompare))
        {
            return false;
        }
        CollectionDef that = (CollectionDef) objectToCompare;
        return getArgumentCount() == that.getArgumentCount() &&
                getCollectionDefCategory() == that.getCollectionDefCategory() &&
                Objects.equals(getArgumentTypes(), that.getArgumentTypes());
    }

    public  CollectionDef();
    public  CollectionDef(CollectionDefCategory  collectionDefCategory);
    public  CollectionDef(CollectionDef template);

}