Class FieldAccess


  • public abstract class FieldAccess
    extends java.lang.Object
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.lang.String[] fieldNames  
      private java.lang.Class[] fieldTypes  
    • Constructor Summary

      Constructors 
      Constructor Description
      FieldAccess()  
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      static FieldAccess get​(java.lang.Class type)  
      abstract java.lang.Object get​(java.lang.Object instance, int fieldIndex)  
      java.lang.Object get​(java.lang.Object instance, java.lang.String fieldName)  
      abstract boolean getBoolean​(java.lang.Object instance, int fieldIndex)  
      abstract byte getByte​(java.lang.Object instance, int fieldIndex)  
      abstract char getChar​(java.lang.Object instance, int fieldIndex)  
      abstract double getDouble​(java.lang.Object instance, int fieldIndex)  
      int getFieldCount()  
      java.lang.String[] getFieldNames()  
      java.lang.Class[] getFieldTypes()  
      abstract float getFloat​(java.lang.Object instance, int fieldIndex)  
      int getIndex​(java.lang.String fieldName)  
      abstract int getInt​(java.lang.Object instance, int fieldIndex)  
      abstract long getLong​(java.lang.Object instance, int fieldIndex)  
      abstract short getShort​(java.lang.Object instance, int fieldIndex)  
      abstract java.lang.String getString​(java.lang.Object instance, int fieldIndex)  
      private static void insertConstructor​(org.objectweb.asm.ClassWriter cw)  
      private static void insertGetObject​(org.objectweb.asm.ClassWriter cw, java.lang.String classNameInternal, java.util.ArrayList<java.lang.reflect.Field> fields)  
      private static void insertGetPrimitive​(org.objectweb.asm.ClassWriter cw, java.lang.String classNameInternal, java.util.ArrayList<java.lang.reflect.Field> fields, org.objectweb.asm.Type primitiveType)  
      private static void insertGetString​(org.objectweb.asm.ClassWriter cw, java.lang.String classNameInternal, java.util.ArrayList<java.lang.reflect.Field> fields)  
      private static void insertSetObject​(org.objectweb.asm.ClassWriter cw, java.lang.String classNameInternal, java.util.ArrayList<java.lang.reflect.Field> fields)  
      private static void insertSetPrimitive​(org.objectweb.asm.ClassWriter cw, java.lang.String classNameInternal, java.util.ArrayList<java.lang.reflect.Field> fields, org.objectweb.asm.Type primitiveType)  
      private static org.objectweb.asm.MethodVisitor insertThrowExceptionForFieldNotFound​(org.objectweb.asm.MethodVisitor mv)  
      private static org.objectweb.asm.MethodVisitor insertThrowExceptionForFieldType​(org.objectweb.asm.MethodVisitor mv, java.lang.String fieldType)  
      abstract void set​(java.lang.Object instance, int fieldIndex, java.lang.Object value)  
      void set​(java.lang.Object instance, java.lang.String fieldName, java.lang.Object value)  
      abstract void setBoolean​(java.lang.Object instance, int fieldIndex, boolean value)  
      abstract void setByte​(java.lang.Object instance, int fieldIndex, byte value)  
      abstract void setChar​(java.lang.Object instance, int fieldIndex, char value)  
      abstract void setDouble​(java.lang.Object instance, int fieldIndex, double value)  
      abstract void setFloat​(java.lang.Object instance, int fieldIndex, float value)  
      abstract void setInt​(java.lang.Object instance, int fieldIndex, int value)  
      abstract void setLong​(java.lang.Object instance, int fieldIndex, long value)  
      abstract void setShort​(java.lang.Object instance, int fieldIndex, short value)  
      • Methods inherited from class java.lang.Object

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

      • fieldNames

        private java.lang.String[] fieldNames
      • fieldTypes

        private java.lang.Class[] fieldTypes
    • Constructor Detail

      • FieldAccess

        public FieldAccess()
    • Method Detail

      • getIndex

        public int getIndex​(java.lang.String fieldName)
      • set

        public void set​(java.lang.Object instance,
                        java.lang.String fieldName,
                        java.lang.Object value)
      • get

        public java.lang.Object get​(java.lang.Object instance,
                                    java.lang.String fieldName)
      • getFieldNames

        public java.lang.String[] getFieldNames()
      • getFieldTypes

        public java.lang.Class[] getFieldTypes()
      • getFieldCount

        public int getFieldCount()
      • set

        public abstract void set​(java.lang.Object instance,
                                 int fieldIndex,
                                 java.lang.Object value)
      • setBoolean

        public abstract void setBoolean​(java.lang.Object instance,
                                        int fieldIndex,
                                        boolean value)
      • setByte

        public abstract void setByte​(java.lang.Object instance,
                                     int fieldIndex,
                                     byte value)
      • setShort

        public abstract void setShort​(java.lang.Object instance,
                                      int fieldIndex,
                                      short value)
      • setInt

        public abstract void setInt​(java.lang.Object instance,
                                    int fieldIndex,
                                    int value)
      • setLong

        public abstract void setLong​(java.lang.Object instance,
                                     int fieldIndex,
                                     long value)
      • setDouble

        public abstract void setDouble​(java.lang.Object instance,
                                       int fieldIndex,
                                       double value)
      • setFloat

        public abstract void setFloat​(java.lang.Object instance,
                                      int fieldIndex,
                                      float value)
      • setChar

        public abstract void setChar​(java.lang.Object instance,
                                     int fieldIndex,
                                     char value)
      • get

        public abstract java.lang.Object get​(java.lang.Object instance,
                                             int fieldIndex)
      • getString

        public abstract java.lang.String getString​(java.lang.Object instance,
                                                   int fieldIndex)
      • getChar

        public abstract char getChar​(java.lang.Object instance,
                                     int fieldIndex)
      • getBoolean

        public abstract boolean getBoolean​(java.lang.Object instance,
                                           int fieldIndex)
      • getByte

        public abstract byte getByte​(java.lang.Object instance,
                                     int fieldIndex)
      • getShort

        public abstract short getShort​(java.lang.Object instance,
                                       int fieldIndex)
      • getInt

        public abstract int getInt​(java.lang.Object instance,
                                   int fieldIndex)
      • getLong

        public abstract long getLong​(java.lang.Object instance,
                                     int fieldIndex)
      • getDouble

        public abstract double getDouble​(java.lang.Object instance,
                                         int fieldIndex)
      • getFloat

        public abstract float getFloat​(java.lang.Object instance,
                                       int fieldIndex)
      • get

        public static FieldAccess get​(java.lang.Class type)
      • insertConstructor

        private static void insertConstructor​(org.objectweb.asm.ClassWriter cw)
      • insertSetObject

        private static void insertSetObject​(org.objectweb.asm.ClassWriter cw,
                                            java.lang.String classNameInternal,
                                            java.util.ArrayList<java.lang.reflect.Field> fields)
      • insertGetObject

        private static void insertGetObject​(org.objectweb.asm.ClassWriter cw,
                                            java.lang.String classNameInternal,
                                            java.util.ArrayList<java.lang.reflect.Field> fields)
      • insertGetString

        private static void insertGetString​(org.objectweb.asm.ClassWriter cw,
                                            java.lang.String classNameInternal,
                                            java.util.ArrayList<java.lang.reflect.Field> fields)
      • insertSetPrimitive

        private static void insertSetPrimitive​(org.objectweb.asm.ClassWriter cw,
                                               java.lang.String classNameInternal,
                                               java.util.ArrayList<java.lang.reflect.Field> fields,
                                               org.objectweb.asm.Type primitiveType)
      • insertGetPrimitive

        private static void insertGetPrimitive​(org.objectweb.asm.ClassWriter cw,
                                               java.lang.String classNameInternal,
                                               java.util.ArrayList<java.lang.reflect.Field> fields,
                                               org.objectweb.asm.Type primitiveType)
      • insertThrowExceptionForFieldNotFound

        private static org.objectweb.asm.MethodVisitor insertThrowExceptionForFieldNotFound​(org.objectweb.asm.MethodVisitor mv)
      • insertThrowExceptionForFieldType

        private static org.objectweb.asm.MethodVisitor insertThrowExceptionForFieldType​(org.objectweb.asm.MethodVisitor mv,
                                                                                        java.lang.String fieldType)