AnnotationEncodedValueAdaptor.java revision 6eae34831fee1f116f3a453bdc5e143d68e05e03
11080561460a0d509a24173d7ff38241a1f79a1b6JesusFreke@JesusFreke.com/* 21080561460a0d509a24173d7ff38241a1f79a1b6JesusFreke@JesusFreke.com * [The "BSD licence"] 300fc68adf2e39aeb9fed35293f2576bbe729ec4bJesusFreke@JesusFreke.com * Copyright (c) 2010 Ben Gruver (JesusFreke) 41080561460a0d509a24173d7ff38241a1f79a1b6JesusFreke@JesusFreke.com * All rights reserved. 51080561460a0d509a24173d7ff38241a1f79a1b6JesusFreke@JesusFreke.com * 61080561460a0d509a24173d7ff38241a1f79a1b6JesusFreke@JesusFreke.com * Redistribution and use in source and binary forms, with or without 71080561460a0d509a24173d7ff38241a1f79a1b6JesusFreke@JesusFreke.com * modification, are permitted provided that the following conditions 81080561460a0d509a24173d7ff38241a1f79a1b6JesusFreke@JesusFreke.com * are met: 91080561460a0d509a24173d7ff38241a1f79a1b6JesusFreke@JesusFreke.com * 1. Redistributions of source code must retain the above copyright 101080561460a0d509a24173d7ff38241a1f79a1b6JesusFreke@JesusFreke.com * notice, this list of conditions and the following disclaimer. 111080561460a0d509a24173d7ff38241a1f79a1b6JesusFreke@JesusFreke.com * 2. Redistributions in binary form must reproduce the above copyright 121080561460a0d509a24173d7ff38241a1f79a1b6JesusFreke@JesusFreke.com * notice, this list of conditions and the following disclaimer in the 131080561460a0d509a24173d7ff38241a1f79a1b6JesusFreke@JesusFreke.com * documentation and/or other materials provided with the distribution. 141080561460a0d509a24173d7ff38241a1f79a1b6JesusFreke@JesusFreke.com * 3. The name of the author may not be used to endorse or promote products 151080561460a0d509a24173d7ff38241a1f79a1b6JesusFreke@JesusFreke.com * derived from this software without specific prior written permission. 161080561460a0d509a24173d7ff38241a1f79a1b6JesusFreke@JesusFreke.com * 171080561460a0d509a24173d7ff38241a1f79a1b6JesusFreke@JesusFreke.com * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 181080561460a0d509a24173d7ff38241a1f79a1b6JesusFreke@JesusFreke.com * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 191080561460a0d509a24173d7ff38241a1f79a1b6JesusFreke@JesusFreke.com * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 201080561460a0d509a24173d7ff38241a1f79a1b6JesusFreke@JesusFreke.com * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 211080561460a0d509a24173d7ff38241a1f79a1b6JesusFreke@JesusFreke.com * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 221080561460a0d509a24173d7ff38241a1f79a1b6JesusFreke@JesusFreke.com * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 231080561460a0d509a24173d7ff38241a1f79a1b6JesusFreke@JesusFreke.com * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 241080561460a0d509a24173d7ff38241a1f79a1b6JesusFreke@JesusFreke.com * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 251080561460a0d509a24173d7ff38241a1f79a1b6JesusFreke@JesusFreke.com * INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 261080561460a0d509a24173d7ff38241a1f79a1b6JesusFreke@JesusFreke.com * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 271080561460a0d509a24173d7ff38241a1f79a1b6JesusFreke@JesusFreke.com */ 281080561460a0d509a24173d7ff38241a1f79a1b6JesusFreke@JesusFreke.com 291080561460a0d509a24173d7ff38241a1f79a1b6JesusFreke@JesusFreke.compackage org.jf.baksmali.Adaptors.EncodedValue; 301080561460a0d509a24173d7ff38241a1f79a1b6JesusFreke@JesusFreke.com 316eae34831fee1f116f3a453bdc5e143d68e05e03JesusFreke@JesusFreke.comimport org.jf.baksmali.Adaptors.ReferenceFormatter; 326eae34831fee1f116f3a453bdc5e143d68e05e03JesusFreke@JesusFreke.comimport org.jf.baksmali.IndentingPrintWriter; 33cf6729c1ee64e732f28eb40386ecc69d4fb6b401JesusFreke@JesusFreke.comimport org.jf.dexlib.EncodedValue.AnnotationEncodedSubValue; 341080561460a0d509a24173d7ff38241a1f79a1b6JesusFreke@JesusFreke.com 356eae34831fee1f116f3a453bdc5e143d68e05e03JesusFreke@JesusFreke.comimport java.io.IOException; 361080561460a0d509a24173d7ff38241a1f79a1b6JesusFreke@JesusFreke.com 37a3cf936fc254f9d2bdec715718bef9a0f5edf600JesusFreke@JesusFreke.compublic abstract class AnnotationEncodedValueAdaptor { 385867263eb588f4671400895d1e6b01c01535061bJesusFreke@JesusFreke.com 396eae34831fee1f116f3a453bdc5e143d68e05e03JesusFreke@JesusFreke.com public static void writeTo(IndentingPrintWriter writer, AnnotationEncodedSubValue encodedAnnotation) 406eae34831fee1f116f3a453bdc5e143d68e05e03JesusFreke@JesusFreke.com throws IOException { 416eae34831fee1f116f3a453bdc5e143d68e05e03JesusFreke@JesusFreke.com writer.write(".subannotation "); 426eae34831fee1f116f3a453bdc5e143d68e05e03JesusFreke@JesusFreke.com ReferenceFormatter.writeTypeReference(writer, encodedAnnotation.annotationType); 436eae34831fee1f116f3a453bdc5e143d68e05e03JesusFreke@JesusFreke.com writer.println(); 441080561460a0d509a24173d7ff38241a1f79a1b6JesusFreke@JesusFreke.com 456eae34831fee1f116f3a453bdc5e143d68e05e03JesusFreke@JesusFreke.com writeElementsTo(writer, encodedAnnotation); 466eae34831fee1f116f3a453bdc5e143d68e05e03JesusFreke@JesusFreke.com writer.write(".end subannotation"); 471080561460a0d509a24173d7ff38241a1f79a1b6JesusFreke@JesusFreke.com } 481080561460a0d509a24173d7ff38241a1f79a1b6JesusFreke@JesusFreke.com 496eae34831fee1f116f3a453bdc5e143d68e05e03JesusFreke@JesusFreke.com public static void writeElementsTo(IndentingPrintWriter writer, AnnotationEncodedSubValue encodedAnnotation) 506eae34831fee1f116f3a453bdc5e143d68e05e03JesusFreke@JesusFreke.com throws IOException { 516eae34831fee1f116f3a453bdc5e143d68e05e03JesusFreke@JesusFreke.com writer.indent(4); 52cf6729c1ee64e732f28eb40386ecc69d4fb6b401JesusFreke@JesusFreke.com for (int i=0; i<encodedAnnotation.names.length; i++) { 536eae34831fee1f116f3a453bdc5e143d68e05e03JesusFreke@JesusFreke.com writer.write(encodedAnnotation.names[i].getStringValue()); 546eae34831fee1f116f3a453bdc5e143d68e05e03JesusFreke@JesusFreke.com writer.write(" = "); 551080561460a0d509a24173d7ff38241a1f79a1b6JesusFreke@JesusFreke.com 566eae34831fee1f116f3a453bdc5e143d68e05e03JesusFreke@JesusFreke.com EncodedValueAdaptor.writeTo(writer, encodedAnnotation.values[i]); 576eae34831fee1f116f3a453bdc5e143d68e05e03JesusFreke@JesusFreke.com writer.println(); 581080561460a0d509a24173d7ff38241a1f79a1b6JesusFreke@JesusFreke.com } 596eae34831fee1f116f3a453bdc5e143d68e05e03JesusFreke@JesusFreke.com writer.deindent(4); 601080561460a0d509a24173d7ff38241a1f79a1b6JesusFreke@JesusFreke.com } 611080561460a0d509a24173d7ff38241a1f79a1b6JesusFreke@JesusFreke.com} 62