47 this.field = field;
48 if (Modifier.isStatic(field.getModifiers()))
49 this.fieldOffset = unsafe.staticFieldOffset(field);
50 else
51 this.fieldOffset = unsafe.objectFieldOffset(field);
52 this.isFinal = Modifier.isFinal(field.getModifiers());
53 }
54
55 protected void ensureObj(Object o) {
56 // NOTE: will throw NullPointerException, as specified, if o is null
57 if (!field.getDeclaringClass().isAssignableFrom(o.getClass())) {
58 throwSetIllegalArgumentException(o);
59 }
60 }
61
62 protected boolean isFlattened() {
63 return unsafe.isFlattened(field);
64 }
65
66 protected boolean canBeNull() {
67 return field.getType() == field.getType().asBoxType();
68 }
69
70 protected Object checkValue(Object value) {
71 if (!canBeNull() && value == null)
72 throw new NullPointerException(field + " cannot be set to null");
73
74 if (value != null) {
75 if (!field.getType().isAssignableFrom(value.getClass())) {
76 throwSetIllegalArgumentException(value);
77 }
78 }
79 return value;
80 }
81
82 private String getQualifiedFieldName() {
83 return field.getDeclaringClass().getName() + "." +field.getName();
84 }
85
86 protected IllegalArgumentException newGetIllegalArgumentException(String type) {
87 return new IllegalArgumentException(
|
47 this.field = field;
48 if (Modifier.isStatic(field.getModifiers()))
49 this.fieldOffset = unsafe.staticFieldOffset(field);
50 else
51 this.fieldOffset = unsafe.objectFieldOffset(field);
52 this.isFinal = Modifier.isFinal(field.getModifiers());
53 }
54
55 protected void ensureObj(Object o) {
56 // NOTE: will throw NullPointerException, as specified, if o is null
57 if (!field.getDeclaringClass().isAssignableFrom(o.getClass())) {
58 throwSetIllegalArgumentException(o);
59 }
60 }
61
62 protected boolean isFlattened() {
63 return unsafe.isFlattened(field);
64 }
65
66 protected boolean canBeNull() {
67 return field.getType() == field.getType().asNullableType();
68 }
69
70 protected Object checkValue(Object value) {
71 if (!canBeNull() && value == null)
72 throw new NullPointerException(field + " cannot be set to null");
73
74 if (value != null) {
75 if (!field.getType().isAssignableFrom(value.getClass())) {
76 throwSetIllegalArgumentException(value);
77 }
78 }
79 return value;
80 }
81
82 private String getQualifiedFieldName() {
83 return field.getDeclaringClass().getName() + "." +field.getName();
84 }
85
86 protected IllegalArgumentException newGetIllegalArgumentException(String type) {
87 return new IllegalArgumentException(
|