diff options
author | Jesse Wilson <jessewilson@google.com> | 2012-01-03 16:47:14 -0500 |
---|---|---|
committer | Jesse Wilson <jessewilson@google.com> | 2012-01-03 16:47:14 -0500 |
commit | 90699b97998f1582a921202fb909f17f9718d177 (patch) | |
tree | fb8a815ddd4d74f56260221a10a04974cdc75a35 | |
parent | 579d7739c53a2707ad711a2d2cae46d7d782f061 (diff) | |
download | dexmaker-90699b97998f1582a921202fb909f17f9718d177.tar.gz |
Don't require use of dx-implementation detail class AccessFlags in the public API; just use java.lang.reflect.Modifier.
-rw-r--r-- | src/main/java/com/google/dexmaker/DexGenerator.java | 25 | ||||
-rw-r--r-- | src/main/java/com/google/dexmaker/ProxyBuilder.java | 22 | ||||
-rw-r--r-- | src/test/java/com/google/dexmaker/DexGeneratorTest.java | 104 |
3 files changed, 76 insertions, 75 deletions
diff --git a/src/main/java/com/google/dexmaker/DexGenerator.java b/src/main/java/com/google/dexmaker/DexGenerator.java index 2eebd42..05bcb0f 100644 --- a/src/main/java/com/google/dexmaker/DexGenerator.java +++ b/src/main/java/com/google/dexmaker/DexGenerator.java @@ -16,10 +16,6 @@ package com.google.dexmaker; -import static com.android.dx.rop.code.AccessFlags.ACC_CONSTRUCTOR; -import static com.android.dx.rop.code.AccessFlags.ACC_PRIVATE; -import static com.android.dx.rop.code.AccessFlags.ACC_STATIC; - import com.android.dx.dex.DexFormat; import com.android.dx.dex.DexOptions; import com.android.dx.dex.code.DalvCode; @@ -30,16 +26,18 @@ import com.android.dx.dex.file.DexFile; import com.android.dx.dex.file.EncodedField; import com.android.dx.dex.file.EncodedMethod; import com.android.dx.rop.code.AccessFlags; +import static com.android.dx.rop.code.AccessFlags.ACC_CONSTRUCTOR; import com.android.dx.rop.code.LocalVariableInfo; import com.android.dx.rop.code.RopMethod; import com.android.dx.rop.cst.CstString; import com.android.dx.rop.cst.CstType; import com.android.dx.rop.type.StdTypeList; - import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.lang.reflect.InvocationTargetException; +import static java.lang.reflect.Modifier.PRIVATE; +import static java.lang.reflect.Modifier.STATIC; import java.util.LinkedHashMap; import java.util.Map; import java.util.jar.JarEntry; @@ -61,6 +59,8 @@ public final class DexGenerator { return result; } + // TODO: describe the legal flags without referring to a non-public API AccessFlags + /** * @param flags any flags masked by {@link com.android.dx.rop.code.AccessFlags#CLASS_FLAGS}. */ @@ -80,6 +80,13 @@ public final class DexGenerator { /** * @param flags any flags masked by {@link com.android.dx.rop.code.AccessFlags#METHOD_FLAGS}. */ + public Code declareConstructor(MethodId<?, ?> method, int flags) { + return declare(method, flags | ACC_CONSTRUCTOR); + } + + /** + * @param flags any flags masked by {@link com.android.dx.rop.code.AccessFlags#METHOD_FLAGS}. + */ public Code declare(MethodId<?, ?> method, int flags) { TypeDeclaration typeDeclaration = getTypeDeclaration(method.declaringType); if (typeDeclaration.methods.containsKey(method)) { @@ -234,7 +241,7 @@ public final class DexGenerator { private final Object staticValue; FieldDeclaration(FieldId<?, ?> fieldId, int accessFlags, Object staticValue) { - if ((accessFlags & (AccessFlags.ACC_STATIC)) == 0 && staticValue != null) { + if ((accessFlags & STATIC) == 0 && staticValue != null) { throw new IllegalArgumentException("instance fields may not have a value"); } this.fieldId = fieldId; @@ -247,7 +254,7 @@ public final class DexGenerator { } public boolean isStatic() { - return (accessFlags & (AccessFlags.ACC_STATIC)) != 0; + return (accessFlags & STATIC) != 0; } } @@ -263,11 +270,11 @@ public final class DexGenerator { } boolean isStatic() { - return (flags & ACC_STATIC) != 0; + return (flags & STATIC) != 0; } boolean isDirect() { - return (flags & (ACC_STATIC | ACC_PRIVATE | ACC_CONSTRUCTOR)) != 0; + return (flags & (STATIC | PRIVATE | ACC_CONSTRUCTOR)) != 0; } EncodedMethod toEncodedMethod(DexOptions dexOptions) { diff --git a/src/main/java/com/google/dexmaker/ProxyBuilder.java b/src/main/java/com/google/dexmaker/ProxyBuilder.java index 3b8e847..ed77d7c 100644 --- a/src/main/java/com/google/dexmaker/ProxyBuilder.java +++ b/src/main/java/com/google/dexmaker/ProxyBuilder.java @@ -16,11 +16,6 @@ package com.google.dexmaker; -import static com.android.dx.rop.code.AccessFlags.ACC_CONSTRUCTOR; -import static com.android.dx.rop.code.AccessFlags.ACC_PRIVATE; -import static com.android.dx.rop.code.AccessFlags.ACC_PUBLIC; -import static com.android.dx.rop.code.AccessFlags.ACC_STATIC; - import java.io.File; import java.io.IOException; import java.lang.reflect.Constructor; @@ -29,6 +24,9 @@ import java.lang.reflect.InvocationHandler; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.lang.reflect.Modifier; +import static java.lang.reflect.Modifier.PRIVATE; +import static java.lang.reflect.Modifier.PUBLIC; +import static java.lang.reflect.Modifier.STATIC; import java.lang.reflect.UndeclaredThrowableException; import java.util.Arrays; import java.util.HashMap; @@ -177,7 +175,7 @@ public final class ProxyBuilder<T> { generateConstructorsAndFields(generator, generatedType, superType, baseClass); Method[] methodsToProxy = getMethodsToProxy(baseClass); generateCodeForAllMethods(generator, generatedType, methodsToProxy, superType); - generator.declare(generatedType, generatedName + ".generated", ACC_PUBLIC, superType); + generator.declare(generatedType, generatedName + ".generated", PUBLIC, superType); ClassLoader classLoader; try { classLoader = generator.load(parentClassLoader, dexCache, dexCache); @@ -353,7 +351,7 @@ public final class ProxyBuilder<T> { Type<?> resultType = Type.get(returnType); MethodId<T, ?> superMethod = superclassType.getMethod(resultType, name, argTypes); MethodId<?, ?> methodId = generatedType.getMethod(resultType, name, argTypes); - Code code = generator.declare(methodId, ACC_PUBLIC); + Code code = generator.declare(methodId, PUBLIC); Local<G> localThis = code.getThis(generatedType); Local<InvocationHandler> localHandler = code.newLocal(handlerType); Local<Object> invokeResult = code.newLocal(Type.OBJECT); @@ -425,7 +423,7 @@ public final class ProxyBuilder<T> { String superName = "super_" + name; MethodId<G, ?> callsSuperMethod = generatedType.getMethod( resultType, superName, argTypes); - Code superCode = generator.declare(callsSuperMethod, ACC_PUBLIC); + Code superCode = generator.declare(callsSuperMethod, PUBLIC); Local<G> superThis = superCode.getThis(generatedType); Local<?>[] superArgs = new Local<?>[argClasses.length]; for (int i = 0; i < superArgs.length; ++i) { @@ -479,17 +477,17 @@ public final class ProxyBuilder<T> { Type<Method[]> methodArrayType = Type.get(Method[].class); FieldId<G, InvocationHandler> handlerField = generatedType.getField( handlerType, FIELD_NAME_HANDLER); - generator.declare(handlerField, ACC_PRIVATE, null); + generator.declare(handlerField, PRIVATE, null); FieldId<G, Method[]> allMethods = generatedType.getField( methodArrayType, FIELD_NAME_METHODS); - generator.declare(allMethods, ACC_PRIVATE | ACC_STATIC, null); + generator.declare(allMethods, PRIVATE | STATIC, null); for (Constructor<T> constructor : getConstructorsToOverwrite(superClass)) { if (constructor.getModifiers() == Modifier.FINAL) { continue; } Type<?>[] types = classArrayToTypeArray(constructor.getParameterTypes()); MethodId<?, ?> method = generatedType.getConstructor(types); - Code constructorCode = generator.declare(method, ACC_PUBLIC | ACC_CONSTRUCTOR); + Code constructorCode = generator.declareConstructor(method, PUBLIC); Local<G> thisRef = constructorCode.getThis(generatedType); Local<?>[] params = new Local[types.length]; for (int i = 0; i < params.length; ++i) { @@ -520,7 +518,7 @@ public final class ProxyBuilder<T> { // Skip final methods, we can't override them. continue; } - if ((method.getModifiers() & Modifier.STATIC) != 0) { + if ((method.getModifiers() & STATIC) != 0) { // Skip static methods, overriding them has no effect. continue; } diff --git a/src/test/java/com/google/dexmaker/DexGeneratorTest.java b/src/test/java/com/google/dexmaker/DexGeneratorTest.java index 5b8f22f..8483e78 100644 --- a/src/test/java/com/google/dexmaker/DexGeneratorTest.java +++ b/src/test/java/com/google/dexmaker/DexGeneratorTest.java @@ -16,23 +16,20 @@ package com.google.dexmaker; -import static com.android.dx.rop.code.AccessFlags.ACC_CONSTRUCTOR; -import static com.android.dx.rop.code.AccessFlags.ACC_FINAL; -import static com.android.dx.rop.code.AccessFlags.ACC_PRIVATE; -import static com.android.dx.rop.code.AccessFlags.ACC_PROTECTED; -import static com.android.dx.rop.code.AccessFlags.ACC_PUBLIC; -import static com.android.dx.rop.code.AccessFlags.ACC_STATIC; - -import junit.framework.TestCase; - import java.io.File; import java.io.IOException; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; +import static java.lang.reflect.Modifier.FINAL; +import static java.lang.reflect.Modifier.PRIVATE; +import static java.lang.reflect.Modifier.PROTECTED; +import static java.lang.reflect.Modifier.PUBLIC; +import static java.lang.reflect.Modifier.STATIC; import java.util.Arrays; import java.util.List; import java.util.concurrent.Callable; +import junit.framework.TestCase; /** * This generates a class named 'Generated' with one or more generated methods @@ -64,7 +61,7 @@ public final class DexGeneratorTest extends TestCase { */ private void reset() { generator = new DexGenerator(); - generator.declare(GENERATED, "Generated.java", ACC_PUBLIC, Type.OBJECT); + generator.declare(GENERATED, "Generated.java", PUBLIC, Type.OBJECT); } public void testNewInstance() throws Exception { @@ -77,7 +74,7 @@ public final class DexGeneratorTest extends TestCase { Type<Constructable> constructable = Type.get(Constructable.class); MethodId<?, Constructable> methodId = GENERATED.getMethod( constructable, "call", Type.LONG, Type.BOOLEAN); - Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC); + Code code = generator.declare(methodId, PUBLIC | STATIC); Local<Long> localA = code.getParameter(0, Type.LONG); Local<Boolean> localB = code.getParameter(1, Type.BOOLEAN); MethodId<Constructable, Void> constructor @@ -106,7 +103,7 @@ public final class DexGeneratorTest extends TestCase { * } */ MethodId<?, Void> methodId = GENERATED.getMethod(Type.VOID, "call"); - Code code = generator.declare(methodId, ACC_PUBLIC); + Code code = generator.declare(methodId, PUBLIC); code.returnVoid(); addDefaultConstructor(); @@ -125,7 +122,7 @@ public final class DexGeneratorTest extends TestCase { * } */ MethodId<?, Integer> methodId = GENERATED.getMethod(Type.INT, "call", Type.INT); - Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC); + Code code = generator.declare(methodId, PUBLIC | STATIC); Local<Integer> localA = code.getParameter(0, Type.INT); Local<Integer> localResult = code.newLocal(Type.INT); MethodId<?, Integer> staticMethod @@ -144,7 +141,7 @@ public final class DexGeneratorTest extends TestCase { */ MethodId<?, Void> methodId = GENERATED.getMethod(Type.VOID, "call", Type.INT); Type<Method> methodType = Type.get(Method.class); - Code code = generator.declare(methodId, ACC_PUBLIC); + Code code = generator.declare(methodId, PUBLIC); Local<Method> localMethod = code.newLocal(methodType); code.loadConstant(localMethod, null); code.returnVoid(); @@ -170,7 +167,7 @@ public final class DexGeneratorTest extends TestCase { * } */ MethodId<?, Integer> methodId = GENERATED.getMethod(Type.INT, "call", TEST_TYPE, Type.INT); - Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC); + Code code = generator.declare(methodId, PUBLIC | STATIC); Local<DexGeneratorTest> localInstance = code.getParameter(0, TEST_TYPE); Local<Integer> localA = code.getParameter(1, Type.INT); Local<Integer> localResult = code.newLocal(Type.INT); @@ -201,14 +198,14 @@ public final class DexGeneratorTest extends TestCase { */ Type<G> generated = Type.get("LGenerated;"); MethodId<G, Integer> directMethodId = generated.getMethod(Type.INT, "directMethod"); - Code directCode = generator.declare(directMethodId, ACC_PRIVATE); + Code directCode = generator.declare(directMethodId, PRIVATE); directCode.getThis(generated); // 'this' is unused Local<Integer> localA = directCode.newLocal(Type.INT); directCode.loadConstant(localA, 5); directCode.returnValue(localA); MethodId<G, Integer> methodId = generated.getMethod(Type.INT, "call", generated); - Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC); + Code code = generator.declare(methodId, PUBLIC | STATIC); Local<Integer> localB = code.newLocal(Type.INT); Local<G> localG = code.getParameter(0, generated); code.invokeDirect(directMethodId, localB, localG); @@ -235,14 +232,14 @@ public final class DexGeneratorTest extends TestCase { Type<G> generated = Type.get("LGenerated;"); MethodId<Object, Integer> objectHashCode = Type.OBJECT.getMethod(Type.INT, "hashCode"); Code superHashCode = generator.declare( - GENERATED.getMethod(Type.INT, "superHashCode"), ACC_PUBLIC); + GENERATED.getMethod(Type.INT, "superHashCode"), PUBLIC); Local<Integer> localResult = superHashCode.newLocal(Type.INT); Local<G> localThis = superHashCode.getThis(generated); superHashCode.invokeSuper(objectHashCode, localResult, localThis); superHashCode.returnValue(localResult); Code generatedHashCode = generator.declare( - GENERATED.getMethod(Type.INT, "hashCode"), ACC_PUBLIC); + GENERATED.getMethod(Type.INT, "hashCode"), PUBLIC); Local<Integer> localZero = generatedHashCode.newLocal(Type.INT); generatedHashCode.loadConstant(localZero, 0); generatedHashCode.returnValue(localZero); @@ -268,7 +265,7 @@ public final class DexGeneratorTest extends TestCase { * } */ MethodId<?, Object> methodId = GENERATED.getMethod(Type.OBJECT, "call", CALLABLE); - Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC); + Code code = generator.declare(methodId, PUBLIC | STATIC); Local<Callable> localC = code.getParameter(0, CALLABLE); Local<Object> localResult = code.newLocal(Type.OBJECT); code.invokeInterface(CALL, localResult, localC); @@ -288,7 +285,7 @@ public final class DexGeneratorTest extends TestCase { Type.OBJECT, }; MethodId<?, Integer> methodId = GENERATED.getMethod(Type.INT, "call", argTypes); - Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC); + Code code = generator.declare(methodId, PUBLIC | STATIC); try { code.getParameter(0, Type.INT); } catch (IllegalArgumentException e) { @@ -308,7 +305,7 @@ public final class DexGeneratorTest extends TestCase { * } */ MethodId<?, Boolean> methodId = GENERATED.getMethod(Type.BOOLEAN, "call", TEST_TYPE); - Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC); + Code code = generator.declare(methodId, PUBLIC | STATIC); Local<DexGeneratorTest> localTest = code.getParameter(0, TEST_TYPE); Type<CharSequence> charSequenceType = Type.get(CharSequence.class); MethodId<Object, String> objectToString = Type.OBJECT.getMethod(Type.STRING, "toString"); @@ -325,7 +322,7 @@ public final class DexGeneratorTest extends TestCase { public void testReturnTypeMismatch() { MethodId<?, String> methodId = GENERATED.getMethod(Type.STRING, "call"); - Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC); + Code code = generator.declare(methodId, PUBLIC | STATIC); try { code.returnValue(code.newLocal(Type.BOOLEAN)); fail(); @@ -345,8 +342,8 @@ public final class DexGeneratorTest extends TestCase { * protected static Object b; * } */ - generator.declare(GENERATED.getField(Type.INT, "a"), ACC_PUBLIC | ACC_STATIC, 3); - generator.declare(GENERATED.getField(Type.OBJECT, "b"), ACC_PROTECTED | ACC_STATIC, null); + generator.declare(GENERATED.getField(Type.INT, "a"), PUBLIC | STATIC, 3); + generator.declare(GENERATED.getField(Type.OBJECT, "b"), PROTECTED | STATIC, null); Class<?> generatedClass = loadAndGenerate(); Field a = generatedClass.getField("a"); @@ -366,8 +363,8 @@ public final class DexGeneratorTest extends TestCase { * protected Object b; * } */ - generator.declare(GENERATED.getField(Type.INT, "a"), ACC_PUBLIC, null); - generator.declare(GENERATED.getField(Type.OBJECT, "b"), ACC_PROTECTED, null); + generator.declare(GENERATED.getField(Type.INT, "a"), PUBLIC, null); + generator.declare(GENERATED.getField(Type.OBJECT, "b"), PROTECTED, null); addDefaultConstructor(); @@ -399,9 +396,9 @@ public final class DexGeneratorTest extends TestCase { */ Type<G> generated = Type.get("LGenerated;"); FieldId<G, Integer> fieldId = generated.getField(Type.INT, "a"); - generator.declare(fieldId, ACC_PUBLIC | ACC_FINAL, null); + generator.declare(fieldId, PUBLIC | FINAL, null); MethodId<?, Void> constructor = GENERATED.getConstructor(Type.INT); - Code code = generator.declare(constructor, ACC_PUBLIC | ACC_CONSTRUCTOR); + Code code = generator.declareConstructor(constructor, PUBLIC); Local<G> thisRef = code.getThis(generated); Local<Integer> parameter = code.getParameter(0, Type.INT); code.invokeDirect(Type.OBJECT.getConstructor(), null, thisRef); @@ -437,8 +434,7 @@ public final class DexGeneratorTest extends TestCase { */ reset(); Type<T> returnType = Type.get(javaType); - Code code = generator.declare(GENERATED.getMethod(returnType, "call"), - ACC_PUBLIC | ACC_STATIC); + Code code = generator.declare(GENERATED.getMethod(returnType, "call"), PUBLIC | STATIC); if (value != null) { Local<T> i = code.newLocal(returnType); code.loadConstant(i, value); @@ -497,7 +493,7 @@ public final class DexGeneratorTest extends TestCase { reset(); MethodId<?, Boolean> methodId = GENERATED.getMethod( Type.BOOLEAN, "call", Type.INT, Type.INT); - Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC); + Code code = generator.declare(methodId, PUBLIC | STATIC); Local<Integer> localA = code.getParameter(0, Type.INT); Local<Integer> localB = code.getParameter(1, Type.INT); Local<Boolean> result = code.newLocal(Type.get(boolean.class)); @@ -632,7 +628,7 @@ public final class DexGeneratorTest extends TestCase { Type<?> sourceType = Type.get(source); Type<?> targetType = Type.get(target); MethodId<?, ?> methodId = GENERATED.getMethod(targetType, "call", sourceType); - Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC); + Code code = generator.declare(methodId, PUBLIC | STATIC); Local<?> localSource = code.getParameter(0, sourceType); Local<?> localCasted = code.newLocal(targetType); code.numericCast(localSource, localCasted); @@ -662,7 +658,7 @@ public final class DexGeneratorTest extends TestCase { reset(); Type<T> valueType = Type.get(source); MethodId<?, T> methodId = GENERATED.getMethod(valueType, "call", valueType); - Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC); + Code code = generator.declare(methodId, PUBLIC | STATIC); Local<T> localSource = code.getParameter(0, valueType); code.not(localSource, localSource); code.returnValue(localSource); @@ -703,7 +699,7 @@ public final class DexGeneratorTest extends TestCase { reset(); Type<T> valueType = Type.get(source); MethodId<?, T> methodId = GENERATED.getMethod(valueType, "call", valueType); - Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC); + Code code = generator.declare(methodId, PUBLIC | STATIC); Local<T> localSource = code.getParameter(0, valueType); code.negate(localSource, localSource); code.returnValue(localSource); @@ -858,7 +854,7 @@ public final class DexGeneratorTest extends TestCase { reset(); Type<T> valueType = Type.get(valueClass); MethodId<?, T> methodId = GENERATED.getMethod(valueType, "call", valueType, valueType); - Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC); + Code code = generator.declare(methodId, PUBLIC | STATIC); Local<T> localA = code.getParameter(0, valueType); Local<T> localB = code.getParameter(1, valueType); Local<T> localResult = code.newLocal(valueType); @@ -942,7 +938,7 @@ public final class DexGeneratorTest extends TestCase { Type<Instance> objectType = Type.get(Instance.class); FieldId<Instance, V> fieldId = objectType.getField(valueType, fieldName); MethodId<?, V> methodId = GENERATED.getMethod(valueType, "call", objectType, valueType); - Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC); + Code code = generator.declare(methodId, PUBLIC | STATIC); Local<Instance> localInstance = code.getParameter(0, objectType); Local<V> localNewValue = code.getParameter(1, valueType); Local<V> localOldValue = code.newLocal(valueType); @@ -1025,7 +1021,7 @@ public final class DexGeneratorTest extends TestCase { Type<Static> objectType = Type.get(Static.class); FieldId<Static, V> fieldId = objectType.getField(valueType, fieldName); MethodId<?, V> methodId = GENERATED.getMethod(valueType, "call", valueType); - Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC); + Code code = generator.declare(methodId, PUBLIC | STATIC); Local<V> localNewValue = code.getParameter(0, valueType); Local<V> localOldValue = code.newLocal(valueType); code.sget(fieldId, localOldValue); @@ -1041,7 +1037,7 @@ public final class DexGeneratorTest extends TestCase { * } */ MethodId<?, String> methodId = GENERATED.getMethod(Type.STRING, "call", Type.OBJECT); - Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC); + Code code = generator.declare(methodId, PUBLIC | STATIC); Local<Object> localObject = code.getParameter(0, Type.OBJECT); Local<String> localString = code.newLocal(Type.STRING); code.typeCast(localObject, localString); @@ -1066,7 +1062,7 @@ public final class DexGeneratorTest extends TestCase { * } */ MethodId<?, Boolean> methodId = GENERATED.getMethod(Type.BOOLEAN, "call", Type.OBJECT); - Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC); + Code code = generator.declare(methodId, PUBLIC | STATIC); Local<Object> localObject = code.getParameter(0, Type.OBJECT); Local<Boolean> localResult = code.newLocal(Type.BOOLEAN); code.instanceOfType(localResult, localObject, Type.STRING); @@ -1092,7 +1088,7 @@ public final class DexGeneratorTest extends TestCase { * } */ MethodId<?, Integer> methodId = GENERATED.getMethod(Type.INT, "call", Type.INT); - Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC); + Code code = generator.declare(methodId, PUBLIC | STATIC); Local<Integer> localCount = code.getParameter(0, Type.INT); Local<Integer> localResult = code.newLocal(Type.INT); Local<Integer> localI = code.newLocal(Type.INT); @@ -1137,7 +1133,7 @@ public final class DexGeneratorTest extends TestCase { * } */ MethodId<?, Integer> methodId = GENERATED.getMethod(Type.INT, "call", Type.INT); - Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC); + Code code = generator.declare(methodId, PUBLIC | STATIC); Local<Integer> localMax = code.getParameter(0, Type.INT); Local<Integer> localResult = code.newLocal(Type.INT); Local<Integer> local2 = code.newLocal(Type.INT); @@ -1182,7 +1178,7 @@ public final class DexGeneratorTest extends TestCase { */ MethodId<?, Integer> methodId = GENERATED.getMethod( Type.INT, "call", Type.INT, Type.INT, Type.INT); - Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC); + Code code = generator.declare(methodId, PUBLIC | STATIC); Local<Integer> localA = code.getParameter(0, Type.INT); Local<Integer> localB = code.getParameter(1, Type.INT); Local<Integer> localC = code.getParameter(2, Type.INT); @@ -1225,7 +1221,7 @@ public final class DexGeneratorTest extends TestCase { * } */ MethodId<?, Integer> methodId = GENERATED.getMethod(Type.INT, "call", Type.INT); - Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC); + Code code = generator.declare(methodId, PUBLIC | STATIC); Local<Integer> localA = code.getParameter(0, Type.INT); Local<Integer> local1 = code.newLocal(Type.INT); Local<Integer> local2 = code.newLocal(Type.INT); @@ -1270,7 +1266,7 @@ public final class DexGeneratorTest extends TestCase { * } */ MethodId<?, String> methodId = GENERATED.getMethod(Type.STRING, "call", Type.INT); - Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC); + Code code = generator.declare(methodId, PUBLIC | STATIC); Local<Integer> localI = code.getParameter(0, Type.INT); Local<String> result = code.newLocal(Type.STRING); Label catchIae = code.newLabel(); @@ -1346,7 +1342,7 @@ public final class DexGeneratorTest extends TestCase { */ MethodId<?, String> methodId = GENERATED.getMethod( Type.STRING, "call", Type.INT, Type.INT, Type.INT); - Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC); + Code code = generator.declare(methodId, PUBLIC | STATIC); Local<Integer> localA = code.getParameter(0, Type.INT); Local<Integer> localB = code.getParameter(1, Type.INT); Local<Integer> localC = code.getParameter(2, Type.INT); @@ -1392,7 +1388,7 @@ public final class DexGeneratorTest extends TestCase { * } */ MethodId<?, Void> methodId = GENERATED.getMethod(Type.VOID, "call"); - Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC); + Code code = generator.declare(methodId, PUBLIC | STATIC); Type<IllegalStateException> iseType = Type.get(IllegalStateException.class); MethodId<IllegalStateException, Void> iseConstructor = iseType.getConstructor(); Local<IllegalStateException> localIse = code.newLocal(iseType); @@ -1413,7 +1409,7 @@ public final class DexGeneratorTest extends TestCase { */ MethodId<?, Void> methodId = GENERATED.getMethod( Type.VOID, "call", Type.INT, Type.LONG, Type.LONG); - Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC); + Code code = generator.declare(methodId, PUBLIC | STATIC); code.returnVoid(); getMethod().invoke(null, 1, 2, 3); } @@ -1470,7 +1466,7 @@ public final class DexGeneratorTest extends TestCase { */ reset(); MethodId<?, Integer> methodId = GENERATED.getMethod(Type.INT, "call", valueType, valueType); - Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC); + Code code = generator.declare(methodId, PUBLIC | STATIC); Local<T> localA = code.getParameter(0, valueType); Local<T> localB = code.getParameter(1, valueType); Local<Integer> localResult = code.newLocal(Type.INT); @@ -1487,7 +1483,7 @@ public final class DexGeneratorTest extends TestCase { * } */ MethodId<?, Integer> methodId = GENERATED.getMethod(Type.INT, "call", Type.LONG, Type.LONG); - Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC); + Code code = generator.declare(methodId, PUBLIC | STATIC); Local<Long> localA = code.getParameter(0, Type.LONG); Local<Long> localB = code.getParameter(1, Type.LONG); Local<Integer> localResult = code.newLocal(Type.INT); @@ -1537,7 +1533,7 @@ public final class DexGeneratorTest extends TestCase { */ reset(); MethodId<?, Integer> methodId = GENERATED.getMethod(Type.INT, "call", valueType); - Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC); + Code code = generator.declare(methodId, PUBLIC | STATIC); Local<T> localArray = code.getParameter(0, valueType); Local<Integer> localResult = code.newLocal(Type.INT); code.arrayLength(localArray, localResult); @@ -1579,7 +1575,7 @@ public final class DexGeneratorTest extends TestCase { */ reset(); MethodId<?, T> methodId = GENERATED.getMethod(valueType, "call", Type.INT); - Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC); + Code code = generator.declare(methodId, PUBLIC | STATIC); Local<Integer> localLength = code.getParameter(0, Type.INT); Local<T> localResult = code.newLocal(valueType); code.newArray(localLength, localResult); @@ -1626,7 +1622,7 @@ public final class DexGeneratorTest extends TestCase { reset(); MethodId<?, T> methodId = GENERATED.getMethod( singleType, "call", arrayType, Type.INT, singleType); - Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC); + Code code = generator.declare(methodId, PUBLIC | STATIC); Local<A> localArray = code.getParameter(0, arrayType); Local<Integer> localIndex = code.getParameter(1, Type.INT); Local<T> localNewValue = code.getParameter(2, singleType); @@ -1644,7 +1640,7 @@ public final class DexGeneratorTest extends TestCase { // TODO: don't generate multiple times (?) private void addDefaultConstructor() { - Code code = generator.declare(GENERATED.getConstructor(), ACC_PUBLIC | ACC_CONSTRUCTOR); + Code code = generator.declareConstructor(GENERATED.getConstructor(), PUBLIC); Local<?> thisRef = code.getThis(GENERATED); code.invokeDirect(Type.OBJECT.getConstructor(), null, thisRef); code.returnVoid(); |