public ChoiceAttributeType(String name, int min, int max, AttributeType[] children, Filter restriction) { nill = calculateNillable(children); this.min = min; this.max = max; this.name = name; //ensure immutable. this.children = copyChildren(children); this.restriction = restriction; }