com.oracle.truffle.api.object

## Interface BaseLocation

All Known Subinterfaces:
  BooleanLocation, DoubleLocation, IntLocation, LocationImpl.InternalLongLocation, LocationImpl.TypedObjectLocation<T>, LongLocation, ObjectLocation, TypedLocation

All Known Implementing Classes:
  BasicLocations.ArrayLocation, BasicLocations.BooleanLocationDecorator, BasicLocations.DoubleLocationDecorator, BasicLocations.FieldLocation, BasicLocations.IntLocationDecorator, BasicLocations.LongArrayLocation, BasicLocations.LongFieldLocation, BasicLocations.LongLocationDecorator, BasicLocations.MethodHandleFieldLocation, BasicLocations.ObjectArrayLocation, BasicLocations.ObjectFieldLocation, BasicLocations.PrimitiveLocationDecorator, BasicLocations.SimpleLongFieldLocation, BasicLocations.SimpleObjectFieldLocation, Location, LocationImpl, Locations.ConstantLocation, Locations.DeclaredDualLocation, Locations.DeclaredLocation, Locations.DualLocation, Locations.ValueLocation

    public interface BaseLocation

### Method Summary

Methods
`java.lang.Object` `get(DynamicObject store, boolean condition)` Get object value as object at this location in store.
`java.lang.Object` `get(DynamicObject store, Shape shape)` Get object value as object at this location in store.
`void` `set(DynamicObject store, java.lang.Object value)` Set object value at this location in store.
`void` `set(DynamicObject store, java.lang.Object value, Shape shape)` Set object value at this location in store.
`void` `set(DynamicObject store, java.lang.Object value, Shape oldShape, Shape newShape)` Set object value at this location in store and update shape.

### Method Detail

#### get

    java.lang.Object get(DynamicObject store,
                       Shape shape)

Get object value as object at this location in store.

Parameters:
  `shape` - the current shape of the object, which must contain this location

#### get

    java.lang.Object get(DynamicObject store,
                       boolean condition)

Get object value as object at this location in store. For internal use only and subject to change, use `get(DynamicObject, Shape)` instead.

Parameters:
  `condition` - the result of a shape check or `false`
See Also:
  `get(DynamicObject, Shape)`

#### set

    void set(DynamicObject store,
           java.lang.Object value)
             throws IncompatibleLocationException,
                    FinalLocationException

Set object value at this location in store.

Throws:
  `IncompatibleLocationException` - for storage type invalidations
  `FinalLocationException` - for effectively final fields

#### set

    void set(DynamicObject store,
           java.lang.Object value,
           Shape shape)
             throws IncompatibleLocationException,
                    FinalLocationException

Set object value at this location in store.

Parameters:
  `shape` - the current shape of the storage object
Throws:
  `IncompatibleLocationException` - for storage type invalidations
  `FinalLocationException` - for effectively final fields

#### set

    void set(DynamicObject store,
           java.lang.Object value,
           Shape oldShape,
           Shape newShape)
             throws IncompatibleLocationException

Set object value at this location in store and update shape.

Parameters:
  `oldShape` - the shape before the transition
  `newShape` - new shape after the transition
Throws:
  `IncompatibleLocationException` - if value is of non-assignable type