Bind.JavaSpecWriter.WriteEnums C# (CSharp) Method

WriteEnums() public method

public WriteEnums ( BindStreamWriter sw, EnumCollection enums ) : void
sw BindStreamWriter
enums EnumCollection
return void
        public void WriteEnums(BindStreamWriter sw, EnumCollection enums)
        {
            foreach (Enum @enum in enums.Values)
            {
                sw.WriteLine("public enum {0}", @enum.Name);
                sw.WriteLine("{");
                sw.Indent();
                int count = @enum.ConstantCollection.Values.Count;
                if (count == 0)
                {
                    // Java enums must have at least one value.
                    sw.WriteLine("None;");
                }
                else
                {
                    foreach (var c in @enum.ConstantCollection.Values)
                    {
                        sw.WriteLine(String.Format("{0}({1}{2}){3}",
                            c.Name,
                            !String.IsNullOrEmpty(c.Reference) ? (c.Reference + Settings.NamespaceSeparator) : "",
                            !String.IsNullOrEmpty(c.Reference) ? c.Value : c.Value.ToLower(),
                            --count == 0 ? ";" : ","));
                    }
                    sw.WriteLine();
                    sw.WriteLine("{0} mValue;", @enum.Type);
                    sw.WriteLine("{0}({1} value) {{ mValue = value; }}", @enum.Name, @enum.Type);
                }
                sw.Unindent();
                sw.WriteLine("}");
                sw.WriteLine();
            }
        }