< prev index next >

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

Print this page
rev 55127 : 8223351: [lworld] Primary mirror and nullable mirror for inline type
Reviewed-by: tbd


  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(


< prev index next >