Exemple #1
0
 protected void writeInterface(FileStreamWriter text, WcfCleanerOptions options, CodeInterface codeInterface)
 {
     text.WriteLine(codeInterface.Headings)
         .WriteLine(codeInterface.Text);
 }
Exemple #2
0
        protected KeyValuePair<string, CodeBlock> writeProperty(FileStreamWriter text, WcfCleanerOptions options, CodeClass codeClass, KeyValuePair<string, CodeBlock> kv)
        {
            var prop = (CodeProperty)kv.Value;

            if (options.AutoSetSpecified && codeClass.Properties.ContainsKey(kv.Key + "Specified"))
            {
                text.WriteLine("\t\tprotected ", prop.Type, " _", kv.Key, ";")
                    .WriteLine()
                    .WriteLine(prop.Headings)
                    .WriteLine("\t\tpublic ", prop.Type, " ", kv.Key)
                    .WriteLine("\t\t{")
                    .WriteLine("\t\t\tget { return _", kv.Key, "; }")
                    .WriteLine("\t\t\tset {")
                    .WriteLine("\t\t\t\t_", kv.Key, " = value;")
                    .WriteLine("\t\t\t\t", kv.Key, "Specified = true;")
                    .WriteLine("\t\t\t}")
                    .WriteLine("\t\t}");
            }
            else
            {
                text.WriteLine(prop.Headings)
                    .WriteLine("\t\tpublic ", prop.Type, " ", kv.Key, " { get; set; }");
            }
            return kv;
        }
Exemple #3
0
        protected void writeFile(FileStreamWriter text, HashSet<string> usingNamespaces, string fileNamespace,
            List<CodeSection> codeSections, WcfCleanerOptions options)
        {
            foreach (string usingNamespace in usingNamespaces)
            {
                text.WriteLine("using ", usingNamespace, ";");
            }

            text.WriteLine();

            text.WriteLine("namespace ", fileNamespace)
                .WriteLine("{");

            var codeEnums = codeSections.Where(c => c is CodeEnum).Cast<CodeEnum>();

            codeEnums.FencePostBefore(
                codeEnum =>
                {
                    text.WriteLine();
                },
                codeEnum =>
                {
                    writeEnum(text, options, codeEnum);
                }
            );

            var codeInterfaces = codeSections.Where(c => c is CodeInterface).Cast<CodeInterface>();
            var interfaceAction = new Action<CodeInterface>(codeInterface => writeInterface(text, options, codeInterface));

            if (codeEnums.Count() == 0)
                codeInterfaces.FencePostBefore(c => text.WriteLine(), interfaceAction);
            else
                codeInterfaces.ForEach(interfaceAction);

            var codeClasses = codeSections.Where(c => c is CodeClass).Cast<CodeClass>();
            var classAction = new Action<CodeClass>(codeClass => writeClass(text, options, codeClass));

            if (codeEnums.Count() == 0 && codeInterfaces.Count() == 0)
                codeClasses.FencePostBefore(c => text.WriteLine(), classAction);
            else
                codeClasses.ForEach(classAction);

            text.WriteLine("}");
        }
Exemple #4
0
 protected void writeEnumValue(FileStreamWriter text, CodeEnumValue enumValue)
 {
     text.WriteLine(enumValue.Headings)
         .WriteLine("\t\t", enumValue.Name, ",");
 }
Exemple #5
0
        protected void writeEnum(FileStreamWriter text, WcfCleanerOptions options, CodeEnum codeEnum)
        {
            text.WriteLine(codeEnum.Headings)
                .WriteLine("\tpublic enum ", codeEnum.Name)
                .WriteLine("\t{");

            codeEnum.Values.FencePostBefore(
                enumValue =>
                {
                    text.WriteLine();
                },
                enumValue =>
                {
                    writeEnumValue(text, enumValue);
                }
            );

            text.WriteLine("\t}");
        }
Exemple #6
0
 protected void writeCodeChunk(FileStreamWriter text, string chunk)
 {
     text.WriteLine("\t\t", chunk);
 }
Exemple #7
0
        protected void writeClass(FileStreamWriter text, WcfCleanerOptions options, CodeClass codeClass)
        {
            text.WriteLine(codeClass.Headings)
                .WriteLine("\tpublic class ", codeClass.Name, " ", codeClass.Inheritance)
                .WriteLine("\t{");

            int written = 0;

            codeClass.Chunks.FencePostBefore(
                chunk =>
                {
                    text.WriteLine();
                },
                chunk =>
                {
                    written++;
                    writeCodeChunk(text, chunk);
                }
            );

            if (written > 0)
            {
                foreach (var kv in codeClass.Properties)
                {
                    text.WriteLine();
                    writeProperty(text, options, codeClass, kv);
                }
            }
            else
            {
                codeClass.Properties.FencePostBefore(
                    kv =>
                    {
                        text.WriteLine();
                    },
                    kv =>
                    {
                        writeProperty(text, options, codeClass, kv);
                    }
                );
            }

            text.WriteLine("\t}");
        }