public ClassStringBuilderSettings(IClassGenerationTemplate classGenerationTemplate, IMemberGenerationTemplate propertyGenerationTemplate, IReferenceImportGenerationTemplate referenceImportGenerationTemplate, INamespaceGenerationTemplate namespaceGenerationTemplate)
        {
            if (classGenerationTemplate == null)
            {
                throw new ArgumentNullException(nameof(classGenerationTemplate));
            }

            if (propertyGenerationTemplate == null)
            {
                throw new ArgumentNullException(nameof(propertyGenerationTemplate));
            }

            if (referenceImportGenerationTemplate == null)
            {
                throw new ArgumentNullException(nameof(referenceImportGenerationTemplate));
            }

            if (namespaceGenerationTemplate == null)
            {
                throw new ArgumentNullException(nameof(namespaceGenerationTemplate));
            }

            ClassGenerationTemplate           = classGenerationTemplate;
            MemberGenerationTemple            = propertyGenerationTemplate;
            ReferenceImportGenerationTemplate = referenceImportGenerationTemplate;
            NamespaceGenerationTemplate       = namespaceGenerationTemplate;
        }
예제 #2
0
 private void GenerateMembers(FormattedStringBuilder stringBuilder, IMemberGenerationTemplate memberGenerationTemplate, IList <MemberDetails> members)
 {
     foreach (MemberDetails details in members)
     {
         memberGenerationTemplate.Generate(stringBuilder, details.Name, details.Type, details.Cardinality);
     }
 }
예제 #3
0
        public void Generate(FormattedStringBuilder stringBuilder, string className, Visibility visibility, IMemberGenerationTemplate propertyGenerationTemplate, IList <MemberDetails> memberDetails)
        {
            string modifier = visibility.Equals(Visibility.Private) ? "private" : "public";

            stringBuilder.AppendLine($"{modifier} class {className}");

            stringBuilder.AppendLine("{");
            stringBuilder.LevelDown();

            GenerateMembers(stringBuilder, propertyGenerationTemplate, memberDetails);

            stringBuilder.LevelUp();
            stringBuilder.AppendLine("}");
        }