public abstract class AbstractParameter
extends java.lang.Object
AbstractParameter
AbstractSimpleParameter
AbstractExtentParameter
OutputExtentParameter
ExtentExprN1 (generated-code)
OutputExtentField
InputOutputExtentParameter
ExtentExprN2 (generated-code)
InputOutputExtentField
ContextLocal WorkArea.| Modifier and Type | Class and Description |
|---|---|
static class |
AbstractParameter.Scope
One instance of this class is created for each block scope which the currently executing
program enters.
|
protected static class |
AbstractParameter.WorkArea
Object which manages the context local state of field assigners.
|
| Modifier and Type | Field and Description |
|---|---|
protected static ContextLocal<AbstractParameter.WorkArea> |
context
Object which manages all instances of this class by context.
|
protected static CentralLogger |
LOG
Logger
|
| Constructor and Description |
|---|
AbstractParameter()
Default constructor - register the
scopeable instance as pending for the next started
block. |
| Modifier and Type | Method and Description |
|---|---|
protected boolean |
canRelease(BaseDataType bdt)
Check if the parameter can release its resources.
|
static AbstractParameter.Scope |
getCurrentScope()
Obtain the current scope from the current context.
|
protected BaseDataType |
getLocalParam()
Get the variable container used as parameter inside the procedure body.
|
static Scopeable |
getScopeable()
Retrieve a
Scopeable for the current context. |
protected static boolean |
isExtentParameter(BaseDataType[] key)
Check if the given array reference was passed as a parameter, by looking into all scopes.
|
protected static boolean |
isParameter(BaseDataType key)
Check if the
BaseDataType passed as parameter is used for lookup of an
OUTPUT parameter. |
protected boolean |
isTableField()
Check if this parameter is associated with a table field, so a batch assign is required on output
parameter processing.
|
protected static BaseDataType |
postProcessOutput(AbstractSimpleParameter origAssigner,
BaseDataType var)
Post-process the OUTPUT parameter - if a
conversion constructor was
registered, then create a VariableAssigner. |
protected abstract void |
release()
Release all the callee's resources for this parameter, after assignment has taken place.
|
protected static void |
replaceParameter(BaseDataType[] old,
BaseDataType[] other)
Replace the extent array parameter reference (not the original argument) with the new one.
|
protected static final CentralLogger LOG
protected static final ContextLocal<AbstractParameter.WorkArea> context
public AbstractParameter()
scopeable instance as pending for the next started
block.protected abstract void release()
public static Scopeable getScopeable()
Scopeable for the current context. This allows an external object to
notify this class' current context of scope open and close events.Scopeable.public static AbstractParameter.Scope getCurrentScope()
protected static BaseDataType postProcessOutput(AbstractSimpleParameter origAssigner, BaseDataType var)
conversion constructor was
registered, then create a VariableAssigner.
Also, normalize the AbstractSimpleParameter.outputValue so that the called method will use a
real BDT sub-type, and not an anonymous class.
origAssigner - The assigner created bdt the BDT anonymous class.var - The variable to be passed as parameter.protected static boolean isParameter(BaseDataType key)
BaseDataType passed as parameter is used for lookup of an
OUTPUT parameter.key - The variable for lookup in the current scope.true if the content of key will be assigned back on return with
success.protected static boolean isExtentParameter(BaseDataType[] key)
key - The array reference.protected static void replaceParameter(BaseDataType[] old, BaseDataType[] other)
old - The previous array parameter reference.other - The new reference.protected BaseDataType getLocalParam()
null. Implementing classes will return the proper field.protected boolean canRelease(BaseDataType bdt)
bdt - The parameter instance.true if the parameter can be released.protected boolean isTableField()
false.