Exemple #1
0
        public static ArrayBuilder AddArray(this CodeBlockBuilder method)
        {
            var arrayBuilder = ArrayBuilder.New();

            method.AddCode(arrayBuilder);
            return(arrayBuilder);
        }
        public static MethodCallBuilder AddMethodCall(this CodeBlockBuilder builder)
        {
            var methodCallBuilder = MethodCallBuilder.New();

            builder.AddCode(methodCallBuilder);
            return(methodCallBuilder);
        }
Exemple #3
0
        public static CodeBlockBuilder AddIf(
            this CodeBlockBuilder builder,
            Action <IfBuilder> configure)
        {
            var ifBuilder = IfBuilder.New();

            configure(ifBuilder);
            return(builder.AddCode(ifBuilder));
        }
Exemple #4
0
        public static CodeBlockBuilder AddMethodCall(
            this CodeBlockBuilder builder,
            Action <MethodCallBuilder> configure)
        {
            var methodCallBuilder = new MethodCallBuilder();

            configure(methodCallBuilder);
            return(builder.AddCode(methodCallBuilder));
        }
        public static AssignmentBuilder AddAssigment(
            this CodeBlockBuilder builder,
            string assignedTo)
        {
            AssignmentBuilder assignmentBuilder = AssignmentBuilder
                                                  .New()
                                                  .SetLefthandSide(assignedTo);

            builder.AddCode(assignmentBuilder);

            return(assignmentBuilder);
        }
        public static AssignmentBuilder AddAssigment(
            this CodeBlockBuilder builder,
            string?assignedTo = null)
        {
            AssignmentBuilder assignmentBuilder = AssignmentBuilder
                                                  .New();

            if (assignedTo is not null)
            {
                assignmentBuilder.SetLefthandSide(assignedTo);
            }

            builder.AddCode(assignmentBuilder);

            return(assignmentBuilder);
        }
Exemple #7
0
        protected override void Generate(
            CodeWriter writer,
            InputObjectTypeDescriptor namedTypeDescriptor,
            out string fileName)
        {
            fileName = CreateInputValueFormatter(namedTypeDescriptor);

            NameString   typeName     = namedTypeDescriptor.Name;
            ClassBuilder classBuilder = ClassBuilder.New()
                                        .SetName(fileName)
                                        .AddImplements(TypeNames.IInputValueFormatter);

            var neededSerializers = namedTypeDescriptor.Properties
                                    .ToLookup(x => x.Type.Name)
                                    .Select(x => x.First())
                                    .ToDictionary(x => x.Type.Name);

            //  Initialize Method

            CodeBlockBuilder initialize = classBuilder
                                          .AddMethod("Initialize")
                                          .SetPublic()
                                          .AddParameter("serializerResolver", x => x.SetType(TypeNames.ISerializerResolver))
                                          .AddBody();

            foreach (var property in neededSerializers.Values)
            {
                if (property.Type.GetName().Value is { } name)
                {
                    MethodCallBuilder call = MethodCallBuilder.New()
                                             .SetMethodName("serializerResolver." +
                                                            nameof(ISerializerResolver.GetInputValueFormatter))
                                             .AddArgument(name.AsStringToken() ?? "")
                                             .SetPrefix($"{GetFieldName(name)}Formatter = ");

                    initialize.AddCode(call);
                }
Exemple #8
0
 public static CodeBlockBuilder AddLine(
     this CodeBlockBuilder builder,
     string code)
 {
     return(builder.AddCode(CodeLineBuilder.From(code)));
 }