Example #1
0
        void WriteOutClassDefinition(TextWriter output, Class dexClass, ClassDisplayOptions options)
        {
            if ((options & ClassDisplayOptions.ClassAnnotations) != 0)
            {
                var indent = new Indentation();
                foreach (var annotation in dexClass.Annotations)
                {
                    AnnotationToString(output, annotation.Values, dexClass, indent);
                }
            }

            if ((options & ClassDisplayOptions.ClassDetails) != 0)
            {
                output.Write(_helper.AccessAndType(dexClass));
            }

            if ((options & ClassDisplayOptions.ClassName) != 0)
            {
                output.Write(_dex.GetTypeName(dexClass.ClassIndex));
            }

            if ((options & ClassDisplayOptions.ClassDetails) != 0)
            {
                if (dexClass.SuperClassIndex != Class.NO_INDEX)
                {
                    output.Write(" extends ");
                    output.Write(_dex.GetTypeName(dexClass.SuperClassIndex));
                }

                if (dexClass.ImplementsInterfaces())
                {
                    output.Write(" implements");

                    var ifaces = new List <string> ();
                    foreach (var iface in dexClass.ImplementedInterfaces())
                    {
                        ifaces.Add(_dex.GetTypeName(iface));
                    }
                    output.Write(string.Join(", ", ifaces));
                }
            }
        }
Example #2
0
        void WriteOutClassDefinition(TextWriter output, Class dexClass, ClassDisplayOptions options)
        {
            output.WriteLine(string.Format(".TYPE {0}", _dex.GetTypeName(dexClass.ClassIndex)));

            if ((options & ClassDisplayOptions.ClassDetails) != 0)
            {
                output.WriteLine(string.Format(".MODIFIERS {0}", _helper.AccessAndType(dexClass)));
            }

            if ((options & ClassDisplayOptions.ClassDetails) != 0)
            {
                if (dexClass.SuperClassIndex != Class.NO_INDEX)
                {
                    output.WriteLine(string.Format(".SUPER {0}", _dex.GetTypeName(dexClass.SuperClassIndex)));
                }

                if (dexClass.ImplementsInterfaces())
                {
                    output.Write(".INTERFACES");

                    foreach (var iface in dexClass.ImplementedInterfaces())
                    {
                        output.Write(" ");
                        output.Write(_dex.GetTypeName(iface));
                    }
                    output.WriteLine();
                }
            }

            if ((options & ClassDisplayOptions.ClassAnnotations) != 0)
            {
                foreach (var annotation in dexClass.Annotations)
                {
                    WriteOutAnnotation(output, annotation.Values, dexClass, new Indentation());
                }
            }
        }