src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedJavaField.java

Print this page




  23 package jdk.vm.ci.hotspot;
  24 
  25 import jdk.vm.ci.meta.ResolvedJavaField;
  26 
  27 /**
  28  * Represents a field in a HotSpot type.
  29  */
  30 public interface HotSpotResolvedJavaField extends ResolvedJavaField {
  31 
  32     /**
  33      * Determines if a given object contains this field.
  34      *
  35      * @return true iff this is a non-static field and its declaring class is assignable from
  36      *         {@code object}'s class
  37      */
  38     boolean isInObject(Object object);
  39 
  40     int offset();
  41 
  42     /**
  43      * Checks if this field has the {@link Stable} annotation.
  44      *
  45      * @return true if field has {@link Stable} annotation, false otherwise
  46      */
  47     boolean isStable();
  48 
  49     /**
  50      * If this field is stable, checks if default values (0, null, etc.) should be considered stable
  51      * as well.
  52      *
  53      * @return true if default values should be considered stable, false otherwise
  54      */
  55     boolean isDefaultStable();
  56 }


  23 package jdk.vm.ci.hotspot;
  24 
  25 import jdk.vm.ci.meta.ResolvedJavaField;
  26 
  27 /**
  28  * Represents a field in a HotSpot type.
  29  */
  30 public interface HotSpotResolvedJavaField extends ResolvedJavaField {
  31 
  32     /**
  33      * Determines if a given object contains this field.
  34      *
  35      * @return true iff this is a non-static field and its declaring class is assignable from
  36      *         {@code object}'s class
  37      */
  38     boolean isInObject(Object object);
  39 
  40     int offset();
  41 
  42     /**
  43      * Determines if this field should be treated as a constant.


  44      */
  45     boolean isStable();
  46 
  47     /**
  48      * Determines if this field should be considered constant if it has the default value for its
  49      * type (e.g, 0, null, etc.). This result of this method is undefined if this field is not
  50      * {@linkplain #isStable() stable}.

  51      */
  52     boolean isDefaultStable();
  53 }