Class PureJavaReflectionProvider

  • All Implemented Interfaces:
    ReflectionProvider
    Direct Known Subclasses:
    SunLimitedUnsafeReflectionProvider

    public class PureJavaReflectionProvider
    extends java.lang.Object
    implements ReflectionProvider
    Pure Java ObjectFactory that instantiates objects using standard Java reflection, however the types of objects that can be constructed are limited.

    Can newInstance: classes with public visibility, outer classes, static inner classes, classes with default constructors and any class that implements java.io.Serializable.

    Cannot newInstance: classes without public visibility, non-static inner classes, classes without default constructors. Note that any code in the constructor of a class will be executed when the ObjectFactory instantiates the object.

    • Field Detail

      • serializedDataCache

        private transient java.util.Map serializedDataCache
    • Constructor Detail

      • PureJavaReflectionProvider

        public PureJavaReflectionProvider()
      • PureJavaReflectionProvider

        public PureJavaReflectionProvider​(FieldDictionary fieldDictionary)
    • Method Detail

      • newInstance

        public java.lang.Object newInstance​(java.lang.Class type)
        Description copied from interface: ReflectionProvider
        Creates a new instance of the specified type. It is in the responsibility of the implementation how such an instance is created.
        Specified by:
        newInstance in interface ReflectionProvider
        Parameters:
        type - the type to instantiate
        Returns:
        a new instance of this type
      • instantiateUsingSerialization

        private java.lang.Object instantiateUsingSerialization​(java.lang.Class type)
      • writeField

        public void writeField​(java.lang.Object object,
                               java.lang.String fieldName,
                               java.lang.Object value,
                               java.lang.Class definedIn)
        Specified by:
        writeField in interface ReflectionProvider
      • getFieldType

        public java.lang.Class getFieldType​(java.lang.Object object,
                                            java.lang.String fieldName,
                                            java.lang.Class definedIn)
        Specified by:
        getFieldType in interface ReflectionProvider
      • fieldModifiersSupported

        protected boolean fieldModifiersSupported​(java.lang.reflect.Field field)
      • validateFieldAccess

        protected void validateFieldAccess​(java.lang.reflect.Field field)
      • getField

        public java.lang.reflect.Field getField​(java.lang.Class definedIn,
                                                java.lang.String fieldName)
        Description copied from interface: ReflectionProvider
        Returns a field defined in some class.
        Specified by:
        getField in interface ReflectionProvider
        Parameters:
        definedIn - class where the field was defined
        fieldName - field name
        Returns:
        the field itself
      • getFieldOrNull

        public java.lang.reflect.Field getFieldOrNull​(java.lang.Class definedIn,
                                                      java.lang.String fieldName)
        Description copied from interface: ReflectionProvider
        Returns a field defined in some class.
        Specified by:
        getFieldOrNull in interface ReflectionProvider
        Parameters:
        definedIn - class where the field was defined
        fieldName - field name
        Returns:
        the field itself or null
      • setFieldDictionary

        public void setFieldDictionary​(FieldDictionary dictionary)
      • readResolve

        private java.lang.Object readResolve()
      • init

        protected void init()