Class BeansAccess<T>


  • public abstract class BeansAccess<T>
    extends java.lang.Object
    Allow access reflect field using runtime generated accessor. BeansAccessor is faster than java.lang.reflect.Method.invoke()
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private Accessor[] accs  
      private static java.util.concurrent.ConcurrentHashMap<java.lang.Class<?>,​BeansAccess<?>> cache
      cache used to store built BeansAccess
      private java.util.HashMap<java.lang.String,​Accessor> map  
    • Constructor Summary

      Constructors 
      Constructor Description
      BeansAccess()  
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      private static void addAlias​(BeansAccess<?> access, java.util.HashMap<java.lang.String,​java.lang.String> m)  
      static <P> BeansAccess<P> get​(java.lang.Class<P> type)
      return the BeansAccess corresponding to a type
      static <P> BeansAccess<P> get​(java.lang.Class<P> type, FieldFilter filter)
      return the BeansAccess corresponding to a type
      abstract java.lang.Object get​(T object, int methodIndex)
      get field value by field index
      java.lang.Object get​(T object, java.lang.String methodName)
      get field value by fieldname
      Accessor[] getAccessors()  
      int getIndex​(java.lang.String name)
      Returns the index of the field accessor.
      java.util.HashMap<java.lang.String,​Accessor> getMap()  
      private static java.util.LinkedList<java.lang.Class<?>> getParents​(java.lang.Class<?> type)  
      abstract T newInstance()
      create a new targeted object
      abstract void set​(T object, int methodIndex, java.lang.Object value)
      set field value by field index
      void set​(T object, java.lang.String methodName, java.lang.Object value)
      set field value by fieldname
      protected void setAccessor​(Accessor[] accs)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • map

        private java.util.HashMap<java.lang.String,​Accessor> map
      • cache

        private static java.util.concurrent.ConcurrentHashMap<java.lang.Class<?>,​BeansAccess<?>> cache
        cache used to store built BeansAccess
    • Constructor Detail

      • BeansAccess

        public BeansAccess()
    • Method Detail

      • setAccessor

        protected void setAccessor​(Accessor[] accs)
      • getMap

        public java.util.HashMap<java.lang.String,​Accessor> getMap()
      • getAccessors

        public Accessor[] getAccessors()
      • get

        public static <P> BeansAccess<P> get​(java.lang.Class<P> type)
        return the BeansAccess corresponding to a type
        Parameters:
        type - to be access
        Returns:
        the BeansAccess
      • get

        public static <P> BeansAccess<P> get​(java.lang.Class<P> type,
                                             FieldFilter filter)
        return the BeansAccess corresponding to a type
        Parameters:
        type - to be access
        Returns:
        the BeansAccess
      • getParents

        private static java.util.LinkedList<java.lang.Class<?>> getParents​(java.lang.Class<?> type)
      • addAlias

        private static void addAlias​(BeansAccess<?> access,
                                     java.util.HashMap<java.lang.String,​java.lang.String> m)
      • set

        public abstract void set​(T object,
                                 int methodIndex,
                                 java.lang.Object value)
        set field value by field index
      • get

        public abstract java.lang.Object get​(T object,
                                             int methodIndex)
        get field value by field index
      • newInstance

        public abstract T newInstance()
        create a new targeted object
      • set

        public void set​(T object,
                        java.lang.String methodName,
                        java.lang.Object value)
        set field value by fieldname
      • get

        public java.lang.Object get​(T object,
                                    java.lang.String methodName)
        get field value by fieldname
      • getIndex

        public int getIndex​(java.lang.String name)
        Returns the index of the field accessor.