Exemplo n.º 1
0
        protected override void Generate(
            CodeWriter writer,
            InterfaceTypeDescriptor descriptor,
            out string fileName)
        {
            fileName = descriptor.RuntimeType.Name;
            InterfaceBuilder interfaceBuilder =
                InterfaceBuilder.New().SetName(fileName);

            foreach (var prop in descriptor.Properties)
            {
                interfaceBuilder.AddProperty(
                    prop.Name,
                    x => x.SetType(prop.Type.ToBuilder()).SetAccessModifier(AccessModifier.Public));
            }

            foreach (NameString implement in descriptor.Implements)
            {
                interfaceBuilder.AddImplements(implement);
            }

            CodeFileBuilder
            .New()
            .SetNamespace(descriptor.RuntimeType.NamespaceWithoutGlobal)
            .AddType(interfaceBuilder)
            .Build(writer);
        }
Exemplo n.º 2
0
        protected override Task WriteAsync(
            CodeWriter writer,
            OutputModelInterfaceDescriptor descriptor)
        {
            if (writer is null)
            {
                throw new ArgumentNullException(nameof(writer));
            }

            if (descriptor is null)
            {
                throw new ArgumentNullException(nameof(descriptor));
            }

            InterfaceBuilder builder =
                InterfaceBuilder.New()
                .SetAccessModifier(AccessModifier.Public)
                .SetName(descriptor.Name);

            foreach (var typeName in descriptor.Implements)
            {
                builder.AddImplements(typeName);
            }

            foreach (OutputFieldDescriptor field in descriptor.Fields)
            {
                builder.AddProperty(
                    InterfacePropertyBuilder.New()
                    .SetName(field.Name)
                    .SetType(field.Type));
            }

            return(builder.BuildAsync(writer));
        }