< prev index next >

src/java.base/share/classes/jdk/internal/reflect/UnsafeStaticObjectFieldAccessorImpl.java

Print this page

 16  *
 17  * You should have received a copy of the GNU General Public License version
 18  * 2 along with this work; if not, write to the Free Software Foundation,
 19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 20  *
 21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 22  * or visit www.oracle.com if you need additional information or have any
 23  * questions.
 24  */
 25 
 26 package jdk.internal.reflect;
 27 
 28 import java.lang.reflect.Field;
 29 
 30 class UnsafeStaticObjectFieldAccessorImpl extends UnsafeStaticFieldAccessorImpl {
 31     UnsafeStaticObjectFieldAccessorImpl(Field field) {
 32         super(field);
 33     }
 34 
 35     public Object get(Object obj) throws IllegalArgumentException {
 36         return unsafe.getReference(base, fieldOffset);

 37     }
 38 
 39     public boolean getBoolean(Object obj) throws IllegalArgumentException {
 40         throw newGetBooleanIllegalArgumentException();
 41     }
 42 
 43     public byte getByte(Object obj) throws IllegalArgumentException {
 44         throw newGetByteIllegalArgumentException();
 45     }
 46 
 47     public char getChar(Object obj) throws IllegalArgumentException {
 48         throw newGetCharIllegalArgumentException();
 49     }
 50 
 51     public short getShort(Object obj) throws IllegalArgumentException {
 52         throw newGetShortIllegalArgumentException();
 53     }
 54 
 55     public int getInt(Object obj) throws IllegalArgumentException {
 56         throw newGetIntIllegalArgumentException();
 57     }
 58 
 59     public long getLong(Object obj) throws IllegalArgumentException {
 60         throw newGetLongIllegalArgumentException();
 61     }
 62 
 63     public float getFloat(Object obj) throws IllegalArgumentException {
 64         throw newGetFloatIllegalArgumentException();
 65     }
 66 
 67     public double getDouble(Object obj) throws IllegalArgumentException {
 68         throw newGetDoubleIllegalArgumentException();
 69     }
 70 
 71     public void set(Object obj, Object value)
 72         throws IllegalArgumentException, IllegalAccessException
 73     {
 74         if (isFinal) {
 75             throwFinalFieldIllegalAccessException(value);
 76         }
 77         if (value != null) {
 78             if (!field.getType().isAssignableFrom(value.getClass())) {
 79                 throwSetIllegalArgumentException(value);
 80             }

 81         }
 82         unsafe.putReference(base, fieldOffset, value);
 83     }
 84 
 85     public void setBoolean(Object obj, boolean z)
 86         throws IllegalArgumentException, IllegalAccessException
 87     {
 88         throwSetIllegalArgumentException(z);
 89     }
 90 
 91     public void setByte(Object obj, byte b)
 92         throws IllegalArgumentException, IllegalAccessException
 93     {
 94         throwSetIllegalArgumentException(b);
 95     }
 96 
 97     public void setChar(Object obj, char c)
 98         throws IllegalArgumentException, IllegalAccessException
 99     {
100         throwSetIllegalArgumentException(c);
101     }
102 

 16  *
 17  * You should have received a copy of the GNU General Public License version
 18  * 2 along with this work; if not, write to the Free Software Foundation,
 19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 20  *
 21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 22  * or visit www.oracle.com if you need additional information or have any
 23  * questions.
 24  */
 25 
 26 package jdk.internal.reflect;
 27 
 28 import java.lang.reflect.Field;
 29 
 30 class UnsafeStaticObjectFieldAccessorImpl extends UnsafeStaticFieldAccessorImpl {
 31     UnsafeStaticObjectFieldAccessorImpl(Field field) {
 32         super(field);
 33     }
 34 
 35     public Object get(Object obj) throws IllegalArgumentException {
 36         return isFlattened() ? unsafe.getValue(base, fieldOffset, field.getType())
 37                              : unsafe.getReference(base, fieldOffset, field.getType());
 38     }
 39 
 40     public boolean getBoolean(Object obj) throws IllegalArgumentException {
 41         throw newGetBooleanIllegalArgumentException();
 42     }
 43 
 44     public byte getByte(Object obj) throws IllegalArgumentException {
 45         throw newGetByteIllegalArgumentException();
 46     }
 47 
 48     public char getChar(Object obj) throws IllegalArgumentException {
 49         throw newGetCharIllegalArgumentException();
 50     }
 51 
 52     public short getShort(Object obj) throws IllegalArgumentException {
 53         throw newGetShortIllegalArgumentException();
 54     }
 55 
 56     public int getInt(Object obj) throws IllegalArgumentException {
 57         throw newGetIntIllegalArgumentException();
 58     }
 59 
 60     public long getLong(Object obj) throws IllegalArgumentException {
 61         throw newGetLongIllegalArgumentException();
 62     }
 63 
 64     public float getFloat(Object obj) throws IllegalArgumentException {
 65         throw newGetFloatIllegalArgumentException();
 66     }
 67 
 68     public double getDouble(Object obj) throws IllegalArgumentException {
 69         throw newGetDoubleIllegalArgumentException();
 70     }
 71 
 72     public void set(Object obj, Object value)
 73         throws IllegalArgumentException, IllegalAccessException
 74     {
 75         if (isFinal) {
 76             throwFinalFieldIllegalAccessException(value);
 77         }
 78         checkValue(value);
 79         if (isFlattened()) {
 80             unsafe.putValue(obj, fieldOffset, field.getType(), value);
 81         } else {
 82             unsafe.putReference(base, fieldOffset, value);
 83         }

 84     }
 85 
 86     public void setBoolean(Object obj, boolean z)
 87         throws IllegalArgumentException, IllegalAccessException
 88     {
 89         throwSetIllegalArgumentException(z);
 90     }
 91 
 92     public void setByte(Object obj, byte b)
 93         throws IllegalArgumentException, IllegalAccessException
 94     {
 95         throwSetIllegalArgumentException(b);
 96     }
 97 
 98     public void setChar(Object obj, char c)
 99         throws IllegalArgumentException, IllegalAccessException
100     {
101         throwSetIllegalArgumentException(c);
102     }
103 
< prev index next >