public static class ProcedureManager.ProcedureHelper
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
(package private) handle.Helper |
h
Cache and expose the
handle.Helper. |
(package private) ObjectOps.ObjectHelper |
oh
Cache and expose the
ObjectOps.ObjectHelper. |
private ProcedureManager.WorkArea |
wa
The
ProcedureManager.WorkArea instance. |
(package private) WidgetPool.WidgetPoolHelper |
wp
Cache and expose the
WidgetPool.WidgetPoolHelper. |
| Modifier | Constructor and Description |
|---|---|
private |
ProcedureHelper(ProcedureManager.WorkArea wa)
Create a new instance and associate the given WorkArea instance.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
_isDelayedDelete(java.lang.Object referent)
Check if this is a "delete-on-exit" procedure.
|
boolean |
_isPersistent(java.lang.Object referent)
Check if the given referent is for a persistent procedure.
|
boolean |
_isPersistentAndNotPendingDelete(java.lang.Object referent)
Check if the given referent is for a persistent procedure which has not been deleted explicitly while
its still on stack, so a delete is pending when last call for this reference exits the stack.
|
java.lang.Object |
_rootProcedure()
Get the root procedure instance .
|
java.lang.Object |
_sourceProcedure()
Get the SOURCE-PROCEDURE referent.
|
java.lang.Object |
_thisProcedure()
Get the THIS-PROCEDURE referent.
|
(package private) void |
addFinalizable(java.lang.Object referent,
Finalizable target)
Register the given
Finalizable to be processed when the persistent procedure gets
deleted. |
(package private) void |
addProcedure(handle h,
java.lang.String name,
boolean persistent)
Add the
h handle as a persistent procedure. |
(package private) void |
addProcedure(handle h,
java.lang.String name,
boolean singleton,
boolean singleRun)
Add the
h handle as a persistent procedure. |
(package private) void |
addProcedure(handle h,
java.lang.String name,
boolean persistent,
boolean singleton,
boolean singleRun,
boolean legacyClass)
Add the
h handle as a persistent procedure. |
(package private) void |
addScopeable(java.lang.Object referent,
Scopeable target)
Register the given
Scopeable to be processed when the persistent procedure gets
deleted. |
boolean |
addStaleReferent(java.lang.Object referent)
Mark that the selected referent is stale.
|
logical |
addSuperProcedure(java.lang.Object referent,
handle h)
Add the given handle as a super-procedure for the specified referent.
|
logical |
addSuperProcedure(java.lang.Object referent,
handle h,
int mode)
Add the given handle as a super-procedure for the specified referent,
using the search-mode set as a string (one of the
SEARCH-TARGET or SEARCH-SELF string literals). |
logical |
addSuperProcedure(java.lang.Object referent,
handle h,
ProcedureManager.SearchMode mode)
Add the given handle as a super-procedure for the specified referent,
using the explicit
mode. |
void |
cleanupPending()
Cleanup of pending resources.
|
(package private) java.lang.String |
currentInternalEntry()
Get the currently executing internal entry name.
|
(package private) boolean |
delete(java.lang.Object referent,
boolean letStaleProcedure)
Delete the given procedure handle (i.e.
|
void |
deleteResource(WrappedResource res)
Delete the specified resource - this allows a static resource to be deleted.
|
void |
deregisterExecuteOnReturn(java.lang.Runnable code,
WeightFactor weight)
Deregister the given code from the
ProcedureManager.WorkArea.cleanupHandlers. |
void |
deregisterResource(java.lang.Object referent,
HandleResource resource)
Deregister the given resource from the specified creator procedure.
|
java.util.Iterator<java.lang.Object> |
destinationIterator()
Get an iterator over the stack of currently destination resolved code.
|
void |
disablePendingResources()
Disable static resources to be registered to
ProcedureManager.WorkArea.pendingResources. |
void |
enablePendingResources()
Allow static resources to be registered to
ProcedureManager.WorkArea.pendingResources. |
void |
executeInThisProcedure(java.lang.Object thisProcedureOverride,
Block block)
Execute the given block with THIS-PROCEDURE as the given instProc procedure.
|
void |
executeOnReturn(java.lang.Runnable code,
WeightFactor weight)
Registers a specific procedure-cleanup handler.
|
java.util.Iterator<java.lang.Class<?>> |
executingIterator()
Get an iterator over the stack of currently executing code.
|
character |
getADMData(java.lang.Object referent)
Get the value of the ADM-DATA attribute of the specified referent.
|
java.lang.Class<?> |
getExecuting()
Get the Java class associated with the currently executing code.
|
(package private) handle |
getHandleForFunction(handle phandle,
java.lang.String fname)
Using the name of a function defined IN handle and a procedure handle
to which this function definition belongs, resolve the target handle,
to be able to invoke it.
|
java.lang.String |
getInstantiatingExternalProgram()
ProcedureHelper
Get the name of the currently instantiated external program.
|
java.lang.Class<?> |
getInstantiatingExternalProgramClass()
Get the source class of the currently instantiating external program or OE class.
|
java.lang.Object |
getInstantiatingProcedure(java.lang.Object referent)
Gets the INSTANTIATING-PROCEDURE associated to the referent.
|
handle |
getNextSibling(java.lang.Object referent)
Get the
NEXT-SIBLING attribute of the specified referent. |
Stack<BlockDefinition> |
getPersistentProcStack(java.lang.Object referent)
Obtains the stack snapshot of one persistent procedure.
|
handle |
getPrevSibling(java.lang.Object referent)
Get the
PREV-SIBLING attribute of the specified referent. |
character |
getPrivateData(java.lang.Object referent)
Get the
PRIVATE-DATA attribute of the specified referent. |
java.lang.Object |
getProcessedProcedure()
Get the current external program (an application logic instance) being processed for
scopeable or finalizable notifications.
|
java.lang.String |
getRelativeName(java.lang.Object instance)
Get the relative name used to create the given external program instance.
|
(package private) java.lang.String |
getStackEntry(int idx)
Implementation for the PROGRAM-NAME functions.
|
java.util.List<java.lang.String> |
getStackTrace()
Get the legacy stack trace
|
(package private) handle |
getSuperHandle(java.lang.String iename,
boolean function)
For procedures or functions defined IN SUPER, this computes the target procedure handle
where the procedure's or function's body resides.
|
(package private) java.util.List<handle> |
getSuperProcedures()
Get a handle list of super-procedures for the session handle.
|
(package private) java.util.List<handle> |
getSuperProcedures(java.lang.Object referent)
Get a handle list of super-procedures for the given referent.
|
integer |
getUniqueID(java.lang.Object referent)
Gets the the unique ID number associated to the referent.
|
boolean |
hasReferent(java.lang.Object referent)
Check if the given referent has been (or is still) registered with the
ProcedureManager in the procedure map. |
boolean |
hasStaleReferent(java.lang.Object referent)
Check if a provided referent is stale or not.
|
boolean |
hasSubscriptions(_BaseObject_ resource)
Check if the given instance has associated subscriptions.
|
boolean |
inNotifications()
Check if we are executing finalizable or scopeable notifications.
|
(package private) boolean |
isBlockLevelUndoThrow()
Check if current THIS-PROCEDURE is marked as BLOCK-LEVEL UNDO, THROW.
|
boolean |
isDelayedDelete(java.lang.Object referent)
Check if this referent can be deleted or not.
|
boolean |
isExecuted(java.lang.Object referent)
Check whether the specified referent (procedure) has been executed or not.
|
logical |
isPersistent(java.lang.Object referent)
Check if the given referent is for a persistent procedure.
|
boolean |
isRemotePersistentProcedure(java.lang.Object referent)
Check if an external program was ran persistent by a remote side.
|
(package private) boolean |
isRoutineLevelUndoThrow()
Check if current THIS-PROCEDURE is marked as ROUTINE-LEVEL UNDO, THROW or
BLOCK-LEVEL UNDO, THROW (as BLOCK-LEVEL includes the ROUTINE-LEVEL blocks).
|
logical |
isSingleRun(java.lang.Object referent)
Check if the given referent is for a single-run procedure.
|
logical |
isSingleton(java.lang.Object referent)
Check if the given referent is for a singleton procedure.
|
boolean |
isThisProcedurePersistent()
Check if
_thisProcedure() is ran persistent. |
boolean |
isTopLevel(java.lang.Object referent)
Check if the given referent is the top-level procedure (the startup procedure).
|
boolean |
isValid(java.lang.Object referent)
Check if the given referent is a valid procedure.
|
(package private) void |
markBlockLevelUndoThrow()
Mark current THIS-PROCEDURE as BLOCK-LEVEL UNDO, THROW.
|
(package private) void |
markRoutineLevelUndoThrow()
Mark current THIS-PROCEDURE as ROUTINE-LEVEL UNDO, THROW.
|
void |
notifyStaticRecordWasLoaded(RecordBuffer recordBuffer)
A system which notifies the ProcedureManager when a static record buffer is changed.
|
long |
onStackReferences(java.lang.Object referent)
Calculate the number of occurences of the specified referent, on current stack.
|
CalleeInfo |
peekCalleeInfo()
Return the last callee info from the stack.
|
boolean |
pendingResourceDelete(WrappedResource res)
Check if this resource is currently being implicitly deleted.
|
void |
popCalleeInfo()
Pop the last callee info from the stack.
|
ProcedureManager.ProcedureData |
prevThisProcedureData()
Get the THIS-PROCEDURE data for the previous block on the stack.
|
void |
processResource(WrappedResource res,
boolean dynamic)
Process the given resource by either setting its INSTANTIATING-PROCEDURE attribute
immediately (in case of non-static resources) or add the static resource to the
ProcedureManager.WorkArea.pendingResources set, to be processed when the next scope is entered. |
void |
pushCalleeInfo(java.lang.Class<?> def,
boolean superCall,
java.lang.Object target,
java.lang.Object destination,
java.lang.String iename,
java.lang.String pname,
boolean function,
boolean persistentProc)
Save the information about the program being called, to be used on the top-level scope
start notification: at that time, the info about the callee (this, source- and target-
procedures and other info) will be resolved.
|
void |
pushCalleeInfo(java.lang.Class<?> def,
boolean superCall,
java.lang.Object target,
java.lang.Object destination,
java.lang.String iename,
java.lang.String pname,
boolean function,
boolean persistentProc,
boolean dynamicCall)
Save the information about the program being called, to be used on the top-level scope
start notification: at that time, the info about the callee (this, source- and target-
procedures and other info) will be resolved.
|
void |
pushCalleeInfo(java.lang.Class<?> def,
boolean superCall,
java.lang.Object target,
java.lang.Object destination,
java.lang.String iename,
java.lang.String pname,
boolean function,
boolean persistentProc,
boolean singletonProc,
boolean singleRunProc)
Save the information about the program being called, to be used on the top-level scope
start notification: at that time, the info about the callee (this, source- and target-
procedures and other info) will be resolved.
|
void |
registerRemotePersistentProcedure(java.lang.Object referent)
Register an external program which was ran persistent by a remote side.
|
void |
registerResource(java.lang.Object referent,
HandleResource resource)
Register the given resource as being created by the specified procedure.
|
void |
removeStaleProcedure(java.lang.Object referent)
Removes the referent information from the persistent procedure stack mapping
and stale set.
|
logical |
removeSuperProcedure(java.lang.Object referent,
handle h)
Remove the given handle from the specified referent's list of
super-procedures.
|
handle |
resolveInstantiatingProcedure(java.lang.Object instProc)
Resolve the instantiating procedure from the given handle: if the handle contains a valid
procedure, return a copy of it; else, return an unknown handle.
|
java.lang.Object |
searchInStack(java.util.function.Function<java.lang.Object,java.lang.Object> search)
Walk the
THIS-PROCEDURE stack and apply the search function;
return the first value given by the search function, once it returns a non-null value. |
void |
setADMData(java.lang.Object referent,
java.lang.String value)
Set the value of the ADM-DATA attribute for the specified referent.
|
void |
setInstantingExternalProgram(java.lang.String name)
Set the name of the 4GL program currently being instantiated, into the
ProcedureManager.WorkArea.initiatingExtProg field. |
void |
setInstantingExternalProgramClass(java.lang.Class<?> cls)
Set the Java class of the currently instantiating external program or OE class.
|
void |
setPrivateData(java.lang.Object referent,
character data)
Set the
PRIVATE-DATA attribute of the specified referent. |
void |
setProcessedProcedure(java.lang.Object referent)
Set the external procedure beeing processed for scopeable or finalizable notifications.
|
character |
superProcedures(java.lang.Object referent)
Get the
SUPER-PROCEDURES attribute of the specified
external procedure instance. |
handle |
thisProcedure()
Get the THIS-PROCEDURE system handle.
|
ProcedureManager.ProcedureData |
thisProcedureData()
Get the THIS-PROCEDURE data for the current block.
|
final WidgetPool.WidgetPoolHelper wp
WidgetPool.WidgetPoolHelper.final handle.Helper h
handle.Helper.final ObjectOps.ObjectHelper oh
ObjectOps.ObjectHelper.private final ProcedureManager.WorkArea wa
ProcedureManager.WorkArea instance.private ProcedureHelper(ProcedureManager.WorkArea wa)
wa - The ProcedureManager.WorkArea instance.public void enablePendingResources()
ProcedureManager.WorkArea.pendingResources.public void disablePendingResources()
ProcedureManager.WorkArea.pendingResources.public void processResource(WrappedResource res, boolean dynamic)
ProcedureManager.WorkArea.pendingResources set, to be processed when the next scope is entered.res - The resource to be processed.dynamic - Flag indicating if this is a dynamic or static resource.public boolean isDelayedDelete(java.lang.Object referent)
This checks if the instance is on stack, and if the run is SINGLE-RUN or SINGLETON.
referent - The instance to check.true if the delete must be postponed.public boolean hasSubscriptions(_BaseObject_ resource)
resource - The instance to check.public character superProcedures(java.lang.Object referent)
SUPER-PROCEDURES attribute of the specified
external procedure instance.referent - An instance of an converted external procedure class.public logical removeSuperProcedure(java.lang.Object referent, handle h)
referent - An instance of an converted external procedure class.h - The procedure handle to be removed.true if h is a valid procedure
handle.public logical addSuperProcedure(java.lang.Object referent, handle h)
referent - An instance of an converted external procedure class.h - The handle to be added as a super-procedure.true if h is a valid procedure
handle.public logical addSuperProcedure(java.lang.Object referent, handle h, ProcedureManager.SearchMode mode)
mode.referent - An instance of an converted external procedure class.h - The handle to be added as a super-procedure.mode - The ProcedureManager.SearchMode to be set for the h
handle.true if h is a valid procedure
handle.public logical addSuperProcedure(java.lang.Object referent, handle h, int mode)
SEARCH-TARGET or SEARCH-SELF string literals).referent - An instance of an converted external procedure class.h - The handle to be added as a super-procedure.mode - The search-mode to be set for the h handle.true if h is a valid procedure
handle.public handle resolveInstantiatingProcedure(java.lang.Object instProc)
instProc - The instance representing an instantiating procedure.public boolean isTopLevel(java.lang.Object referent)
referent - The instance to be verified.true if the referent is the startup procedure.public void setPrivateData(java.lang.Object referent,
character data)
PRIVATE-DATA attribute of the specified referent.referent - An instance of an converted external procedure class.data - the PRIVATE-DATA.public character getPrivateData(java.lang.Object referent)
PRIVATE-DATA attribute of the specified referent.referent - An instance of an converted external procedure class.public integer getUniqueID(java.lang.Object referent)
referent - An instance of an converted external procedure class.public boolean pendingResourceDelete(WrappedResource res)
res - The resource to check.true if the resource is the same as
ProcedureManager.WorkArea.pendingResourceDelete.public void registerResource(java.lang.Object referent,
HandleResource resource)
referent - The procedure which creates the resource.resource - The resource being created.public void deregisterResource(java.lang.Object referent,
HandleResource resource)
referent - The procedure which creates the resource.resource - The resource being created.public boolean inNotifications()
public boolean isValid(java.lang.Object referent)
referent - The instance to check.public java.util.List<java.lang.String> getStackTrace()
public void deleteResource(WrappedResource res)
res - The resource to delete.public java.lang.Object getInstantiatingProcedure(java.lang.Object referent)
referent - The external program.public handle getNextSibling(java.lang.Object referent)
NEXT-SIBLING attribute of the specified referent.referent - An instance of an converted external procedure class.public handle getPrevSibling(java.lang.Object referent)
PREV-SIBLING attribute of the specified referent.referent - An instance of an converted external procedure class.public logical isSingleRun(java.lang.Object referent)
referent - An instance of an converted external procedure class.true if the referent is a single-run procedure.public logical isSingleton(java.lang.Object referent)
referent - An instance of an converted external procedure class.true if the referent is a singleton procedure.public logical isPersistent(java.lang.Object referent)
referent - An instance of an converted external procedure class.true if the referent is a persistent procedure.public character getADMData(java.lang.Object referent)
referent - An instance of an converted external procedure class.public void setADMData(java.lang.Object referent,
java.lang.String value)
referent - An instance of an converted external procedure class.value - The new value.public java.util.Iterator<java.lang.Class<?>> executingIterator()
public java.util.Iterator<java.lang.Object> destinationIterator()
handle getSuperHandle(java.lang.String iename, boolean function)
In case when no super procedure is found, it will throw proper error messages and return
null.
iename - Internal-entry's name (this may be a procedure or function).function - true if this is a function.null of none found.public java.lang.Class<?> getExecuting()
public long onStackReferences(java.lang.Object referent)
referent - The referent to check.public java.lang.Object searchInStack(java.util.function.Function<java.lang.Object,java.lang.Object> search)
THIS-PROCEDURE stack and apply the search function;
return the first value given by the search function, once it returns a non-null value.search - The search function.public boolean isRemotePersistentProcedure(java.lang.Object referent)
referent - The external program instance.true if the referent is part of the
ProcedureManager.WorkArea.remotePersistentProcedures map.public void registerRemotePersistentProcedure(java.lang.Object referent)
referent - The external program instance.public handle thisProcedure()
public java.lang.Object _thisProcedure()
thisProcedure().public java.lang.Object _rootProcedure()
public boolean isThisProcedurePersistent()
_thisProcedure() is ran persistent.true if THIS-PROCEDURE is ran persistent.public ProcedureManager.ProcedureData prevThisProcedureData()
public ProcedureManager.ProcedureData thisProcedureData()
public java.lang.Object _sourceProcedure()
ProcedureManager.sourceProcedure().public boolean _isPersistent(java.lang.Object referent)
referent - An instance of a converted external procedure class.true if the referent is a persistent procedure.public boolean _isPersistentAndNotPendingDelete(java.lang.Object referent)
referent - An instance of a converted external procedure class.true if the referent is a persistent procedure.public java.lang.String getInstantiatingExternalProgram()
null if this is
not the case.public java.lang.Class<?> getInstantiatingExternalProgramClass()
public void setProcessedProcedure(java.lang.Object referent)
referent - The external procedure instance.public java.lang.Object getProcessedProcedure()
public void cleanupPending()
public boolean _isDelayedDelete(java.lang.Object referent)
referent - An instance of a converted external procedure class.true if the referent is a "delete-on-exit" procedure.public void pushCalleeInfo(java.lang.Class<?> def,
boolean superCall,
java.lang.Object target,
java.lang.Object destination,
java.lang.String iename,
java.lang.String pname,
boolean function,
boolean persistentProc)
def - The currently executing OE class or external program.superCall - Flag indicating if the destination is in a super-procedure.target - The target procedure, which was targeted by the caller.destination - The procedure where the internal entry was resolved.iename - The internal entry name. In case of triggers or external programs, use the
ProcedureManager.EXTERNAL_PROGRAM and ProcedureManager.TRIGGER_PROCEDURE constants.pname - The external program name; will be non-null only when we are invoking an external
program.function - Flag indicating we are calling a user-defined function.persistentProc - Flag indicating the external program was ran persistent.public void pushCalleeInfo(java.lang.Class<?> def,
boolean superCall,
java.lang.Object target,
java.lang.Object destination,
java.lang.String iename,
java.lang.String pname,
boolean function,
boolean persistentProc,
boolean dynamicCall)
def - The currently executing OE class or external program.superCall - Flag indicating if the destination is in a super-procedure.target - The target procedure, which was targeted by the caller.destination - The procedure where the internal entry was resolved.iename - The internal entry name. In case of triggers or external programs, use the
ProcedureManager.EXTERNAL_PROGRAM and ProcedureManager.TRIGGER_PROCEDURE constants.pname - The external program name; will be non-null only when we are invoking an external
program.function - Flag indicating we are calling a user-defined function.persistentProc - Flag indicating the external program was ran persistent.dynamicCall - Flag indicating a dynamic call.public void pushCalleeInfo(java.lang.Class<?> def,
boolean superCall,
java.lang.Object target,
java.lang.Object destination,
java.lang.String iename,
java.lang.String pname,
boolean function,
boolean persistentProc,
boolean singletonProc,
boolean singleRunProc)
def - The currently executing OE class or external program.superCall - Flag indicating if the destination is in a super-procedure.target - The target procedure, which was targeted by the caller.destination - The procedure where the internal entry was resolved.iename - The internal entry name. In case of triggers or external programs, use the
ProcedureManager.EXTERNAL_PROGRAM and ProcedureManager.TRIGGER_PROCEDURE constants.pname - The external program name; will be non-null only when we are invoking an external
program.function - Flag indicating we are calling a user-defined function.persistentProc - Flag indicating the external program was ran persistent.singletonProc - Flag indicating the external program was ran singleton.singleRunProc - Flag indicating the external program was ran single-run.public void popCalleeInfo()
public CalleeInfo peekCalleeInfo()
CalleeInfo instance.public void executeInThisProcedure(java.lang.Object thisProcedureOverride,
Block block)
instProc - Procedure to be treated as the new THIS-PROCEDURE.block - The code to execute.public java.lang.String getRelativeName(java.lang.Object instance)
instance - The external program instance.public boolean hasReferent(java.lang.Object referent)
ProcedureManager in the procedure map.referent - The referent to be checked if is still loaded.true if the referent was found.public boolean hasStaleReferent(java.lang.Object referent)
referent - The referent for which the checking will be donetrue if the referent is stale.public boolean isExecuted(java.lang.Object referent)
referent - The referent which is checked for stalenesstrue if the procedure has been executed or was not found (i.e., is assumed to have
executed and been deleted/discarded); else false.public void notifyStaticRecordWasLoaded(RecordBuffer recordBuffer)
recordBuffer - The record buffer which was loaded and triggered this notification.public void removeStaleProcedure(java.lang.Object referent)
referent - The persistent procedure for which the entry should be removed.public Stack<BlockDefinition> getPersistentProcStack(java.lang.Object referent)
referent - The persistent procedure for which the stack should be retrieved.public boolean addStaleReferent(java.lang.Object referent)
referent - The referent which should be marked as stale.public void setInstantingExternalProgram(java.lang.String name)
ProcedureManager.WorkArea.initiatingExtProg field.name - The 4GL external program name.public void setInstantingExternalProgramClass(java.lang.Class<?> cls)
cls - The Java class for the currently executing code.public void executeOnReturn(java.lang.Runnable code,
WeightFactor weight)
fini / finally: block, just
before the procedure is popped out from the stack.code - The code that does the cleanup. It can handle a (input-)output parameter or other resource
whose scope is bound to the current procedure. For example, in case of a table parameter, it
will handle the unbinding process of the table parameter from the local table.weight - The priority of the code. The lower the weight, the higher priority.public void deregisterExecuteOnReturn(java.lang.Runnable code,
WeightFactor weight)
ProcedureManager.WorkArea.cleanupHandlers.code - The clean code that needs to be removed.weight - The priority of the code. The lower the weight, the higher priority.handle getHandleForFunction(handle phandle, java.lang.String fname)
phandle - The procedure handle where the function was defined.fname - The function's legacy name.void addProcedure(handle h, java.lang.String name, boolean persistent)
h handle as a persistent procedure. Used by
ControlFlowOps.invokePersistent(character, Object...) and
ControlFlowOps.invokePersistentSet(String, handle, Object...).h - The procedure handle to be added to the list of persistent
procedures.name - The name of this procedure, used at the RUN statement.persistent - Flag indicating if this is a persistent procedure.void addProcedure(handle h, java.lang.String name, boolean persistent, boolean singleton, boolean singleRun, boolean legacyClass)
h handle as a persistent procedure. Used by
ControlFlowOps.invokePersistent(character, Object...) and
ControlFlowOps.invokePersistentSet(String, handle, Object...).h - The procedure handle to be added to the list of persistent
procedures.name - The name of this procedure, used at the RUN statement.persistent - Flag indicating if this is a persistent procedure.singleton - Flag indicating if this is a singleton procedure.singleRun - Flag indicating if this is a single-run procedure.legacyClass - Set to true if the method is called as a result of
legacy class initialization. false otherwise.void addProcedure(handle h, java.lang.String name, boolean singleton, boolean singleRun)
h handle as a persistent procedure. Used by
ControlFlowOps.invokePersistent(character, Object...) and
ControlFlowOps.invokePersistentSet(String, handle, Object...).h - The procedure handle to be added to the list of persistent
procedures.name - The name of this procedure, used at the RUN statement.singleton - Flag indicating if this is a singleton procedure.singleRun - Flag indicating if this is a singleton procedure.java.lang.String getStackEntry(int idx)
idx - The stack entry index.null if outside of stack.java.lang.String currentInternalEntry()
ProcedureManager.WorkArea.internalEntryStack.boolean delete(java.lang.Object referent,
boolean letStaleProcedure)
referent - The persistent procedure instance to be deleted.letStaleProcedure - Flag to indicate if the procedure should go in an stale state.true if this procedure handle can be deleted.boolean isRoutineLevelUndoThrow()
boolean isBlockLevelUndoThrow()
void markRoutineLevelUndoThrow()
void markBlockLevelUndoThrow()
void addScopeable(java.lang.Object referent,
Scopeable target)
Scopeable to be processed when the persistent procedure gets
deleted.referent - The external program.target - The Scopeable instance which needs delayed notification.void addFinalizable(java.lang.Object referent,
Finalizable target)
Finalizable to be processed when the persistent procedure gets
deleted.referent - The external program.target - The Finalizable instance which needs delayed notification.java.util.List<handle> getSuperProcedures(java.lang.Object referent)
referent - An instance of an converted external procedure class.java.util.List<handle> getSuperProcedures()