Package com.oracle.truffle.object.basic

## Class BasicLocations.LongFieldLocation

- java.lang.Object
- - com.oracle.truffle.api.object.Location
  - - com.oracle.truffle.object.LocationImpl
    - - com.oracle.truffle.object.basic.BasicLocations.FieldLocation
      - - com.oracle.truffle.object.basic.BasicLocations.MethodHandleFieldLocation
        - - com.oracle.truffle.object.basic.BasicLocations.LongFieldLocation

All Implemented Interfaces:
  `BaseLocation`, `LongLocation`, `TypedLocation`, `LocationImpl.InternalLongLocation`

Enclosing class:
  BasicLocations

    public static class BasicLocations.LongFieldLocation
    extends BasicLocations.MethodHandleFieldLocation
    implements LocationImpl.InternalLongLocation

### Nested Class Summary

### Nested classes/interfaces inherited from class com.oracle.truffle.object.LocationImpl

`LocationImpl.EffectivelyFinalLocation<T extends Location>, LocationImpl.InternalLongLocation, LocationImpl.TypedObjectLocation<T extends Location & ObjectLocation>`

### Field Summary

### Fields inherited from class com.oracle.truffle.object.basic.BasicLocations.MethodHandleFieldLocation

`getter, setter`

### Constructor Summary

Constructors
`LongFieldLocation​(int index, java.lang.invoke.MethodHandle getter, java.lang.invoke.MethodHandle setter)`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`boolean` `canStore​(java.lang.Object value)` Returns `true` if the location is compatible with the value.
`static LongLocation` `create​(LocationImpl.InternalLongLocation longLocation, boolean allowInt)`
`java.lang.Object` `get​(DynamicObject store, boolean condition)` Get object value as object at this location in store.
`long` `getLong​(DynamicObject store, boolean condition)`
`long` `getLong​(DynamicObject store, Shape shape)`
`java.lang.Class<java.lang.Long>` `getType()` The type of this location.
`int` `primitiveFieldCount()` Get the number of in-object primitive fields this location requires.
`void` `setInternal​(DynamicObject store, java.lang.Object value)` Like `Location.set(DynamicObject, Object, Shape)`, but does not invalidate final locations.
`void` `setLong​(DynamicObject store, long value)`
`void` `setLong​(DynamicObject store, long value, Shape shape)`
`void` `setLong​(DynamicObject store, long value, Shape oldShape, Shape newShape)`
`void` `setLongInternal​(DynamicObject store, long value)`

### Methods inherited from class com.oracle.truffle.object.basic.BasicLocations.FieldLocation

`equals, getIndex, getWhereString, hashCode`

### Methods inherited from class com.oracle.truffle.object.LocationImpl

`canSet, canStoreFinal, getInternal, isConstant, isFinal, objectArrayCount, objectFieldCount, primitiveArrayCount, set, toString, valueEquals`

### Methods inherited from class com.oracle.truffle.api.object.Location

`checkShape, finalLocation, get, incompatibleLocation, set, set`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface com.oracle.truffle.api.object.BaseLocation

`get, set, set, set`

### Constructor Detail

#### LongFieldLocation

    public LongFieldLocation​(int index,
                             java.lang.invoke.MethodHandle getter,
                             java.lang.invoke.MethodHandle setter)

### Method Detail

#### create

    public static LongLocation create​(LocationImpl.InternalLongLocation longLocation,
                                      boolean allowInt)

#### get

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

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

Specified by:
  `get` in interface `BaseLocation`
Overrides:
  `get` in class `Location`
  `condition` - the result of a shape check or `false`
See Also:
  `BaseLocation.get(DynamicObject, Shape)`

#### setInternal

    public final void setInternal​(DynamicObject store,
                                  java.lang.Object value)
                           throws IncompatibleLocationException

Description copied from class: `Location`
Like `Location.set(DynamicObject, Object, Shape)`, but does not invalidate final locations. For internal use only and subject to change, use `DynamicObjectFactory` to create objects with predefined properties.

Specified by:
  `setInternal` in class `LocationImpl`
Throws:
  `IncompatibleLocationException` - if value is of non-assignable type

#### canStore

    public final boolean canStore​(java.lang.Object value)

Description copied from class: `Location`
Returns `true` if the location is compatible with the value. The value may still be rejected if `Location.canSet(DynamicObject, Object)` returns false.

Overrides:
  `canStore` in class `LocationImpl`
Parameters:
  `value` - the value in question

#### setLong

    public final void setLong​(DynamicObject store,
                              long value,
                              Shape oldShape,
                              Shape newShape)

Specified by:
  `setLong` in interface `LongLocation`
See Also:
  `BaseLocation.set(DynamicObject, Object, Shape, Shape)`

#### getLong

    public long getLong​(DynamicObject store,
                        boolean condition)

Specified by:
  `getLong` in interface `LongLocation`
See Also:
  `BaseLocation.get(DynamicObject, boolean)`

#### setLong

    public void setLong​(DynamicObject store,
                        long value,
                        Shape shape)

Specified by:
  `setLong` in interface `LongLocation`
See Also:
  `BaseLocation.set(DynamicObject, Object, Shape)`

#### setLong

    public final void setLong​(DynamicObject store,
                              long value)
                       throws FinalLocationException

Specified by:
  `setLong` in interface `LongLocation`
Throws:
  `FinalLocationException`
See Also:
  `BaseLocation.set(DynamicObject, Object)`

#### setLongInternal

    public final void setLongInternal​(DynamicObject store,
                                      long value)

Specified by:
  `setLongInternal` in interface `LocationImpl.InternalLongLocation`

#### getLong

    public final long getLong​(DynamicObject store,
                              Shape shape)

Specified by:
  `getLong` in interface `LongLocation`
See Also:
  `BaseLocation.get(DynamicObject, Shape)`

#### primitiveFieldCount

    public final int primitiveFieldCount()

Description copied from class: `LocationImpl`
Get the number of in-object primitive fields this location requires.

Overrides:
  `primitiveFieldCount` in class `LocationImpl`

#### getType

    public java.lang.Class<java.lang.Long> getType()

Description copied from interface: `TypedLocation`
The type of this location.

Specified by:
  `getType` in interface `LongLocation`
Specified by:
  `getType` in interface `TypedLocation`