private static class ArrayAssigner.WorkArea extends java.lang.Object implements Scopeable
Modifier and Type | Field and Description |
---|---|
private java.util.Map<BaseDataType[],java.lang.Integer> |
dynamicArrayPrecisions
Map of decimal dynamic array precisions.
|
private java.util.Deque<java.util.Set<BaseDataType[]>> |
dynamicArrays
Stack of dynamic-extent arrays, per each scope.
|
private java.util.Map<java.lang.Object,java.util.Deque<java.util.Map<BaseDataType[],java.lang.Integer>>> |
dynamicUndoableArrays
Stack of undoable dynamic-extent arrays, per each scope and each external program.
|
private java.util.Deque<java.util.Map<BaseDataType[],AbstractExtentParameter<?>>> |
extentParameters
Map of extent parameter instances
|
Modifier | Constructor and Description |
---|---|
private |
WorkArea() |
Modifier and Type | Method and Description |
---|---|
java.lang.Integer |
getDecimalPrecision(decimal[] array)
Retrieve the decimal precision of the supplied array or
null if precision
was not previously set for the array argument. |
<T extends BaseDataType> |
getExtentParameter(BaseDataType[] array)
Returns a previously registered extent parameter instance,
see
registerExtentParameter(AbstractExtentParameter) for more info. |
boolean |
isRegistered(BaseDataType[] array)
Returns
true if the supplied array argument has been
previously registered, false otherwise. |
void |
register(BaseDataType[] array)
Register the given
array as a dynamic-extent array. |
void |
registerDynamicUndoable(java.util.Set<BaseDataType[]> arrays,
int transLevel)
Register the set of given arrays as dynamic extent.
|
<T extends BaseDataType> |
registerExtentParameter(AbstractExtentParameter<T> extentParameter)
Registers an unfixed indeterminate extent parameter instance into
the current scope.
|
void |
reRegister(BaseDataType[] oldArray,
BaseDataType[] newArray)
Deregisters
oldArray and registers newArray into the scope
previously occupied by oldArray . |
void |
scopeDeleted()
Provides a notification that an external scope is about to be deleted.
|
void |
scopeFinished()
Provides a notification that a scope is about to be exited.
|
void |
scopeStart()
Provides a notification that a new scope is about to be entered.
|
void |
setDecimalPrecision(decimal[] array,
int precision)
Sets decimal precision for the array argument.
|
private java.util.Deque<java.util.Set<BaseDataType[]>> dynamicArrays
private java.util.Map<java.lang.Object,java.util.Deque<java.util.Map<BaseDataType[],java.lang.Integer>>> dynamicUndoableArrays
private java.util.Map<BaseDataType[],java.lang.Integer> dynamicArrayPrecisions
private java.util.Deque<java.util.Map<BaseDataType[],AbstractExtentParameter<?>>> extentParameters
public void scopeStart()
Scopeable
scopeStart
in interface Scopeable
public void scopeDeleted()
Scopeable
scopeDeleted
in interface Scopeable
public void scopeFinished()
Scopeable
scopeFinished
in interface Scopeable
public boolean isRegistered(BaseDataType[] array)
true
if the supplied array argument has been
previously registered, false
otherwise.array
- A valid array instance.public void register(BaseDataType[] array)
array
as a dynamic-extent array. If the array is already
registered the method doesn't register it again and simply returns.array
- The dynamic-extent array reference, must not be null
.public void registerDynamicUndoable(java.util.Set<BaseDataType[]> arrays, int transLevel)
arrays
- The set of dynamic arrays to register.transLevel
- The transaction nesting level where this instance was created.public void reRegister(BaseDataType[] oldArray, BaseDataType[] newArray)
oldArray
and registers newArray
into the scope
previously occupied by oldArray
.oldArray
- A valid array instance.newArray
- A valid array instance.public java.lang.Integer getDecimalPrecision(decimal[] array)
null
if precision
was not previously set for the array argument.array
- Array representing an extent variable.null
, see above.public void setDecimalPrecision(decimal[] array, int precision)
array
- The array to be set with the supplied precision.precision
- Decimal precision to be set for the supplied array.public <T extends BaseDataType> void registerExtentParameter(AbstractExtentParameter<T> extentParameter)
AbstractExtentParameter.getParameter()
as the registration key.
To get the registered instance back, use that reference in the call to
getExtentParameter(BaseDataType[])
.extentParameter
- An extent parameter instance.public <T extends BaseDataType> AbstractExtentParameter<T> getExtentParameter(BaseDataType[] array)
registerExtentParameter(AbstractExtentParameter)
for more info.array
- A valid dynamic array instance.