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 UnsafeQualifiedObjectFieldAccessorImpl
31 extends UnsafeQualifiedFieldAccessorImpl
32 {
33 UnsafeQualifiedObjectFieldAccessorImpl(Field field, boolean isReadOnly) {
34 super(field, isReadOnly);
35 }
36
37 public Object get(Object obj) throws IllegalArgumentException {
38 ensureObj(obj);
39 return isFlattened ? unsafe.getValue(obj, fieldOffset, field.getType())
40 : unsafe.getObjectVolatile(obj, fieldOffset);
41 }
42
43 public boolean getBoolean(Object obj) throws IllegalArgumentException {
44 throw newGetBooleanIllegalArgumentException();
45 }
46
47 public byte getByte(Object obj) throws IllegalArgumentException {
48 throw newGetByteIllegalArgumentException();
49 }
50
51 public char getChar(Object obj) throws IllegalArgumentException {
52 throw newGetCharIllegalArgumentException();
53 }
54
55 public short getShort(Object obj) throws IllegalArgumentException {
56 throw newGetShortIllegalArgumentException();
57 }
58
59 public int getInt(Object obj) throws IllegalArgumentException {
62
63 public long getLong(Object obj) throws IllegalArgumentException {
64 throw newGetLongIllegalArgumentException();
65 }
66
67 public float getFloat(Object obj) throws IllegalArgumentException {
68 throw newGetFloatIllegalArgumentException();
69 }
70
71 public double getDouble(Object obj) throws IllegalArgumentException {
72 throw newGetDoubleIllegalArgumentException();
73 }
74
75 public void set(Object obj, Object value)
76 throws IllegalArgumentException, IllegalAccessException
77 {
78 ensureObj(obj);
79 if (isReadOnly) {
80 throwFinalFieldIllegalAccessException(value);
81 }
82 if (value != null) {
83 if (!field.getType().isAssignableFrom(value.getClass())) {
84 throwSetIllegalArgumentException(value);
85 }
86 } else if (field.getType().isValue()) {
87 throw new NullPointerException("cannot set this field of type " + field.getType() + " to null");
88 }
89 if (isFlattened) {
90 unsafe.putValue(obj, fieldOffset, field.getType(), value);
91 } else {
92 unsafe.putObjectVolatile(obj, fieldOffset, value);
93 }
94 }
95
96 public void setBoolean(Object obj, boolean z)
97 throws IllegalArgumentException, IllegalAccessException
98 {
99 throwSetIllegalArgumentException(z);
100 }
101
102 public void setByte(Object obj, byte b)
103 throws IllegalArgumentException, IllegalAccessException
104 {
105 throwSetIllegalArgumentException(b);
106 }
107
108 public void setChar(Object obj, char c)
109 throws IllegalArgumentException, IllegalAccessException
|
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 UnsafeQualifiedObjectFieldAccessorImpl
31 extends UnsafeQualifiedFieldAccessorImpl
32 {
33 UnsafeQualifiedObjectFieldAccessorImpl(Field field, boolean isReadOnly) {
34 super(field, isReadOnly);
35 }
36
37 public Object get(Object obj) throws IllegalArgumentException {
38 ensureObj(obj);
39 return isFlattened() ? unsafe.getValue(obj, fieldOffset, field.getType())
40 : unsafe.getObjectVolatile(obj, fieldOffset);
41 }
42
43 public boolean getBoolean(Object obj) throws IllegalArgumentException {
44 throw newGetBooleanIllegalArgumentException();
45 }
46
47 public byte getByte(Object obj) throws IllegalArgumentException {
48 throw newGetByteIllegalArgumentException();
49 }
50
51 public char getChar(Object obj) throws IllegalArgumentException {
52 throw newGetCharIllegalArgumentException();
53 }
54
55 public short getShort(Object obj) throws IllegalArgumentException {
56 throw newGetShortIllegalArgumentException();
57 }
58
59 public int getInt(Object obj) throws IllegalArgumentException {
62
63 public long getLong(Object obj) throws IllegalArgumentException {
64 throw newGetLongIllegalArgumentException();
65 }
66
67 public float getFloat(Object obj) throws IllegalArgumentException {
68 throw newGetFloatIllegalArgumentException();
69 }
70
71 public double getDouble(Object obj) throws IllegalArgumentException {
72 throw newGetDoubleIllegalArgumentException();
73 }
74
75 public void set(Object obj, Object value)
76 throws IllegalArgumentException, IllegalAccessException
77 {
78 ensureObj(obj);
79 if (isReadOnly) {
80 throwFinalFieldIllegalAccessException(value);
81 }
82 checkValue(value);
83 if (isFlattened()) {
84 unsafe.putValue(obj, fieldOffset, field.getType(), value);
85 } else {
86 unsafe.putObjectVolatile(obj, fieldOffset, value);
87 }
88 }
89
90 public void setBoolean(Object obj, boolean z)
91 throws IllegalArgumentException, IllegalAccessException
92 {
93 throwSetIllegalArgumentException(z);
94 }
95
96 public void setByte(Object obj, byte b)
97 throws IllegalArgumentException, IllegalAccessException
98 {
99 throwSetIllegalArgumentException(b);
100 }
101
102 public void setChar(Object obj, char c)
103 throws IllegalArgumentException, IllegalAccessException
|