# HG changeset patch # User Doug Simon # Date 1424340168 -3600 # Node ID c4173ea6c8c7f4a0e56be6ad878d73fb8f8aa92f # Parent 5a91549293dfb54fba426946858ed21ad7a49a7b allow an InvocationPlugin concrete class to implement more than one apply method diff -r 5a91549293df -r c4173ea6c8c7 graal/com.oracle.graal.java/src/com/oracle/graal/java/InvocationPlugins.java --- a/graal/com.oracle.graal.java/src/com/oracle/graal/java/InvocationPlugins.java Wed Feb 18 20:38:04 2015 -0800 +++ b/graal/com.oracle.graal.java/src/com/oracle/graal/java/InvocationPlugins.java Thu Feb 19 11:02:48 2015 +0100 @@ -222,28 +222,15 @@ public static boolean check(ResolvedJavaMethod method, InvocationPlugin plugin) { int arguments = method.getSignature().getParameterCount(!method.isStatic()); assert arguments < SIGS.length : format("need to extend %s to support method with %d arguments: %s", InvocationPlugin.class.getSimpleName(), arguments, method.format("%H.%n(%p)")); - Method expected = null; for (Method m : plugin.getClass().getDeclaredMethods()) { if (m.getName().equals("apply")) { Class[] parameterTypes = m.getParameterTypes(); - assert Arrays.equals(SIGS[arguments], parameterTypes) : format("graph builder plugin for %s has wrong signature%nexpected: (%s)%n actual: (%s)", method.format("%H.%n(%p)"), - sigString(SIGS[arguments]), sigString(m.getParameterTypes())); - expected = m; + if (Arrays.equals(SIGS[arguments], parameterTypes)) { + return true; + } } } - assert expected != null : format("graph builder plugin %s must define exactly one \"apply\" method, none found", plugin); - return true; - } - - protected static String sigString(Class... sig) { - StringBuilder sb = new StringBuilder(); - for (Class t : sig) { - if (sb.length() != 0) { - sb.append(", "); - } - sb.append(t.getSimpleName()); - } - return sb.toString(); + throw new AssertionError(format("graph builder plugin for %s not found", method.format("%H.%n(%p)"))); } } }