EclipseLink 2.4.2, build 'v20130514-5956486' API Reference

org.eclipse.persistence.jaxb.javamodel
Class AnnotationProxy

java.lang.Object
  extended by org.eclipse.persistence.jaxb.javamodel.AnnotationProxy
All Implemented Interfaces:
java.lang.reflect.InvocationHandler

public class AnnotationProxy
extends java.lang.Object
implements java.lang.reflect.InvocationHandler

Purpose:The purpose of this class is to act as a dynamic proxy that allows JDK Annotation method calls to be made on a non Annotation object.

Responsibilities:

This class provides a means to invoke JDK Annotation method calls on a non Annotation instance.

See Also:
Proxy

Method Summary
 java.util.Map<java.lang.String,java.lang.Object> getComponents()
          Return the Map of method name/value pairs for this proxy instance.
static
<A extends java.lang.annotation.Annotation>
A
getProxy(java.util.Map<java.lang.String,java.lang.Object> components, java.lang.Class<A> annoClass, java.lang.ClassLoader cl, org.eclipse.persistence.internal.helper.ConversionManager conversionMgr)
          This is the preferred way to obtain an instance of a dynamic proxy.
 java.lang.Object invoke(java.lang.Object proxy, java.lang.reflect.Method method, java.lang.Object[] args)
          Invoke a given Method on this proxy.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getProxy

public static <A extends java.lang.annotation.Annotation> A getProxy(java.util.Map<java.lang.String,java.lang.Object> components,
                                                                     java.lang.Class<A> annoClass,
                                                                     java.lang.ClassLoader cl,
                                                                     org.eclipse.persistence.internal.helper.ConversionManager conversionMgr)
This is the preferred way to obtain an instance of a dynamic proxy. The method takes a ClassLoader (which is used to load the target Annotation), a Class (which indicates the target Annotation, i.e. javax.xml.bind.annotation.XmlElement.class), and a Map of method name to value pairs, which represent the method names on the Annotation and the values that are to be returned from each method call. For example, if this proxy is to be used for an @XmlElement, the Map should contain the following keys: Following are example key/value pairs :

Parameters:
components - Map of method name/value pairs for this proxy instance
annoClass - The interface for the proxy class to implement
cl - The ClassLoader to define the proxy class
conversionMgr - ConversionManager instance for converting to the correct return type in the invoke method
Returns:
A dynamic proxy instance based on a Java model JavaAnnotation

getComponents

public java.util.Map<java.lang.String,java.lang.Object> getComponents()
Return the Map of method name/value pairs for this proxy instance.

Returns:
Map of method name/value pairs for this proxy instance

invoke

public java.lang.Object invoke(java.lang.Object proxy,
                               java.lang.reflect.Method method,
                               java.lang.Object[] args)
                        throws java.lang.Throwable
Invoke a given Method on this proxy. The component Map will be accessed using the given Method's name, and if an entry exists, the associated value is returned.

Specified by:
invoke in interface java.lang.reflect.InvocationHandler
Parameters:
proxy - Satisfy the InvocationHandler interface - not used
method - The Method instance corresponding to the interface method invoked on the proxy instance
args - Satisfy the InvocationHandler interface - not used
Returns:
The value from the method invocation on the proxy instance
Throws:
java.lang.Throwable

EclipseLink 2.4.2, build 'v20130514-5956486' API Reference