1*d57664e9SAndroid Build Coastguard Worker /* 2*d57664e9SAndroid Build Coastguard Worker * Copyright (C) 2020 The Android Open Source Project 3*d57664e9SAndroid Build Coastguard Worker * 4*d57664e9SAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 5*d57664e9SAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 6*d57664e9SAndroid Build Coastguard Worker * You may obtain a copy of the License at 7*d57664e9SAndroid Build Coastguard Worker * 8*d57664e9SAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 9*d57664e9SAndroid Build Coastguard Worker * 10*d57664e9SAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 11*d57664e9SAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 12*d57664e9SAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*d57664e9SAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 14*d57664e9SAndroid Build Coastguard Worker * limitations under the License. 15*d57664e9SAndroid Build Coastguard Worker */ 16*d57664e9SAndroid Build Coastguard Worker 17*d57664e9SAndroid Build Coastguard Worker import com.android.modules.utils.TypedXmlPullParser; 18*d57664e9SAndroid Build Coastguard Worker import com.android.modules.utils.TypedXmlSerializer; 19*d57664e9SAndroid Build Coastguard Worker 20*d57664e9SAndroid Build Coastguard Worker import com.android.internal.util.XmlUtils; 21*d57664e9SAndroid Build Coastguard Worker 22*d57664e9SAndroid Build Coastguard Worker import com.google.errorprone.refaster.annotation.AfterTemplate; 23*d57664e9SAndroid Build Coastguard Worker import com.google.errorprone.refaster.annotation.BeforeTemplate; 24*d57664e9SAndroid Build Coastguard Worker 25*d57664e9SAndroid Build Coastguard Worker /** 26*d57664e9SAndroid Build Coastguard Worker * Refaster templates that migrate callers to equivalent and more efficient 27*d57664e9SAndroid Build Coastguard Worker * {@link TypedXmlSerializer} and {@link TypedXmlPullParser} methods. 28*d57664e9SAndroid Build Coastguard Worker */ 29*d57664e9SAndroid Build Coastguard Worker public class EfficientXml { 30*d57664e9SAndroid Build Coastguard Worker class IntToString { 31*d57664e9SAndroid Build Coastguard Worker @BeforeTemplate 32*d57664e9SAndroid Build Coastguard Worker void beforeToString(TypedXmlSerializer out, String n, int v) throws Exception { 33*d57664e9SAndroid Build Coastguard Worker out.attribute(null, n, Integer.toString(v)); 34*d57664e9SAndroid Build Coastguard Worker } 35*d57664e9SAndroid Build Coastguard Worker 36*d57664e9SAndroid Build Coastguard Worker @BeforeTemplate 37*d57664e9SAndroid Build Coastguard Worker void beforeValueOf(TypedXmlSerializer out, String n, int v) throws Exception { 38*d57664e9SAndroid Build Coastguard Worker out.attribute(null, n, String.valueOf(v)); 39*d57664e9SAndroid Build Coastguard Worker } 40*d57664e9SAndroid Build Coastguard Worker 41*d57664e9SAndroid Build Coastguard Worker @BeforeTemplate 42*d57664e9SAndroid Build Coastguard Worker void beforeUtils(TypedXmlSerializer out, String n, int v) throws Exception { 43*d57664e9SAndroid Build Coastguard Worker XmlUtils.writeIntAttribute(out, n, v); 44*d57664e9SAndroid Build Coastguard Worker } 45*d57664e9SAndroid Build Coastguard Worker 46*d57664e9SAndroid Build Coastguard Worker @BeforeTemplate 47*d57664e9SAndroid Build Coastguard Worker void beforeRadix(TypedXmlSerializer out, String n, int v) throws Exception { 48*d57664e9SAndroid Build Coastguard Worker out.attribute(null, n, Integer.toString(v, 10)); 49*d57664e9SAndroid Build Coastguard Worker } 50*d57664e9SAndroid Build Coastguard Worker 51*d57664e9SAndroid Build Coastguard Worker @AfterTemplate 52*d57664e9SAndroid Build Coastguard Worker void after(TypedXmlSerializer out, String n, int v) throws Exception { 53*d57664e9SAndroid Build Coastguard Worker out.attributeInt(null, n, v); 54*d57664e9SAndroid Build Coastguard Worker } 55*d57664e9SAndroid Build Coastguard Worker } 56*d57664e9SAndroid Build Coastguard Worker 57*d57664e9SAndroid Build Coastguard Worker class IntToStringHex { 58*d57664e9SAndroid Build Coastguard Worker @BeforeTemplate 59*d57664e9SAndroid Build Coastguard Worker void beforeToHexString(TypedXmlSerializer out, String n, int v) throws Exception { 60*d57664e9SAndroid Build Coastguard Worker out.attribute(null, n, Integer.toHexString(v)); 61*d57664e9SAndroid Build Coastguard Worker } 62*d57664e9SAndroid Build Coastguard Worker 63*d57664e9SAndroid Build Coastguard Worker @BeforeTemplate 64*d57664e9SAndroid Build Coastguard Worker void beforeRadix(TypedXmlSerializer out, String n, int v) throws Exception { 65*d57664e9SAndroid Build Coastguard Worker out.attribute(null, n, Integer.toString(v, 16)); 66*d57664e9SAndroid Build Coastguard Worker } 67*d57664e9SAndroid Build Coastguard Worker 68*d57664e9SAndroid Build Coastguard Worker @AfterTemplate 69*d57664e9SAndroid Build Coastguard Worker void after(TypedXmlSerializer out, String n, int v) throws Exception { 70*d57664e9SAndroid Build Coastguard Worker out.attributeIntHex(null, n, v); 71*d57664e9SAndroid Build Coastguard Worker } 72*d57664e9SAndroid Build Coastguard Worker } 73*d57664e9SAndroid Build Coastguard Worker 74*d57664e9SAndroid Build Coastguard Worker class IntFromString { 75*d57664e9SAndroid Build Coastguard Worker @BeforeTemplate 76*d57664e9SAndroid Build Coastguard Worker int beforeParse(TypedXmlPullParser in, String n) throws Exception { 77*d57664e9SAndroid Build Coastguard Worker return Integer.parseInt(in.getAttributeValue(null, n)); 78*d57664e9SAndroid Build Coastguard Worker } 79*d57664e9SAndroid Build Coastguard Worker 80*d57664e9SAndroid Build Coastguard Worker @BeforeTemplate 81*d57664e9SAndroid Build Coastguard Worker int beforeUtils(TypedXmlPullParser in, String n) throws Exception { 82*d57664e9SAndroid Build Coastguard Worker return XmlUtils.readIntAttribute(in, n); 83*d57664e9SAndroid Build Coastguard Worker } 84*d57664e9SAndroid Build Coastguard Worker 85*d57664e9SAndroid Build Coastguard Worker @BeforeTemplate 86*d57664e9SAndroid Build Coastguard Worker int beforeRadix(TypedXmlPullParser in, String n) throws Exception { 87*d57664e9SAndroid Build Coastguard Worker return Integer.parseInt(in.getAttributeValue(null, n), 10); 88*d57664e9SAndroid Build Coastguard Worker } 89*d57664e9SAndroid Build Coastguard Worker 90*d57664e9SAndroid Build Coastguard Worker @AfterTemplate 91*d57664e9SAndroid Build Coastguard Worker int after(TypedXmlPullParser in, String n) throws Exception { 92*d57664e9SAndroid Build Coastguard Worker return in.getAttributeInt(null, n); 93*d57664e9SAndroid Build Coastguard Worker } 94*d57664e9SAndroid Build Coastguard Worker } 95*d57664e9SAndroid Build Coastguard Worker 96*d57664e9SAndroid Build Coastguard Worker class IntFromStringDefault { 97*d57664e9SAndroid Build Coastguard Worker @BeforeTemplate 98*d57664e9SAndroid Build Coastguard Worker int before(TypedXmlPullParser in, String n, int d) throws Exception { 99*d57664e9SAndroid Build Coastguard Worker return XmlUtils.readIntAttribute(in, n, d); 100*d57664e9SAndroid Build Coastguard Worker } 101*d57664e9SAndroid Build Coastguard Worker 102*d57664e9SAndroid Build Coastguard Worker @AfterTemplate 103*d57664e9SAndroid Build Coastguard Worker int after(TypedXmlPullParser in, String n, int d) throws Exception { 104*d57664e9SAndroid Build Coastguard Worker return in.getAttributeInt(null, n, d); 105*d57664e9SAndroid Build Coastguard Worker } 106*d57664e9SAndroid Build Coastguard Worker } 107*d57664e9SAndroid Build Coastguard Worker 108*d57664e9SAndroid Build Coastguard Worker class IntFromStringHex { 109*d57664e9SAndroid Build Coastguard Worker @BeforeTemplate 110*d57664e9SAndroid Build Coastguard Worker int beforeParse(TypedXmlPullParser in, String n) throws Exception { 111*d57664e9SAndroid Build Coastguard Worker return Integer.parseInt(in.getAttributeValue(null, n), 16); 112*d57664e9SAndroid Build Coastguard Worker } 113*d57664e9SAndroid Build Coastguard Worker 114*d57664e9SAndroid Build Coastguard Worker @AfterTemplate 115*d57664e9SAndroid Build Coastguard Worker int after(TypedXmlPullParser in, String n) throws Exception { 116*d57664e9SAndroid Build Coastguard Worker return in.getAttributeIntHex(null, n); 117*d57664e9SAndroid Build Coastguard Worker } 118*d57664e9SAndroid Build Coastguard Worker } 119*d57664e9SAndroid Build Coastguard Worker 120*d57664e9SAndroid Build Coastguard Worker class LongToString { 121*d57664e9SAndroid Build Coastguard Worker @BeforeTemplate 122*d57664e9SAndroid Build Coastguard Worker void beforeToString(TypedXmlSerializer out, String n, long v) throws Exception { 123*d57664e9SAndroid Build Coastguard Worker out.attribute(null, n, Long.toString(v)); 124*d57664e9SAndroid Build Coastguard Worker } 125*d57664e9SAndroid Build Coastguard Worker 126*d57664e9SAndroid Build Coastguard Worker @BeforeTemplate 127*d57664e9SAndroid Build Coastguard Worker void beforeValueOf(TypedXmlSerializer out, String n, long v) throws Exception { 128*d57664e9SAndroid Build Coastguard Worker out.attribute(null, n, String.valueOf(v)); 129*d57664e9SAndroid Build Coastguard Worker } 130*d57664e9SAndroid Build Coastguard Worker 131*d57664e9SAndroid Build Coastguard Worker @BeforeTemplate 132*d57664e9SAndroid Build Coastguard Worker void beforeUtils(TypedXmlSerializer out, String n, long v) throws Exception { 133*d57664e9SAndroid Build Coastguard Worker XmlUtils.writeLongAttribute(out, n, v); 134*d57664e9SAndroid Build Coastguard Worker } 135*d57664e9SAndroid Build Coastguard Worker 136*d57664e9SAndroid Build Coastguard Worker @BeforeTemplate 137*d57664e9SAndroid Build Coastguard Worker void beforeRadix(TypedXmlSerializer out, String n, long v) throws Exception { 138*d57664e9SAndroid Build Coastguard Worker out.attribute(null, n, Long.toString(v, 10)); 139*d57664e9SAndroid Build Coastguard Worker } 140*d57664e9SAndroid Build Coastguard Worker 141*d57664e9SAndroid Build Coastguard Worker @AfterTemplate 142*d57664e9SAndroid Build Coastguard Worker void after(TypedXmlSerializer out, String n, long v) throws Exception { 143*d57664e9SAndroid Build Coastguard Worker out.attributeLong(null, n, v); 144*d57664e9SAndroid Build Coastguard Worker } 145*d57664e9SAndroid Build Coastguard Worker } 146*d57664e9SAndroid Build Coastguard Worker 147*d57664e9SAndroid Build Coastguard Worker class LongToStringHex { 148*d57664e9SAndroid Build Coastguard Worker @BeforeTemplate 149*d57664e9SAndroid Build Coastguard Worker void beforeToHexString(TypedXmlSerializer out, String n, long v) throws Exception { 150*d57664e9SAndroid Build Coastguard Worker out.attribute(null, n, Long.toHexString(v)); 151*d57664e9SAndroid Build Coastguard Worker } 152*d57664e9SAndroid Build Coastguard Worker 153*d57664e9SAndroid Build Coastguard Worker @BeforeTemplate 154*d57664e9SAndroid Build Coastguard Worker void beforeRadix(TypedXmlSerializer out, String n, long v) throws Exception { 155*d57664e9SAndroid Build Coastguard Worker out.attribute(null, n, Long.toString(v, 16)); 156*d57664e9SAndroid Build Coastguard Worker } 157*d57664e9SAndroid Build Coastguard Worker 158*d57664e9SAndroid Build Coastguard Worker @AfterTemplate 159*d57664e9SAndroid Build Coastguard Worker void after(TypedXmlSerializer out, String n, long v) throws Exception { 160*d57664e9SAndroid Build Coastguard Worker out.attributeLongHex(null, n, v); 161*d57664e9SAndroid Build Coastguard Worker } 162*d57664e9SAndroid Build Coastguard Worker } 163*d57664e9SAndroid Build Coastguard Worker 164*d57664e9SAndroid Build Coastguard Worker class LongFromString { 165*d57664e9SAndroid Build Coastguard Worker @BeforeTemplate 166*d57664e9SAndroid Build Coastguard Worker long beforeParse(TypedXmlPullParser in, String n) throws Exception { 167*d57664e9SAndroid Build Coastguard Worker return Long.parseLong(in.getAttributeValue(null, n)); 168*d57664e9SAndroid Build Coastguard Worker } 169*d57664e9SAndroid Build Coastguard Worker 170*d57664e9SAndroid Build Coastguard Worker @BeforeTemplate 171*d57664e9SAndroid Build Coastguard Worker long beforeUtils(TypedXmlPullParser in, String n) throws Exception { 172*d57664e9SAndroid Build Coastguard Worker return XmlUtils.readLongAttribute(in, n); 173*d57664e9SAndroid Build Coastguard Worker } 174*d57664e9SAndroid Build Coastguard Worker 175*d57664e9SAndroid Build Coastguard Worker @BeforeTemplate 176*d57664e9SAndroid Build Coastguard Worker long beforeRadix(TypedXmlPullParser in, String n) throws Exception { 177*d57664e9SAndroid Build Coastguard Worker return Long.parseLong(in.getAttributeValue(null, n), 10); 178*d57664e9SAndroid Build Coastguard Worker } 179*d57664e9SAndroid Build Coastguard Worker 180*d57664e9SAndroid Build Coastguard Worker @AfterTemplate 181*d57664e9SAndroid Build Coastguard Worker long after(TypedXmlPullParser in, String n) throws Exception { 182*d57664e9SAndroid Build Coastguard Worker return in.getAttributeLong(null, n); 183*d57664e9SAndroid Build Coastguard Worker } 184*d57664e9SAndroid Build Coastguard Worker } 185*d57664e9SAndroid Build Coastguard Worker 186*d57664e9SAndroid Build Coastguard Worker class LongFromStringDefault { 187*d57664e9SAndroid Build Coastguard Worker @BeforeTemplate 188*d57664e9SAndroid Build Coastguard Worker long before(TypedXmlPullParser in, String n, long d) throws Exception { 189*d57664e9SAndroid Build Coastguard Worker return XmlUtils.readLongAttribute(in, n, d); 190*d57664e9SAndroid Build Coastguard Worker } 191*d57664e9SAndroid Build Coastguard Worker 192*d57664e9SAndroid Build Coastguard Worker @AfterTemplate 193*d57664e9SAndroid Build Coastguard Worker long after(TypedXmlPullParser in, String n, long d) throws Exception { 194*d57664e9SAndroid Build Coastguard Worker return in.getAttributeLong(null, n, d); 195*d57664e9SAndroid Build Coastguard Worker } 196*d57664e9SAndroid Build Coastguard Worker } 197*d57664e9SAndroid Build Coastguard Worker 198*d57664e9SAndroid Build Coastguard Worker class LongFromStringHex { 199*d57664e9SAndroid Build Coastguard Worker @BeforeTemplate 200*d57664e9SAndroid Build Coastguard Worker long beforeParse(TypedXmlPullParser in, String n) throws Exception { 201*d57664e9SAndroid Build Coastguard Worker return Long.parseLong(in.getAttributeValue(null, n), 16); 202*d57664e9SAndroid Build Coastguard Worker } 203*d57664e9SAndroid Build Coastguard Worker 204*d57664e9SAndroid Build Coastguard Worker @AfterTemplate 205*d57664e9SAndroid Build Coastguard Worker long after(TypedXmlPullParser in, String n) throws Exception { 206*d57664e9SAndroid Build Coastguard Worker return in.getAttributeLongHex(null, n); 207*d57664e9SAndroid Build Coastguard Worker } 208*d57664e9SAndroid Build Coastguard Worker } 209*d57664e9SAndroid Build Coastguard Worker 210*d57664e9SAndroid Build Coastguard Worker class FloatToString { 211*d57664e9SAndroid Build Coastguard Worker @BeforeTemplate 212*d57664e9SAndroid Build Coastguard Worker void beforeToString(TypedXmlSerializer out, String n, float v) throws Exception { 213*d57664e9SAndroid Build Coastguard Worker out.attribute(null, n, Float.toString(v)); 214*d57664e9SAndroid Build Coastguard Worker } 215*d57664e9SAndroid Build Coastguard Worker 216*d57664e9SAndroid Build Coastguard Worker @BeforeTemplate 217*d57664e9SAndroid Build Coastguard Worker void beforeValueOf(TypedXmlSerializer out, String n, float v) throws Exception { 218*d57664e9SAndroid Build Coastguard Worker out.attribute(null, n, String.valueOf(v)); 219*d57664e9SAndroid Build Coastguard Worker } 220*d57664e9SAndroid Build Coastguard Worker 221*d57664e9SAndroid Build Coastguard Worker @BeforeTemplate 222*d57664e9SAndroid Build Coastguard Worker void beforeUtils(TypedXmlSerializer out, String n, float v) throws Exception { 223*d57664e9SAndroid Build Coastguard Worker XmlUtils.writeFloatAttribute(out, n, v); 224*d57664e9SAndroid Build Coastguard Worker } 225*d57664e9SAndroid Build Coastguard Worker 226*d57664e9SAndroid Build Coastguard Worker @AfterTemplate 227*d57664e9SAndroid Build Coastguard Worker void after(TypedXmlSerializer out, String n, float v) throws Exception { 228*d57664e9SAndroid Build Coastguard Worker out.attributeFloat(null, n, v); 229*d57664e9SAndroid Build Coastguard Worker } 230*d57664e9SAndroid Build Coastguard Worker } 231*d57664e9SAndroid Build Coastguard Worker 232*d57664e9SAndroid Build Coastguard Worker class FloatFromString { 233*d57664e9SAndroid Build Coastguard Worker @BeforeTemplate 234*d57664e9SAndroid Build Coastguard Worker float beforeParse(TypedXmlPullParser in, String n) throws Exception { 235*d57664e9SAndroid Build Coastguard Worker return Float.parseFloat(in.getAttributeValue(null, n)); 236*d57664e9SAndroid Build Coastguard Worker } 237*d57664e9SAndroid Build Coastguard Worker 238*d57664e9SAndroid Build Coastguard Worker @BeforeTemplate 239*d57664e9SAndroid Build Coastguard Worker float beforeUtils(TypedXmlPullParser in, String n) throws Exception { 240*d57664e9SAndroid Build Coastguard Worker return XmlUtils.readFloatAttribute(in, n); 241*d57664e9SAndroid Build Coastguard Worker } 242*d57664e9SAndroid Build Coastguard Worker 243*d57664e9SAndroid Build Coastguard Worker @AfterTemplate 244*d57664e9SAndroid Build Coastguard Worker float after(TypedXmlPullParser in, String n) throws Exception { 245*d57664e9SAndroid Build Coastguard Worker return in.getAttributeFloat(null, n); 246*d57664e9SAndroid Build Coastguard Worker } 247*d57664e9SAndroid Build Coastguard Worker } 248*d57664e9SAndroid Build Coastguard Worker 249*d57664e9SAndroid Build Coastguard Worker class DoubleToString { 250*d57664e9SAndroid Build Coastguard Worker @BeforeTemplate 251*d57664e9SAndroid Build Coastguard Worker void beforeToString(TypedXmlSerializer out, String n, double v) throws Exception { 252*d57664e9SAndroid Build Coastguard Worker out.attribute(null, n, Double.toString(v)); 253*d57664e9SAndroid Build Coastguard Worker } 254*d57664e9SAndroid Build Coastguard Worker 255*d57664e9SAndroid Build Coastguard Worker @BeforeTemplate 256*d57664e9SAndroid Build Coastguard Worker void beforeValueOf(TypedXmlSerializer out, String n, double v) throws Exception { 257*d57664e9SAndroid Build Coastguard Worker out.attribute(null, n, String.valueOf(v)); 258*d57664e9SAndroid Build Coastguard Worker } 259*d57664e9SAndroid Build Coastguard Worker 260*d57664e9SAndroid Build Coastguard Worker @AfterTemplate 261*d57664e9SAndroid Build Coastguard Worker void after(TypedXmlSerializer out, String n, double v) throws Exception { 262*d57664e9SAndroid Build Coastguard Worker out.attributeDouble(null, n, v); 263*d57664e9SAndroid Build Coastguard Worker } 264*d57664e9SAndroid Build Coastguard Worker } 265*d57664e9SAndroid Build Coastguard Worker 266*d57664e9SAndroid Build Coastguard Worker class DoubleFromString { 267*d57664e9SAndroid Build Coastguard Worker @BeforeTemplate 268*d57664e9SAndroid Build Coastguard Worker double beforeParse(TypedXmlPullParser in, String n) throws Exception { 269*d57664e9SAndroid Build Coastguard Worker return Double.parseDouble(in.getAttributeValue(null, n)); 270*d57664e9SAndroid Build Coastguard Worker } 271*d57664e9SAndroid Build Coastguard Worker 272*d57664e9SAndroid Build Coastguard Worker @AfterTemplate 273*d57664e9SAndroid Build Coastguard Worker double after(TypedXmlPullParser in, String n) throws Exception { 274*d57664e9SAndroid Build Coastguard Worker return in.getAttributeDouble(null, n); 275*d57664e9SAndroid Build Coastguard Worker } 276*d57664e9SAndroid Build Coastguard Worker } 277*d57664e9SAndroid Build Coastguard Worker 278*d57664e9SAndroid Build Coastguard Worker class BooleanToString { 279*d57664e9SAndroid Build Coastguard Worker @BeforeTemplate 280*d57664e9SAndroid Build Coastguard Worker void beforeToString(TypedXmlSerializer out, String n, boolean v) throws Exception { 281*d57664e9SAndroid Build Coastguard Worker out.attribute(null, n, Boolean.toString(v)); 282*d57664e9SAndroid Build Coastguard Worker } 283*d57664e9SAndroid Build Coastguard Worker 284*d57664e9SAndroid Build Coastguard Worker @BeforeTemplate 285*d57664e9SAndroid Build Coastguard Worker void beforeValueOf(TypedXmlSerializer out, String n, boolean v) throws Exception { 286*d57664e9SAndroid Build Coastguard Worker out.attribute(null, n, String.valueOf(v)); 287*d57664e9SAndroid Build Coastguard Worker } 288*d57664e9SAndroid Build Coastguard Worker 289*d57664e9SAndroid Build Coastguard Worker @AfterTemplate 290*d57664e9SAndroid Build Coastguard Worker void after(TypedXmlSerializer out, String n, boolean v) throws Exception { 291*d57664e9SAndroid Build Coastguard Worker out.attributeBoolean(null, n, v); 292*d57664e9SAndroid Build Coastguard Worker } 293*d57664e9SAndroid Build Coastguard Worker } 294*d57664e9SAndroid Build Coastguard Worker 295*d57664e9SAndroid Build Coastguard Worker class BooleanToStringTrue { 296*d57664e9SAndroid Build Coastguard Worker @BeforeTemplate 297*d57664e9SAndroid Build Coastguard Worker void before(TypedXmlSerializer out, String n) throws Exception { 298*d57664e9SAndroid Build Coastguard Worker out.attribute(null, n, "true"); 299*d57664e9SAndroid Build Coastguard Worker } 300*d57664e9SAndroid Build Coastguard Worker 301*d57664e9SAndroid Build Coastguard Worker @AfterTemplate 302*d57664e9SAndroid Build Coastguard Worker void after(TypedXmlSerializer out, String n) throws Exception { 303*d57664e9SAndroid Build Coastguard Worker out.attributeBoolean(null, n, true); 304*d57664e9SAndroid Build Coastguard Worker } 305*d57664e9SAndroid Build Coastguard Worker } 306*d57664e9SAndroid Build Coastguard Worker 307*d57664e9SAndroid Build Coastguard Worker class BooleanToStringFalse { 308*d57664e9SAndroid Build Coastguard Worker @BeforeTemplate 309*d57664e9SAndroid Build Coastguard Worker void before(TypedXmlSerializer out, String n) throws Exception { 310*d57664e9SAndroid Build Coastguard Worker out.attribute(null, n, "false"); 311*d57664e9SAndroid Build Coastguard Worker } 312*d57664e9SAndroid Build Coastguard Worker 313*d57664e9SAndroid Build Coastguard Worker @AfterTemplate 314*d57664e9SAndroid Build Coastguard Worker void after(TypedXmlSerializer out, String n) throws Exception { 315*d57664e9SAndroid Build Coastguard Worker out.attributeBoolean(null, n, false); 316*d57664e9SAndroid Build Coastguard Worker } 317*d57664e9SAndroid Build Coastguard Worker } 318*d57664e9SAndroid Build Coastguard Worker 319*d57664e9SAndroid Build Coastguard Worker class BooleanFromString { 320*d57664e9SAndroid Build Coastguard Worker @BeforeTemplate 321*d57664e9SAndroid Build Coastguard Worker boolean beforeParse(TypedXmlPullParser in, String n) throws Exception { 322*d57664e9SAndroid Build Coastguard Worker return Boolean.parseBoolean(in.getAttributeValue(null, n)); 323*d57664e9SAndroid Build Coastguard Worker } 324*d57664e9SAndroid Build Coastguard Worker 325*d57664e9SAndroid Build Coastguard Worker @BeforeTemplate 326*d57664e9SAndroid Build Coastguard Worker boolean beforeUtils(TypedXmlPullParser in, String n) throws Exception { 327*d57664e9SAndroid Build Coastguard Worker return XmlUtils.readBooleanAttribute(in, n); 328*d57664e9SAndroid Build Coastguard Worker } 329*d57664e9SAndroid Build Coastguard Worker 330*d57664e9SAndroid Build Coastguard Worker @AfterTemplate 331*d57664e9SAndroid Build Coastguard Worker boolean after(TypedXmlPullParser in, String n) throws Exception { 332*d57664e9SAndroid Build Coastguard Worker return in.getAttributeBoolean(null, n, false); 333*d57664e9SAndroid Build Coastguard Worker } 334*d57664e9SAndroid Build Coastguard Worker } 335*d57664e9SAndroid Build Coastguard Worker 336*d57664e9SAndroid Build Coastguard Worker class BooleanFromStringDefault { 337*d57664e9SAndroid Build Coastguard Worker @BeforeTemplate 338*d57664e9SAndroid Build Coastguard Worker boolean before(TypedXmlPullParser in, String n, boolean d) throws Exception { 339*d57664e9SAndroid Build Coastguard Worker return XmlUtils.readBooleanAttribute(in, n, d); 340*d57664e9SAndroid Build Coastguard Worker } 341*d57664e9SAndroid Build Coastguard Worker 342*d57664e9SAndroid Build Coastguard Worker @AfterTemplate 343*d57664e9SAndroid Build Coastguard Worker boolean after(TypedXmlPullParser in, String n, boolean d) throws Exception { 344*d57664e9SAndroid Build Coastguard Worker return in.getAttributeBoolean(null, n, d); 345*d57664e9SAndroid Build Coastguard Worker } 346*d57664e9SAndroid Build Coastguard Worker } 347*d57664e9SAndroid Build Coastguard Worker } 348