public abstract class LayoutImpl extends Layout
Layout.ImplicitCast
INT_TO_DOUBLE, INT_TO_LONG, NONE, OPTION_PREFIX
Modifier | Constructor and Description |
---|---|
protected |
LayoutImpl(java.util.EnumSet<Layout.ImplicitCast> allowedImplicitCasts,
java.lang.Class<? extends DynamicObjectImpl> clazz,
LayoutStrategy strategy) |
Modifier and Type | Method and Description |
---|---|
abstract Shape.Allocator |
createAllocator()
Create an allocator for static property creation.
|
Shape |
createShape(ObjectType operations) |
Shape |
createShape(ObjectType operations,
java.lang.Object sharedData) |
protected Location |
existingLocationForValue(java.lang.Object value,
Location oldLocation,
Shape oldShape) |
protected abstract Location |
getObjectArrayLocation() |
protected abstract int |
getObjectFieldCount() |
protected abstract Location |
getPrimitiveArrayLocation() |
protected abstract int |
getPrimitiveFieldCount() |
LayoutStrategy |
getStrategy() |
java.lang.Class<? extends DynamicObject> |
getType() |
protected abstract boolean |
hasObjectExtensionArray() |
protected abstract boolean |
hasPrimitiveExtensionArray() |
boolean |
isAllowedIntToDouble() |
boolean |
isAllowedIntToLong() |
protected boolean |
isLocationAssignableFrom(Location destination,
Location source) |
boolean |
isPropertyUpcastOf(Property thiz,
Property other)
Is this property an upcast of the other property?
|
abstract DynamicObject |
newInstance(Shape shape) |
protected abstract int |
objectFieldIndex(Location location) |
createLayout, createLayout, createLayout, createShape, getFactory
protected LayoutImpl(java.util.EnumSet<Layout.ImplicitCast> allowedImplicitCasts, java.lang.Class<? extends DynamicObjectImpl> clazz, LayoutStrategy strategy)
public abstract DynamicObject newInstance(Shape shape)
newInstance
in class Layout
public java.lang.Class<? extends DynamicObject> getType()
public final Shape createShape(ObjectType operations, java.lang.Object sharedData)
createShape
in class Layout
public final Shape createShape(ObjectType operations)
createShape
in class Layout
public boolean isAllowedIntToDouble()
public boolean isAllowedIntToLong()
protected abstract boolean hasObjectExtensionArray()
protected abstract boolean hasPrimitiveExtensionArray()
protected abstract int getObjectFieldCount()
protected abstract int getPrimitiveFieldCount()
protected abstract Location getObjectArrayLocation()
protected abstract Location getPrimitiveArrayLocation()
protected abstract int objectFieldIndex(Location location)
protected boolean isLocationAssignableFrom(Location destination, Location source)
protected Location existingLocationForValue(java.lang.Object value, Location oldLocation, Shape oldShape)
public boolean isPropertyUpcastOf(Property thiz, Property other)
other
- the property being compared topublic abstract Shape.Allocator createAllocator()
Layout
createAllocator
in class Layout
public LayoutStrategy getStrategy()