public IniFileContext AnalyzeIniFile()
        {
            var sectionNames = _iniParserWrapper.GetSectionsFromFile();

            var(separateSections, complexDataSections) = _sectionsAnalyzer.AnalyzeSections(sectionNames);

            var classesToGenerate        = AnalyzeSeparateSections(separateSections);
            var complexClassesToGenerate = AnalyzeComplexDataSections(complexDataSections);
            var usingsToGenerate         = _iniFileUsingsAnalyzer.AnalyzeIniFileNecessaryUsings(complexClassesToGenerate);

            var propertiesInMainClass = AnalyzePropertiesInMainClass(classesToGenerate, complexClassesToGenerate);
            var mainClassToGenerate   = new ClassToGenerate(_mainClassName, propertiesInMainClass, usingsToGenerate);

            classesToGenerate.Add(mainClassToGenerate);
            return(new IniFileContext(classesToGenerate, complexClassesToGenerate));
        }
Exemplo n.º 2
0
        public CompilationUnitSyntax Generate(CompilationUnitSyntax compilationUnitSyntax, ClassToGenerate classToGenerate)
        {
            var classDeclarationSyntax = _syntaxGeneratorFacade.GetClassSyntax(classToGenerate.ClassName);

            classDeclarationSyntax = _classDeclarationGenerators
                                     .Aggregate(classDeclarationSyntax, (current, classDeclarationGenerator) => classDeclarationGenerator.Generate(current, classToGenerate));

            var @namespace = _syntaxGeneratorFacade.GetNamespace(_namespace);

            @namespace = @namespace.AddMembers(classDeclarationSyntax);
            return(compilationUnitSyntax.AddMembers(@namespace));
        }
Exemplo n.º 3
0
 public CompilationUnitSyntax Generate(CompilationUnitSyntax compilationUnitSyntax, ClassToGenerate classToGenerate)
 {
     return(classToGenerate.UsingsToGenerate
            .Select(@using => _syntaxGeneratorFacade.GetUsingSyntax(@using))
            .Aggregate(compilationUnitSyntax, (current, @using) => current.AddUsings(@using)));
 }
 public ClassDeclarationSyntax Generate(ClassDeclarationSyntax classDeclarationSyntax, ClassToGenerate classToGenerate)
 {
     return(classDeclarationSyntax.AddMembers(_syntaxGeneratorFacade.GetConstructorDeclarationSyntax(classToGenerate.ClassName, classToGenerate.PropertyDescriptors)));
 }
 public ClassDeclarationSyntax Generate(ClassDeclarationSyntax classDeclarationSyntax, ClassToGenerate classToGenerate)
 {
     return(classToGenerate.PropertyDescriptors
            .Where(propertyDescriptor => propertyDescriptor.SyntaxKind == SyntaxKind.List)
            .Select(propertyDescriptor => _syntaxGeneratorFacade.GetListPropertyDeclarationSyntax(propertyDescriptor.Name, propertyDescriptor.UnderlyingSyntaxKind))
            .Aggregate(classDeclarationSyntax, (current, propertySyntax) => current.AddMembers(_propertyDeclarationSyntaxModifier.Modify(classDeclarationSyntax, propertySyntax))));
 }