The Spring Framework

org.springframework.core
Class BridgeMethodResolver

java.lang.Object
  extended by org.springframework.core.BridgeMethodResolver

public abstract class BridgeMethodResolver
extends Object

Helper for resolving synthetic bridge Methods to the Method being bridged.

Given a synthetic bridge Method returns the Method being bridged. A bridge method may be created by the compiler when extending a parameterized type whose methods have parameterized arguments. During runtime invocation the bridge Method may be invoked and/or used via reflection. When attempting to locate annotations on Methods, it is wise to check for bridge Methods as appropriate and find the bridged Method.

See The Java Language Specification for more details on the use of bridge methods.

Only usable on Java 5. Use an appropriate JdkVersion check before calling this class, if a fallback for JDK 1.3/1.4 is desirable.

Since:
2.0
Author:
Rob Harrop
See Also:
JdkVersion

Constructor Summary
BridgeMethodResolver()
           
 
Method Summary
(package private) static Map createTypeVariableMap(Class cls)
          Build a mapping of TypeVariable names to concrete Class for the specified Class.
static Method findBridgedMethod(Method bridgeMethod)
          Find the original method for the supplied bridge Method.
(package private) static boolean isBridgeMethodFor(Method bridgeMethod, Method candidateMethod, Map typeVariableMap)
          Determine whether or not the bridge Method is the bridge for the supplied candidate Method.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BridgeMethodResolver

public BridgeMethodResolver()
Method Detail

findBridgedMethod

public static Method findBridgedMethod(Method bridgeMethod)
Find the original method for the supplied bridge Method.

It is safe to call this method passing in a non-bridge Method instance. In such a case, the supplied Method instance is returned directly to the caller. Callers are not required to check for bridging before calling this method.

Throws:
IllegalStateException - if no bridged Method can be found

isBridgeMethodFor

static boolean isBridgeMethodFor(Method bridgeMethod,
                                 Method candidateMethod,
                                 Map typeVariableMap)
Determine whether or not the bridge Method is the bridge for the supplied candidate Method.


createTypeVariableMap

static Map createTypeVariableMap(Class cls)
Build a mapping of TypeVariable names to concrete Class for the specified Class. Searches all super types, enclosing types and interfaces.


The Spring Framework

Copyright © 2002-2006 The Spring Framework.