Package com.oracle.truffle.object
Class Locations.DeclaredDualLocation
- java.lang.Object
-
- com.oracle.truffle.api.object.Location
-
- com.oracle.truffle.object.LocationImpl
-
- com.oracle.truffle.object.Locations.DualLocation
-
- com.oracle.truffle.object.Locations.DeclaredDualLocation
-
- All Implemented Interfaces:
BaseLocation
,TypedLocation
- Enclosing class:
- Locations
public static class Locations.DeclaredDualLocation extends Locations.DualLocation
-
-
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.Locations.DualLocation
layout, objectLocation, primitiveLocation
-
-
Constructor Summary
Constructors Constructor Description DeclaredDualLocation(LocationImpl.InternalLongLocation primitiveLocation, ObjectLocation objectLocation, java.lang.Object defaultValue, LayoutImpl layout)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
canStore(java.lang.Object value)
Returnstrue
if the location is compatible with the value.Locations.DualLocation
changeType(java.lang.Class<?> newType)
boolean
equals(java.lang.Object obj)
java.lang.Object
get(DynamicObject store, boolean condition)
Get object value as object at this location in store.int
hashCode()
void
setInternal(DynamicObject store, java.lang.Object value)
LikeLocation.set(DynamicObject, Object, Shape)
, but does not invalidate final locations.java.lang.String
toString()
-
Methods inherited from class com.oracle.truffle.object.Locations.DualLocation
getObjectLocation, getType, isNonNull, objectArrayCount, objectFieldCount, primitiveArrayCount, primitiveFieldCount
-
Methods inherited from class com.oracle.truffle.object.LocationImpl
canSet, canStoreFinal, getInternal, getWhereString, isConstant, isFinal, set, 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
-
DeclaredDualLocation
public DeclaredDualLocation(LocationImpl.InternalLongLocation primitiveLocation, ObjectLocation objectLocation, java.lang.Object defaultValue, LayoutImpl layout)
-
-
Method Detail
-
get
public 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, useBaseLocation.get(DynamicObject, Shape)
instead.- Specified by:
get
in interfaceBaseLocation
- Overrides:
get
in classLocations.DualLocation
condition
- the result of a shape check orfalse
- See Also:
BaseLocation.get(DynamicObject, Shape)
-
setInternal
public void setInternal(DynamicObject store, java.lang.Object value) throws IncompatibleLocationException
Description copied from class:Location
LikeLocation.set(DynamicObject, Object, Shape)
, but does not invalidate final locations. For internal use only and subject to change, useDynamicObjectFactory
to create objects with predefined properties.- Overrides:
setInternal
in classLocations.DualLocation
- Throws:
IncompatibleLocationException
- if value is of non-assignable type
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equals
in classLocations.DualLocation
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classLocations.DualLocation
-
changeType
public Locations.DualLocation changeType(java.lang.Class<?> newType)
- Overrides:
changeType
in classLocations.DualLocation
-
canStore
public boolean canStore(java.lang.Object value)
Description copied from class:Location
Returnstrue
if the location is compatible with the value. The value may still be rejected ifLocation.canSet(DynamicObject, Object)
returns false.- Overrides:
canStore
in classLocations.DualLocation
- Parameters:
value
- the value in question
-
toString
public java.lang.String toString()
- Overrides:
toString
in classLocations.DualLocation
-
-