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)); } } }
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()); } } }