Inheritance: TypePropertyBuilder
 public ContentModelPropertyBuilder(ContentModelPropertyBuilder parentBuilder, GroupingInfo grouping, CodeTypeDeclaration decl, CodeTypeDeclItems declItems,
                                    GeneratedTypesVisibility visibility)
     : base(decl, declItems, visibility)
 {
     this.ParentBuilder = parentBuilder;
     this.grouping      = grouping; //The grouping the contentmodelbuilder works on
 }
 public ChoicePropertyBuilder(ContentModelPropertyBuilder parentBuilder, GroupingInfo grouping, CodeTypeDeclaration decl, CodeTypeDeclItems declItems,
                              GeneratedTypesVisibility visibility = GeneratedTypesVisibility.Public) :
     base(parentBuilder, grouping, decl, declItems, visibility)
 {
     flatChoice       = !grouping.IsNested && !grouping.IsRepeating && !grouping.HasChildGroups;
     hasDuplicateType = false;
     if (flatChoice)
     {
         propertyTypeNameTable = new Dictionary <string, ClrBasePropertyInfo>();
     }
 }
        public static TypePropertyBuilder Create(ContentModelPropertyBuilder parentBuilder, GroupingInfo groupingInfo, CodeTypeDeclaration decl,
                                                 CodeTypeDeclItems declItems, GeneratedTypesVisibility visibility = GeneratedTypesVisibility.Public)
        {
            switch (groupingInfo.ContentModelType)
            {
            case ContentModelType.None:
            case ContentModelType.All:
                return(new DefaultPropertyBuilder(decl, declItems, visibility));

            case ContentModelType.Sequence:
                return(new SequencePropertyBuilder(parentBuilder, groupingInfo, decl, declItems, visibility));

            case ContentModelType.Choice:
                return(new ChoicePropertyBuilder(parentBuilder, groupingInfo, decl, declItems, visibility));

            default:
                throw new InvalidOperationException();
            }
        }
 public SequencePropertyBuilder(ContentModelPropertyBuilder parentBuilder, GroupingInfo grouping, CodeTypeDeclaration decl, CodeTypeDeclItems declItems,
                                GeneratedTypesVisibility visibility = GeneratedTypesVisibility.Public) :
     base(parentBuilder, grouping, decl, declItems, visibility)
 {
 }