net.vidageek.mirror.provider.java
Class DefaultMirrorReflectionProvider

java.lang.Object
  extended by net.vidageek.mirror.provider.java.DefaultMirrorReflectionProvider
All Implemented Interfaces:
ReflectionProvider

public final class DefaultMirrorReflectionProvider
extends Object
implements ReflectionProvider

Class which supplies all native Java reflection features plus some non supported functions, like constructor bypassing.

Author:
jonasabreu

Constructor Summary
DefaultMirrorReflectionProvider()
           
 
Method Summary
 AnnotatedElementReflectionProvider getAnnotatedElementReflectionProvider(AnnotatedElement element)
           
 GenericTypeAccessor getClassGenericTypeAccessor(Class<?> clazz)
           
<T> ClassReflectionProvider<T>
getClassReflectionProvider(Class<T> clazz)
           
 ClassReflectionProvider<?> getClassReflectionProvider(String className)
           
<T> ConstructorBypassingReflectionProvider<T>
getConstructorBypassingReflectionProvider(Class<T> clazz)
           
<T> ConstructorReflectionProvider<T>
getConstructorReflectionProvider(Class<T> clazz, Constructor<T> constructor)
           
 GenericTypeAccessor getFieldGenericTypeAccessor(Field field)
           
 FieldReflectionProvider getFieldReflectionProvider(Object target, Class<?> clazz, Field field)
           
 MethodReflectionProvider getMethodReflectionProvider(Object target, Class<?> clazz, Method method)
           
 ParameterizedElementReflectionProvider getParameterizedElementProvider(GenericTypeAccessor accessor)
           
 ProxyReflectionProvider getProxyReflectionProvider(Class<?> clazz, List<Class<?>> interfaces, MethodInterceptor... methodInterceptors)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DefaultMirrorReflectionProvider

public DefaultMirrorReflectionProvider()
Method Detail

getClassReflectionProvider

public ClassReflectionProvider<?> getClassReflectionProvider(String className)
Specified by:
getClassReflectionProvider in interface ReflectionProvider
Parameters:
className - Full qualified name of the class that is going to be wrapped by a ClassReflectionProvider.
See Also:
ClassReflectionProvider

getClassReflectionProvider

public <T> ClassReflectionProvider<T> getClassReflectionProvider(Class<T> clazz)
Specified by:
getClassReflectionProvider in interface ReflectionProvider
Parameters:
clazz - Class that is going to be wrapped by a ClassReflectionProvider.
See Also:
ClassReflectionProvider

getFieldReflectionProvider

public FieldReflectionProvider getFieldReflectionProvider(Object target,
                                                          Class<?> clazz,
                                                          Field field)
Specified by:
getFieldReflectionProvider in interface ReflectionProvider
Parameters:
target - Object where this field can be found. May be null if field is a static field.
clazz - Class where this field can be found.
field - Field to be wrapped by FieldReflectionProvider
See Also:
FieldReflectionProvider

getConstructorReflectionProvider

public <T> ConstructorReflectionProvider<T> getConstructorReflectionProvider(Class<T> clazz,
                                                                             Constructor<T> constructor)
Specified by:
getConstructorReflectionProvider in interface ReflectionProvider
Parameters:
clazz - Class of the constructor
constructor - constructor that is going to be wrapped by ConstructorReflectionProvider
See Also:
ConstructorReflectionProvider

getAnnotatedElementReflectionProvider

public AnnotatedElementReflectionProvider getAnnotatedElementReflectionProvider(AnnotatedElement element)
Specified by:
getAnnotatedElementReflectionProvider in interface ReflectionProvider
Parameters:
element - AnnotatedElement to be wrapped by AnnotatedElementReflectionProvider
See Also:
AnnotatedElementReflectionProvider

getMethodReflectionProvider

public MethodReflectionProvider getMethodReflectionProvider(Object target,
                                                            Class<?> clazz,
                                                            Method method)
Specified by:
getMethodReflectionProvider in interface ReflectionProvider
Parameters:
target - Object where method will be invoked. May be null if method is a static method.
clazz - class where this method can be found.
method - method to be wrapped by MethodReflectionProvider
See Also:
MethodReflectionProvider

getParameterizedElementProvider

public ParameterizedElementReflectionProvider getParameterizedElementProvider(GenericTypeAccessor accessor)
Specified by:
getParameterizedElementProvider in interface ReflectionProvider
Parameters:
accessor - Object that has the proper strategy to access class or field generic types.
See Also:
ParameterizedElementReflectionProvider

getClassGenericTypeAccessor

public GenericTypeAccessor getClassGenericTypeAccessor(Class<?> clazz)
Specified by:
getClassGenericTypeAccessor in interface ReflectionProvider
Parameters:
clazz - Class to be reflected.

getFieldGenericTypeAccessor

public GenericTypeAccessor getFieldGenericTypeAccessor(Field field)
Specified by:
getFieldGenericTypeAccessor in interface ReflectionProvider

getConstructorBypassingReflectionProvider

public <T> ConstructorBypassingReflectionProvider<T> getConstructorBypassingReflectionProvider(Class<T> clazz)
Specified by:
getConstructorBypassingReflectionProvider in interface ReflectionProvider
Parameters:
clazz - Class to be instantiated without a constructor.

getProxyReflectionProvider

public ProxyReflectionProvider getProxyReflectionProvider(Class<?> clazz,
                                                          List<Class<?>> interfaces,
                                                          MethodInterceptor... methodInterceptors)
Specified by:
getProxyReflectionProvider in interface ReflectionProvider
Parameters:
clazz - Base inheritance class of the proxy
interfaces - List of the interfaces this proxy should implement
methodInterceptors - List of method interceptors


Copyright © 2011 VidaGeek.net. All Rights Reserved.