public class BlockManager
extends java.lang.Object
TransactionManager
extensively to implement the proper behavior.Modifier and Type | Class and Description |
---|---|
static class |
BlockManager.Action
Encodes the possible actions in response to given conditions.
|
static class |
BlockManager.Condition
Encodes the possible condition types.
|
private static class |
BlockManager.ContextContainer
Simple container that stores and returns a context-local instance of
the global work area.
|
private static class |
BlockManager.Disposition
Encodes the possible responses to a flow control event.
|
(package private) static class |
BlockManager.ReturnType
Encodes the possible types of return statement.
|
private static class |
BlockManager.StatsHelper
Server-wide hook that gets called at initialization and termination.
|
static class |
BlockManager.TransactionType
Encodes the possible levels of transaction support for each block.
|
private static class |
BlockManager.WorkArea
Stores global data relating to the state of the current context's
blocks.
|
Modifier and Type | Field and Description |
---|---|
private static java.util.Map<java.lang.String,java.lang.Integer> |
stats
Stores execution statistics.
|
private static java.lang.String |
STATS_FILE
Directory entry to define an execution statistics output file.
|
private static java.lang.String |
statsFile
Output filename in which to write execution statistics.
|
private static BlockManager.ContextContainer |
work
Stores context-local state variables.
|
Constructor and Description |
---|
BlockManager() |
Modifier and Type | Method and Description |
---|---|
private static boolean |
checkJavaCall(java.lang.Object referent,
java.lang.String legacyName,
Block block,
boolean function,
boolean externalProgram,
boolean persistentProc)
Check if we this call is a java-style call or is from
ControlFlowOps APIs. |
private static int |
conditionMask(BlockManager.Condition cond)
Matches a
Condition with its corresponding
TransactionManager constant. |
private static int |
convertTransType(BlockManager.TransactionType ttype,
BlockType btype)
Helper to convert between this class' enum and the corresponding
TransactionManager constants. |
private static void |
coreLoop(BlockType btype,
boolean next,
BlockManager.TransactionType lvl,
java.lang.String[] enclosing,
java.lang.String label,
ToClause to,
LogicalOp expr,
OnPhrase[] on,
OnPhrase[] defOn,
Block block)
Execute a DO or REPEAT loop with all possible loop constructs, the
given configuration and with default properties.
|
private static int |
decodeConditions(OnPhrase[] user,
OnPhrase[] def)
Encode the conditions supported by this block as a bitfield.
|
static boolean |
deferredLeave(java.lang.String label)
Detect if there is a pending leave for the block named by the given
label.
|
private static boolean |
deferredLeaveWorker(BlockManager.WorkArea wa,
java.lang.String label)
Detect if there is a pending leave for the block named by the given
label.
|
static boolean |
deferredNext(java.lang.String label)
Detect if there is a pending next for the block named by the given
label.
|
private static boolean |
deferredNextWorker(BlockManager.WorkArea wa,
java.lang.String label)
Detect if there is a pending next for the block named by the given
label.
|
static void |
doBlock(BlockManager.TransactionType lvl,
java.lang.String[] enclosing,
java.lang.String label,
Block block)
Execute a simple DO block (not a loop) with the given configuration
and no user-defined or default properties.
|
static void |
doBlock(BlockManager.TransactionType lvl,
java.lang.String[] enclosing,
java.lang.String label,
OnPhrase[] on,
Block block)
Execute a simple DO block (not a loop) with the given configuration
and no default properties.
|
static void |
doBlock(BlockManager.TransactionType lvl,
java.lang.String label,
Block block)
Execute a simple DO block (not a loop) with the given configuration
and no user-defined or default properties.
|
static void |
doBlock(BlockManager.TransactionType lvl,
java.lang.String label,
OnPhrase[] on,
Block block)
Execute a simple DO block (not a loop) with the given configuration
and no default properties.
|
static void |
doBlock(java.lang.String[] enclosing,
java.lang.String label,
Block block)
Execute a simple DO block (not a loop) with the given configuration
and no default properties.
|
static void |
doBlock(java.lang.String[] enclosing,
java.lang.String label,
OnPhrase[] on,
Block block)
Execute a simple DO block (not a loop) with the given configuration
and no default properties.
|
static void |
doBlock(java.lang.String label,
Block block)
Execute a simple DO block (not a loop) with the given configuration
and no default properties.
|
static void |
doBlock(java.lang.String label,
OnPhrase[] on,
Block block)
Execute a simple DO block (not a loop) with the given configuration
and no default properties.
|
private static void |
doBlockWorker(BlockManager.TransactionType lvl,
java.lang.String[] enclosing,
java.lang.String label,
OnPhrase[] on,
Block block)
Execute a simple DO block (not a loop) with the given configuration
and no default properties.
|
private static void |
doLoopWorker(BlockManager.TransactionType lvl,
java.lang.String[] enclosing,
java.lang.String label,
ToClause to,
LogicalOp expr,
OnPhrase[] on,
Block block)
Execute a DO WHILE expression, DO TO var = val1 to val2 by val3 or DO
TO WHILE expression loop with the given configuration and no default
properties.
|
static void |
doTo(BlockManager.TransactionType lvl,
java.lang.String[] enclosing,
java.lang.String label,
ToClause to,
Block block)
Execute a DO TO expression loop with the given configuration
and no user-defined or default properties.
|
static void |
doTo(BlockManager.TransactionType lvl,
java.lang.String[] enclosing,
java.lang.String label,
ToClause to,
OnPhrase[] on,
Block block)
Execute a DO TO expression loop with the given configuration
and no default properties.
|
static void |
doTo(BlockManager.TransactionType lvl,
java.lang.String label,
ToClause to,
Block block)
Execute a DO TO expression loop with the given configuration
and no user-defined or default properties.
|
static void |
doTo(BlockManager.TransactionType lvl,
java.lang.String label,
ToClause to,
OnPhrase[] on,
Block block)
Execute a DO TO expression loop with the given configuration
and no default properties.
|
static void |
doTo(java.lang.String[] enclosing,
java.lang.String label,
ToClause to,
Block block)
Execute a DO TO expression loop with the given configuration
and no default properties.
|
static void |
doTo(java.lang.String[] enclosing,
java.lang.String label,
ToClause to,
OnPhrase[] on,
Block block)
Execute a DO TO expression loop with the given configuration
and no default properties.
|
static void |
doTo(java.lang.String label,
ToClause to,
Block block)
Execute a DO TO expression loop with the given configuration
and no default properties.
|
static void |
doTo(java.lang.String label,
ToClause to,
OnPhrase[] on,
Block block)
Execute a DO TO expression loop with the given configuration
and no default properties.
|
static void |
doToWhile(BlockManager.TransactionType lvl,
java.lang.String[] enclosing,
java.lang.String label,
ToClause to,
LogicalOp expr,
Block block)
Execute a DO WHILE expression, DO TO var = val1 to val2 by val3 or DO
TO WHILE expression loop with the given configuration and no default
properties.
|
static void |
doToWhile(BlockManager.TransactionType lvl,
java.lang.String[] enclosing,
java.lang.String label,
ToClause to,
LogicalOp expr,
OnPhrase[] on,
Block block)
Execute a DO WHILE expression, DO TO var = val1 to val2 by val3 or DO
TO WHILE expression loop with the given configuration and no default
properties.
|
static void |
doToWhile(BlockManager.TransactionType lvl,
java.lang.String label,
ToClause to,
LogicalOp expr,
Block block)
Execute a DO WHILE expression, DO TO var = val1 to val2 by val3 or DO
TO WHILE expression loop with the given configuration and no default
properties.
|
static void |
doToWhile(BlockManager.TransactionType lvl,
java.lang.String label,
ToClause to,
LogicalOp expr,
OnPhrase[] on,
Block block)
Execute a DO WHILE expression, DO TO var = val1 to val2 by val3 or DO
TO WHILE expression loop with the given configuration and no default
properties.
|
static void |
doToWhile(java.lang.String[] enclosing,
java.lang.String label,
ToClause to,
LogicalOp expr,
Block block)
Execute a DO WHILE expression, DO TO var = val1 to val2 by val3 or DO
TO WHILE expression loop with the given configuration and no default
properties.
|
static void |
doToWhile(java.lang.String[] enclosing,
java.lang.String label,
ToClause to,
LogicalOp expr,
OnPhrase[] on,
Block block)
Execute a DO WHILE expression, DO TO var = val1 to val2 by val3 or DO
TO WHILE expression loop with the given configuration and no default
properties.
|
static void |
doToWhile(java.lang.String label,
ToClause to,
LogicalOp expr,
Block block)
Execute a DO WHILE expression, DO TO var = val1 to val2 by val3 or DO
TO WHILE expression loop with the given configuration and no default
properties.
|
static void |
doToWhile(java.lang.String label,
ToClause to,
LogicalOp expr,
OnPhrase[] on,
Block block)
Execute a DO WHILE expression, DO TO var = val1 to val2 by val3 or DO
TO WHILE expression loop with the given configuration and no default
properties.
|
static void |
doWhile(BlockManager.TransactionType lvl,
java.lang.String[] enclosing,
java.lang.String label,
LogicalOp expr,
Block block)
Execute a DO WHILE expression loop with the given configuration
and no user-defined or default properties.
|
static void |
doWhile(BlockManager.TransactionType lvl,
java.lang.String[] enclosing,
java.lang.String label,
LogicalOp expr,
OnPhrase[] on,
Block block)
Execute a DO WHILE expression loop with the given configuration
and no default properties.
|
static void |
doWhile(BlockManager.TransactionType lvl,
java.lang.String label,
LogicalOp expr,
Block block)
Execute a DO WHILE expression loop with the given configuration
and no user-defined or default properties.
|
static void |
doWhile(BlockManager.TransactionType lvl,
java.lang.String label,
LogicalOp expr,
OnPhrase[] on,
Block block)
Execute a DO WHILE expression loop with the given configuration
and no default properties.
|
static void |
doWhile(java.lang.String[] enclosing,
java.lang.String label,
LogicalOp expr,
Block block)
Execute a DO WHILE expression loop with the given configuration
and no default properties.
|
static void |
doWhile(java.lang.String[] enclosing,
java.lang.String label,
LogicalOp expr,
OnPhrase[] on,
Block block)
Execute a DO WHILE expression loop with the given configuration
and no default properties.
|
static void |
doWhile(java.lang.String label,
LogicalOp expr,
Block block)
Execute a DO WHILE expression loop with the given configuration
and no default properties.
|
static void |
doWhile(java.lang.String label,
LogicalOp expr,
OnPhrase[] on,
Block block)
Execute a DO WHILE expression loop with the given configuration
and no default properties.
|
private static void |
dumpExecutionStats()
Generates a CSV file with the recorded execution statistics.
|
private static void |
editingBlock(CommonFrame frame,
FrameElement[] widgets,
EventList goOn,
java.lang.String[] enclosing,
java.lang.String label,
Block block,
int etype)
Execute the given editing block for the given frame and widget list
with
UPDATE semanics. |
(package private) static BlockManager.Condition |
exceptionToCondition(ConditionException ce)
Translate exception into
BlockManager.Condition code. |
private static void |
executeStateManaged(java.lang.Runnable code)
Preserve certain work area state before running the given code and then restore that state
afterward.
|
private static void |
exitTopLevel(BlockManager.WorkArea wa)
Common worker to cleanup top-level block state just before exiting.
|
static <T extends BaseDataType> |
extentFunction(java.lang.Class<T> cls,
Block block)
Execute the given function block with a default transaction level of
TransactionType.SUB , which returns a dynamic extent value. |
static <T extends BaseDataType> |
extentFunction(java.lang.Class<T> cls,
BlockManager.TransactionType lvl,
Block block)
Execute the given function block with the given transaction level, which returns a
dynamic extent value.
|
static <T extends BaseDataType> |
extentFunction(java.lang.Class<T> cls,
int extent,
Block block)
Execute the given function block with a default transaction level of
TransactionType.SUB , which returns an extent value. |
static <T extends BaseDataType> |
extentFunction(java.lang.Class<T> cls,
int extent,
BlockManager.TransactionType lvl,
Block block)
Execute the given function block with the given transaction level, which returns an extent
value.
|
static <T extends BaseDataType> |
extentFunction(java.lang.String legacyName,
java.lang.Class<T> cls,
Block block)
Execute the given function block with a default transaction level of
TransactionType.SUB , which returns a dynamic extent value. |
static <T extends BaseDataType> |
extentFunction(java.lang.String legacyName,
java.lang.Class<T> cls,
BlockManager.TransactionType lvl,
Block block)
Execute the given function block with the given transaction level, which returns a
dynamic extent value.
|
static <T extends BaseDataType> |
extentFunction(java.lang.String legacyName,
java.lang.Class<T> cls,
int extent,
Block block)
Execute the given function block with a default transaction level of
TransactionType.SUB , which returns an extent value. |
static <T extends BaseDataType> |
extentFunction(java.lang.String legacyName,
java.lang.Class<T> cls,
int extent,
BlockManager.TransactionType lvl,
Block block)
Execute the given function block with the given transaction level, which returns an extent
value.
|
static void |
externalProcedure(Block block)
Execute the given external procedure block with a default transaction level of
TransactionType.SUB . |
static void |
externalProcedure(BlockManager.TransactionType lvl,
Block block)
Execute the given external procedure block with the given transaction level.
|
static void |
externalProcedure(java.lang.Object referent,
Block block)
Execute the given external procedure block with a default transaction level of
TransactionType.SUB . |
static void |
externalProcedure(java.lang.Object referent,
BlockManager.TransactionType lvl,
Block block)
Execute the given external procedure block with the given transaction level.
|
static void |
forBlock(BlockManager.TransactionType lvl,
java.lang.String[] enclosing,
java.lang.String label,
Block block)
Execute a FOR FIRST or FOR LAST block with the given configuration
and default properties.
|
static void |
forBlock(BlockManager.TransactionType lvl,
java.lang.String[] enclosing,
java.lang.String label,
OnPhrase[] on,
Block block)
Execute a FOR FIRST or FOR LAST block with the given configuration
and default properties.
|
static void |
forBlock(BlockManager.TransactionType lvl,
java.lang.String label,
Block block)
Execute a FOR FIRST or FOR LAST block with the given configuration
and default properties.
|
static void |
forBlock(BlockManager.TransactionType lvl,
java.lang.String label,
OnPhrase[] on,
Block block)
Execute a FOR FIRST or FOR LAST block with the given configuration
and default properties.
|
static void |
forBlock(java.lang.String[] enclosing,
java.lang.String label,
Block block)
Execute a FOR FIRST or FOR LAST block with the given configuration
and default properties.
|
static void |
forBlock(java.lang.String[] enclosing,
java.lang.String label,
OnPhrase[] on,
Block block)
Execute a FOR FIRST or FOR LAST block with the given configuration
and default properties.
|
static void |
forBlock(java.lang.String label,
Block block)
Execute a FOR FIRST or FOR LAST block with the given configuration
and default properties.
|
static void |
forBlock(java.lang.String label,
OnPhrase[] on,
Block block)
Execute a FOR FIRST or FOR LAST block with the given configuration
and default properties.
|
static void |
forBlockTo(BlockManager.TransactionType lvl,
java.lang.String[] enclosing,
java.lang.String label,
ToClause to,
Block block)
Execute a FOR FIRST/LAST TO block with the given configuration
and no user-defined or default properties.
|
static void |
forBlockTo(BlockManager.TransactionType lvl,
java.lang.String[] enclosing,
java.lang.String label,
ToClause to,
OnPhrase[] on,
Block block)
Execute a FOR FIRST/LAST TO block with the given configuration
and default properties.
|
static void |
forBlockTo(BlockManager.TransactionType lvl,
java.lang.String label,
ToClause to,
Block block)
Execute a FOR FIRST/LAST TO block with the given configuration
and no user-defined or default properties.
|
static void |
forBlockTo(BlockManager.TransactionType lvl,
java.lang.String label,
ToClause to,
OnPhrase[] on,
Block block)
Execute a FOR FIRST/LAST TO block with the given configuration
and default properties.
|
static void |
forBlockTo(java.lang.String[] enclosing,
java.lang.String label,
ToClause to,
Block block)
Execute a FOR FIRST/LAST TO block with the given configuration
and default properties.
|
static void |
forBlockTo(java.lang.String[] enclosing,
java.lang.String label,
ToClause to,
OnPhrase[] on,
Block block)
Execute a FOR FIRST/LAST TO block with the given configuration
and default properties.
|
static void |
forBlockTo(java.lang.String label,
ToClause to,
Block block)
Execute a FOR FIRST/LAST TO block with the given configuration
and default properties.
|
static void |
forBlockTo(java.lang.String label,
ToClause to,
OnPhrase[] on,
Block block)
Execute a FOR FIRST/LAST TO block with the given configuration
and default properties.
|
static void |
forBlockToWhile(BlockManager.TransactionType lvl,
java.lang.String[] enclosing,
java.lang.String label,
ToClause to,
LogicalOp expr,
Block block)
Execute a FOR FIRST/LAST WHILE block, FOR FIRST/LAST TO block
or FOR FIRST/LAST TO WHILE block with the given configuration and
default properties.
|
static void |
forBlockToWhile(BlockManager.TransactionType lvl,
java.lang.String[] enclosing,
java.lang.String label,
ToClause to,
LogicalOp expr,
OnPhrase[] on,
Block block)
Execute a FOR FIRST/LAST WHILE block, FOR FIRST/LAST TO block
or FOR FIRST/LAST TO WHILE block with the given configuration and
default properties.
|
static void |
forBlockToWhile(BlockManager.TransactionType lvl,
java.lang.String label,
ToClause to,
LogicalOp expr,
Block block)
Execute a FOR FIRST/LAST WHILE block, FOR FIRST/LAST TO block
or FOR FIRST/LAST TO WHILE block with the given configuration and
default properties.
|
static void |
forBlockToWhile(BlockManager.TransactionType lvl,
java.lang.String label,
ToClause to,
LogicalOp expr,
OnPhrase[] on,
Block block)
Execute a FOR FIRST/LAST WHILE block, FOR FIRST/LAST TO block
or FOR FIRST/LAST TO WHILE block with the given configuration and
default properties.
|
static void |
forBlockToWhile(java.lang.String[] enclosing,
java.lang.String label,
ToClause to,
LogicalOp expr,
Block block)
Execute a FOR FIRST/LAST WHILE block, FOR FIRST/LAST TO block
or FOR FIRST/LAST TO WHILE block with the given configuration and
default properties.
|
static void |
forBlockToWhile(java.lang.String[] enclosing,
java.lang.String label,
ToClause to,
LogicalOp expr,
OnPhrase[] on,
Block block)
Execute a FOR FIRST/LAST WHILE block, FOR FIRST/LAST TO block
or FOR FIRST/LAST TO WHILE block with the given configuration and
default properties.
|
static void |
forBlockToWhile(java.lang.String label,
ToClause to,
LogicalOp expr,
Block block)
Execute a FOR FIRST/LAST WHILE block, FOR FIRST/LAST TO block
or FOR FIRST/LAST TO WHILE block with the given configuration and
default properties.
|
static void |
forBlockToWhile(java.lang.String label,
ToClause to,
LogicalOp expr,
OnPhrase[] on,
Block block)
Execute a FOR FIRST/LAST WHILE block, FOR FIRST/LAST TO block
or FOR FIRST/LAST TO WHILE block with the given configuration and
default properties.
|
static void |
forBlockWhile(BlockManager.TransactionType lvl,
java.lang.String[] enclosing,
java.lang.String label,
LogicalOp expr,
Block block)
Execute a FOR FIRST/LAST WHILE block with the given configuration
and no user-defined or default properties.
|
static void |
forBlockWhile(BlockManager.TransactionType lvl,
java.lang.String[] enclosing,
java.lang.String label,
LogicalOp expr,
OnPhrase[] on,
Block block)
Execute a FOR FIRST/LAST WHILE block with the given configuration
and default properties.
|
static void |
forBlockWhile(BlockManager.TransactionType lvl,
java.lang.String label,
LogicalOp expr,
Block block)
Execute a FOR FIRST/LAST WHILE block with the given configuration
and no user-defined or default properties.
|
static void |
forBlockWhile(BlockManager.TransactionType lvl,
java.lang.String label,
LogicalOp expr,
OnPhrase[] on,
Block block)
Execute a FOR FIRST/LAST WHILE block with the given configuration
and default properties.
|
static void |
forBlockWhile(java.lang.String[] enclosing,
java.lang.String label,
LogicalOp expr,
Block block)
Execute a FOR FIRST/LAST WHILE block with the given configuration
and default properties.
|
static void |
forBlockWhile(java.lang.String[] enclosing,
java.lang.String label,
LogicalOp expr,
OnPhrase[] on,
Block block)
Execute a FOR FIRST/LAST WHILE block with the given configuration
and default properties.
|
static void |
forBlockWhile(java.lang.String label,
LogicalOp expr,
Block block)
Execute a FOR FIRST/LAST WHILE block with the given configuration
and default properties.
|
static void |
forBlockWhile(java.lang.String label,
LogicalOp expr,
OnPhrase[] on,
Block block)
Execute a FOR FIRST/LAST WHILE block with the given configuration
and default properties.
|
private static void |
forBlockWorker(BlockManager.TransactionType lvl,
java.lang.String[] enclosing,
java.lang.String label,
ToClause to,
LogicalOp expr,
OnPhrase[] on,
Block block)
Execute a FOR FIRST/LAST WHILE block, FOR FIRST/LAST TO block
or FOR FIRST/LAST TO WHILE block with the given configuration and
with default properties.
|
static void |
forEach(BlockManager.TransactionType lvl,
java.lang.String[] enclosing,
java.lang.String label,
Block block)
Execute a FOR EACH loop with the given configuration
and default properties.
|
static void |
forEach(BlockManager.TransactionType lvl,
java.lang.String[] enclosing,
java.lang.String label,
OnPhrase[] on,
Block block)
Execute a FOR EACH loop with the given configuration
and default properties.
|
static void |
forEach(BlockManager.TransactionType lvl,
java.lang.String label,
Block block)
Execute a FOR EACH loop with the given configuration
and default properties.
|
static void |
forEach(BlockManager.TransactionType lvl,
java.lang.String label,
OnPhrase[] on,
Block block)
Execute a FOR EACH loop with the given configuration
and default properties.
|
static void |
forEach(java.lang.String[] enclosing,
java.lang.String label,
Block block)
Execute a FOR EACH loop with the given configuration
and default properties.
|
static void |
forEach(java.lang.String[] enclosing,
java.lang.String label,
OnPhrase[] on,
Block block)
Execute a FOR EACH loop with the given configuration
and default properties.
|
static void |
forEach(java.lang.String label,
Block block)
Execute a FOR EACH loop with the given configuration
and default properties.
|
static void |
forEach(java.lang.String label,
OnPhrase[] on,
Block block)
Execute a FOR EACH loop with the given configuration
and default properties.
|
static void |
forEachTo(BlockManager.TransactionType lvl,
java.lang.String[] enclosing,
java.lang.String label,
ToClause to,
Block block)
Execute a FOR EACH TO block with the given configuration
and no user-defined or default properties.
|
static void |
forEachTo(BlockManager.TransactionType lvl,
java.lang.String[] enclosing,
java.lang.String label,
ToClause to,
OnPhrase[] on,
Block block)
Execute a FOR EACH TO block with the given configuration
and default properties.
|
static void |
forEachTo(BlockManager.TransactionType lvl,
java.lang.String label,
ToClause to,
Block block)
Execute a FOR EACH TO block with the given configuration
and no user-defined or default properties.
|
static void |
forEachTo(BlockManager.TransactionType lvl,
java.lang.String label,
ToClause to,
OnPhrase[] on,
Block block)
Execute a FOR EACH TO block with the given configuration
and default properties.
|
static void |
forEachTo(java.lang.String[] enclosing,
java.lang.String label,
ToClause to,
Block block)
Execute a FOR EACH TO block with the given configuration
and default properties.
|
static void |
forEachTo(java.lang.String[] enclosing,
java.lang.String label,
ToClause to,
OnPhrase[] on,
Block block)
Execute a FOR EACH TO block with the given configuration
and default properties.
|
static void |
forEachTo(java.lang.String label,
ToClause to,
Block block)
Execute a FOR EACH TO block with the given configuration
and default properties.
|
static void |
forEachTo(java.lang.String label,
ToClause to,
OnPhrase[] on,
Block block)
Execute a FOR EACH TO block with the given configuration
and default properties.
|
static void |
forEachToWhile(BlockManager.TransactionType lvl,
java.lang.String[] enclosing,
java.lang.String label,
ToClause to,
LogicalOp expr,
Block block)
Execute a FOR EACH WHILE block, FOR EACH TO block
or FOR EACH TO WHILE block with the given configuration and
default properties.
|
static void |
forEachToWhile(BlockManager.TransactionType lvl,
java.lang.String[] enclosing,
java.lang.String label,
ToClause to,
LogicalOp expr,
OnPhrase[] on,
Block block)
Execute a FOR EACH WHILE block, FOR EACH TO block
or FOR EACH TO WHILE block with the given configuration and
default properties.
|
static void |
forEachToWhile(BlockManager.TransactionType lvl,
java.lang.String label,
ToClause to,
LogicalOp expr,
Block block)
Execute a FOR EACH WHILE block, FOR EACH TO block
or FOR EACH TO WHILE block with the given configuration and
default properties.
|
static void |
forEachToWhile(BlockManager.TransactionType lvl,
java.lang.String label,
ToClause to,
LogicalOp expr,
OnPhrase[] on,
Block block)
Execute a FOR EACH WHILE block, FOR EACH TO block
or FOR EACH TO WHILE block with the given configuration and
default properties.
|
static void |
forEachToWhile(java.lang.String[] enclosing,
java.lang.String label,
ToClause to,
LogicalOp expr,
Block block)
Execute a FOR EACH WHILE block, FOR EACH TO block
or FOR EACH TO WHILE block with the given configuration and
default properties.
|
static void |
forEachToWhile(java.lang.String[] enclosing,
java.lang.String label,
ToClause to,
LogicalOp expr,
OnPhrase[] on,
Block block)
Execute a FOR EACH WHILE block, FOR EACH TO block
or FOR EACH TO WHILE block with the given configuration and
default properties.
|
static void |
forEachToWhile(java.lang.String label,
ToClause to,
LogicalOp expr,
Block block)
Execute a FOR EACH WHILE block, FOR EACH TO block
or FOR EACH TO WHILE block with the given configuration and
default properties.
|
static void |
forEachToWhile(java.lang.String label,
ToClause to,
LogicalOp expr,
OnPhrase[] on,
Block block)
Execute a FOR EACH WHILE block, FOR EACH TO block
or FOR EACH TO WHILE block with the given configuration and
default properties.
|
static void |
forEachWhile(BlockManager.TransactionType lvl,
java.lang.String[] enclosing,
java.lang.String label,
LogicalOp expr,
Block block)
Execute a FOR EACH WHILE block with the given configuration
and no user-defined or default properties.
|
static void |
forEachWhile(BlockManager.TransactionType lvl,
java.lang.String[] enclosing,
java.lang.String label,
LogicalOp expr,
OnPhrase[] on,
Block block)
Execute a FOR EACH WHILE block with the given configuration
and default properties.
|
static void |
forEachWhile(BlockManager.TransactionType lvl,
java.lang.String label,
LogicalOp expr,
Block block)
Execute a FOR EACH WHILE block with the given configuration
and no user-defined or default properties.
|
static void |
forEachWhile(BlockManager.TransactionType lvl,
java.lang.String label,
LogicalOp expr,
OnPhrase[] on,
Block block)
Execute a FOR EACH WHILE block with the given configuration
and default properties.
|
static void |
forEachWhile(java.lang.String[] enclosing,
java.lang.String label,
LogicalOp expr,
Block block)
Execute a FOR EACH WHILE block with the given configuration
and default properties.
|
static void |
forEachWhile(java.lang.String[] enclosing,
java.lang.String label,
LogicalOp expr,
OnPhrase[] on,
Block block)
Execute a FOR EACH WHILE block with the given configuration
and default properties.
|
static void |
forEachWhile(java.lang.String label,
LogicalOp expr,
Block block)
Execute a FOR EACH WHILE block with the given configuration
and default properties.
|
static void |
forEachWhile(java.lang.String label,
LogicalOp expr,
OnPhrase[] on,
Block block)
Execute a FOR EACH WHILE block with the given configuration
and default properties.
|
private static void |
forEachWorker(BlockManager.TransactionType lvl,
java.lang.String[] enclosing,
java.lang.String label,
ToClause to,
LogicalOp expr,
OnPhrase[] on,
Block block)
Execute a FOR EACH, FOR EACH WHILE block, FOR EACH TO block
or FOR EACH TO WHILE block with the given configuration and
with default properties.
|
static <T extends BaseDataType> |
function(java.lang.Class<T> cls,
Block block)
Execute the given function block with a default transaction level of
TransactionType.SUB . |
static <T extends BaseDataType> |
function(java.lang.Class<T> cls,
BlockManager.TransactionType lvl,
Block block)
Execute the given function block with the given transaction level.
|
static <T extends BaseDataType> |
function(java.lang.String legacyName,
java.lang.Class<T> cls,
Block block)
Execute the given function block with a default transaction level of
TransactionType.SUB . |
static <T extends BaseDataType> |
function(java.lang.String legacyName,
java.lang.Class<T> cls,
BlockManager.TransactionType lvl,
Block block)
Execute the given function block with the given transaction level.
|
private static <T extends BaseDataType> |
functionBlock(java.lang.String legacyName,
BlockManager.TransactionType level,
Block block,
java.lang.Class<T> retType,
int extent)
Execute the given function block with the given transaction level.
|
(package private) static BlockManager.ReturnType |
getReturnType()
Returns the type of return processing from the nearest top-level block.
|
static void |
internalProcedure(Block block)
Execute the given internal procedure block with a default transaction
level of
TransactionType.SUB . |
static void |
internalProcedure(BlockManager.TransactionType lvl,
Block block)
Execute the given internal procedure block with the given transaction
level.
|
private static boolean |
isNormal(java.lang.Throwable thr,
OnPhrase[] on)
Detect if an exception represents a normal or abnormal condition.
|
static void |
leave()
Break out of the nearest enclosing block.
|
static void |
leave(java.lang.String label)
Break out of the block associated with the given label.
|
static void |
markPendingDynCall()
Mark the start of a pending dynamic call, via
ControlFlowOps . |
private static OnPhrase |
matchCondition(OnPhrase[] user,
OnPhrase[] def,
BlockManager.Condition cond)
Find a matching condition in the user-defined on phrases or the default
on phrases for the block and return the on phrase that is matched.
|
private static boolean |
matches(java.lang.String[] list,
java.lang.String entry)
Given a list of strings, detect if the given entry matches (case
sensitively) any of the elements in the list.
|
private static boolean |
needsIterate(ToClause to,
LogicalOp expr)
Test the given expressions to determine if the calling loop should
iterate or if the loop should exit.
|
static void |
next()
Continue (iterate) the nearest enclosing block.
|
static void |
next(java.lang.String label)
Continue (iterate) the block associated with the given label.
|
private static void |
processBody(Block block,
OnPhrase[] on)
Implements the body of all blocks or loops that are not related to the
FOR language statement. |
private static BlockManager.Disposition |
processCondition(OnPhrase[] user,
OnPhrase[] def,
ConditionException ce,
java.lang.String[] enclosing,
java.lang.String label)
Core worker to handle all the possible behavior in response to a
condition being raised in an inner block (DO, REPEAT or FOR).
|
private static boolean |
processForBody(Block block,
ToClause to,
LogicalOp expr,
OnPhrase[] on)
Implements the body of all
FOR language statement blocks or
loops. |
static void |
promptForEditing(CommonFrame frame,
FrameElement[] widgets,
EventList goOn,
java.lang.String[] enclosing,
java.lang.String label,
Block block)
Execute the given editing block for the given frame and widget list
with
PROMPT-FOR semanics. |
static void |
promptForEditing(CommonFrame frame,
FrameElement[] widgets,
EventList goOn,
java.lang.String label,
Block block)
Execute the given editing block for the given frame and widget list
with
PROMPT-FOR semanics. |
static void |
promptForEditing(CommonFrame frame,
FrameElement[] widgets,
java.lang.String[] enclosing,
java.lang.String label,
Block block)
Execute the given editing block for the given frame and widget list
with
PROMPT-FOR semanics. |
static void |
promptForEditing(CommonFrame frame,
FrameElement[] widgets,
java.lang.String label,
Block block)
Execute the given editing block for the given frame and widget list
with
PROMPT-FOR semanics. |
static void |
quit()
Raise the QUIT condition and cause control to be transferred to the
nearest enclosing block that handles the associated condition.
|
private static void |
recordExecutionStats(BlockType type,
Block block)
Update block execution statistics for the given block instance.
|
static void |
repeat(BlockManager.TransactionType lvl,
java.lang.String[] enclosing,
java.lang.String label,
Block block)
Execute a simple REPEAT (infinite loop) with the given configuration
and default properties.
|
static void |
repeat(BlockManager.TransactionType lvl,
java.lang.String[] enclosing,
java.lang.String label,
OnPhrase[] on,
Block block)
Execute a simple REPEAT (infinite loop) with the given configuration
and default properties.
|
static void |
repeat(BlockManager.TransactionType lvl,
java.lang.String label,
Block block)
Execute a simple REPEAT (infinite loop) with the given configuration
and default properties.
|
static void |
repeat(BlockManager.TransactionType lvl,
java.lang.String label,
OnPhrase[] on,
Block block)
Execute a simple REPEAT (infinite loop) with the given configuration
and default properties.
|
static void |
repeat(java.lang.String[] enclosing,
java.lang.String label,
Block block)
Execute a simple REPEAT (infinite loop) with the given configuration
and default properties.
|
static void |
repeat(java.lang.String[] enclosing,
java.lang.String label,
OnPhrase[] on,
Block block)
Execute a simple REPEAT (infinite loop) with the given configuration
and default properties.
|
static void |
repeat(java.lang.String label,
Block block)
Execute a simple REPEAT (infinite loop) with the given configuration
and default properties.
|
static void |
repeat(java.lang.String label,
OnPhrase[] on,
Block block)
Execute a simple REPEAT (infinite loop) with the given configuration
and default properties.
|
static void |
repeatTo(BlockManager.TransactionType lvl,
java.lang.String[] enclosing,
java.lang.String label,
ToClause to,
Block block)
Execute a REPEAT TO expression loop with the given configuration
and no user-defined or default properties.
|
static void |
repeatTo(BlockManager.TransactionType lvl,
java.lang.String[] enclosing,
java.lang.String label,
ToClause to,
OnPhrase[] on,
Block block)
Execute a REPEAT TO expression loop with the given configuration
and default properties.
|
static void |
repeatTo(BlockManager.TransactionType lvl,
java.lang.String label,
ToClause to,
Block block)
Execute a REPEAT TO expression loop with the given configuration
and no user-defined or default properties.
|
static void |
repeatTo(BlockManager.TransactionType lvl,
java.lang.String label,
ToClause to,
OnPhrase[] on,
Block block)
Execute a REPEAT TO expression loop with the given configuration
and default properties.
|
static void |
repeatTo(java.lang.String[] enclosing,
java.lang.String label,
ToClause to,
Block block)
Execute a REPEAT TO expression loop with the given configuration
and default properties.
|
static void |
repeatTo(java.lang.String[] enclosing,
java.lang.String label,
ToClause to,
OnPhrase[] on,
Block block)
Execute a REPEAT TO expression loop with the given configuration
and default properties.
|
static void |
repeatTo(java.lang.String label,
ToClause to,
Block block)
Execute a REPEAT TO expression loop with the given configuration
and default properties.
|
static void |
repeatTo(java.lang.String label,
ToClause to,
OnPhrase[] on,
Block block)
Execute a REPEAT TO expression loop with the given configuration
and default properties.
|
static void |
repeatToWhile(BlockManager.TransactionType lvl,
java.lang.String[] enclosing,
java.lang.String label,
ToClause to,
LogicalOp expr,
Block block)
Execute a REPEAT WHILE expression, REPEAT TO var = val1 to val2 by val3
or REPEAT TO WHILE expression loop with the given configuration and
default properties.
|
static void |
repeatToWhile(BlockManager.TransactionType lvl,
java.lang.String[] enclosing,
java.lang.String label,
ToClause to,
LogicalOp expr,
OnPhrase[] on,
Block block)
Execute a REPEAT WHILE expression, REPEAT TO var = val1 to val2 by val3
or REPEAT TO WHILE expression loop with the given configuration and
default properties.
|
static void |
repeatToWhile(BlockManager.TransactionType lvl,
java.lang.String label,
ToClause to,
LogicalOp expr,
Block block)
Execute a REPEAT WHILE expression, REPEAT TO var = val1 to val2 by val3
or REPEAT TO WHILE expression loop with the given configuration and
default properties.
|
static void |
repeatToWhile(BlockManager.TransactionType lvl,
java.lang.String label,
ToClause to,
LogicalOp expr,
OnPhrase[] on,
Block block)
Execute a REPEAT WHILE expression, REPEAT TO var = val1 to val2 by val3
or REPEAT TO WHILE expression loop with the given configuration and
default properties.
|
static void |
repeatToWhile(java.lang.String[] enclosing,
java.lang.String label,
ToClause to,
LogicalOp expr,
Block block)
Execute a REPEAT WHILE expression, REPEAT TO var = val1 to val2 by val3
or REPEAT TO WHILE expression loop with the given configuration and
default properties.
|
static void |
repeatToWhile(java.lang.String[] enclosing,
java.lang.String label,
ToClause to,
LogicalOp expr,
OnPhrase[] on,
Block block)
Execute a REPEAT WHILE expression, REPEAT TO var = val1 to val2 by val3
or REPEAT TO WHILE expression loop with the given configuration and
default properties.
|
static void |
repeatToWhile(java.lang.String label,
ToClause to,
LogicalOp expr,
Block block)
Execute a REPEAT WHILE expression, REPEAT TO var = val1 to val2 by val3
or REPEAT TO WHILE expression loop with the given configuration and
default properties.
|
static void |
repeatToWhile(java.lang.String label,
ToClause to,
LogicalOp expr,
OnPhrase[] on,
Block block)
Execute a REPEAT WHILE expression, REPEAT TO var = val1 to val2 by val3
or REPEAT TO WHILE expression loop with the given configuration and
default properties.
|
static void |
repeatWhile(BlockManager.TransactionType lvl,
java.lang.String[] enclosing,
java.lang.String label,
LogicalOp expr,
Block block)
Execute a REPEAT WHILE expression loop with the given configuration
and no user-defined or default properties.
|
static void |
repeatWhile(BlockManager.TransactionType lvl,
java.lang.String[] enclosing,
java.lang.String label,
LogicalOp expr,
OnPhrase[] on,
Block block)
Execute a REPEAT WHILE expression loop with the given configuration
and default properties.
|
static void |
repeatWhile(BlockManager.TransactionType lvl,
java.lang.String label,
LogicalOp expr,
Block block)
Execute a REPEAT WHILE expression loop with the given configuration
and no user-defined or default properties.
|
static void |
repeatWhile(BlockManager.TransactionType lvl,
java.lang.String label,
LogicalOp expr,
OnPhrase[] on,
Block block)
Execute a REPEAT WHILE expression loop with the given configuration
and default properties.
|
static void |
repeatWhile(java.lang.String[] enclosing,
java.lang.String label,
LogicalOp expr,
Block block)
Execute a REPEAT WHILE expression loop with the given configuration
and default properties.
|
static void |
repeatWhile(java.lang.String[] enclosing,
java.lang.String label,
LogicalOp expr,
OnPhrase[] on,
Block block)
Execute a REPEAT WHILE expression loop with the given configuration
and default properties.
|
static void |
repeatWhile(java.lang.String label,
LogicalOp expr,
Block block)
Execute a REPEAT WHILE expression loop with the given configuration
and default properties.
|
static void |
repeatWhile(java.lang.String label,
LogicalOp expr,
OnPhrase[] on,
Block block)
Execute a REPEAT WHILE expression loop with the given configuration
and default properties.
|
private static void |
repeatWorker(BlockManager.TransactionType lvl,
java.lang.String[] enclosing,
java.lang.String label,
ToClause to,
LogicalOp expr,
OnPhrase[] on,
Block block)
Execute a REPEAT, REPEAT WHILE expression, REPEAT TO var = val1 to val2
by val3 or REPEAT TO WHILE expression loop with the given configuration
and with default properties.
|
static void |
returnConsume()
Return from the nearest enclosing top-level block.
|
static void |
returnConsume(character val)
Return from the nearest enclosing top-level block, consuming any pending
event processing.
|
static void |
returnConsume(java.lang.String val)
Return from the nearest enclosing top-level block, consuming any pending
event processing.
|
static void |
returnError()
Return from the nearest enclosing top-level block.
|
static void |
returnError(character val)
Return from the nearest enclosing top-level block.
|
static void |
returnError(java.lang.String val)
Return from the nearest enclosing top-level block.
|
static void |
returnExtentNormal(BaseDataType[] val)
Return from the nearest enclosing top-level block.
|
static void |
returnNormal()
Return from the nearest enclosing top-level block.
|
static void |
returnNormal(BaseDataType val)
Return from the nearest enclosing top-level block.
|
static void |
returnNormal(boolean val)
Return from the nearest enclosing top-level block.
|
static void |
returnNormal(double val)
Return from the nearest enclosing top-level block.
|
static void |
returnNormal(int val)
Return from the nearest enclosing top-level block.
|
static void |
returnNormal(long val)
Return from the nearest enclosing top-level block.
|
static void |
returnNormal(java.lang.String val)
Return from the nearest enclosing top-level block.
|
static void |
returnNormal(WrappedResource val)
Return from the nearest enclosing top-level block.
|
private static void |
returnWorker(BaseDataType[] val,
BlockManager.ReturnType rtype)
Return from the nearest enclosing top-level block.
|
private static void |
returnWorker(BaseDataType val,
BlockManager.ReturnType rtype)
Return from the nearest enclosing top-level block.
|
static void |
setEditing(CommonFrame frame,
FrameElement[] widgets,
EventList goOn,
java.lang.String[] enclosing,
java.lang.String label,
Block block)
Execute the given editing block for the given frame and widget list
with
SET semanics. |
static void |
setEditing(CommonFrame frame,
FrameElement[] widgets,
EventList goOn,
java.lang.String label,
Block block)
Execute the given editing block for the given frame and widget list
with
SET semanics. |
static void |
setEditing(CommonFrame frame,
FrameElement[] widgets,
java.lang.String[] enclosing,
java.lang.String label,
Block block)
Execute the given editing block for the given frame and widget list
with
SET semanics. |
static void |
setEditing(CommonFrame frame,
FrameElement[] widgets,
java.lang.String label,
Block block)
Execute the given editing block for the given frame and widget list
with
SET semanics. |
private static void |
setFuncReturn(BaseDataType[] bdt,
BlockManager.WorkArea wa,
BlockType nearest)
Set the return value for the nearest enclosing function.
|
static void |
stop()
Raise the STOP condition and cause control to be transferred to the
nearest enclosing block that handles the associated condition.
|
private static BlockManager.Disposition |
testLeave(java.lang.String[] enclosing,
java.lang.String label)
Detect if the leave event is referencing this block OR if it is
referencing a directly enclosing block which is not managed by this
class.
|
private static BlockManager.Disposition |
testNext(java.lang.String[] enclosing,
java.lang.String label)
Detect if the next event is referencing this block OR if it is
referencing a directly enclosing block which is not managed by this
class.
|
(package private) static void |
topLevelBlock(java.lang.Object referent,
BlockManager.TransactionType lvl,
BlockType btype,
Block block)
Execute the given top-level block with the given transaction level.
|
private static BlockType |
topLevelType(BlockManager.WorkArea wa)
Accesses the type of the nearest enclosing top level block.
|
static void |
undoLeave()
Trigger a rollback of the current block and then leave that block.
|
static void |
undoLeave(java.lang.String label)
Trigger a rollback of the given block and then leave that block.
|
static void |
undoLeave(java.lang.String undo,
java.lang.String leave)
Trigger a rollback of the given block and then leave that block or a
more enclosing block.
|
static void |
undoNext()
Trigger a rollback of the current block and then iterate that block.
|
static void |
undoNext(java.lang.String label)
Trigger a rollback of the given block and then iterate that block.
|
static void |
undoNext(java.lang.String undo,
java.lang.String next)
Trigger a rollback of the given block and then iterate that block or
a more enclosing block.
|
static void |
undoRetry()
Trigger a rollback of the current block and then retry that block.
|
static void |
undoRetry(java.lang.String label)
Trigger a rollback of the given block and then retry that block.
|
static void |
undoRetryTopLevel()
Trigger a rollback of the nearest enclosing top-level block and then
retry that block.
|
static void |
undoReturnConsume()
Trigger a rollback of the current block and then return from the nearest
enclosing top-level block.
|
static void |
undoReturnConsume(character val)
Trigger a rollback of the current block and then return from the nearest
enclosing top-level block, consuming any pending event processing.
|
static void |
undoReturnConsume(java.lang.String label)
Trigger a rollback of the given block and then return from the nearest
enclosing top-level block.
|
static void |
undoReturnConsume(java.lang.String label,
character val)
Trigger a rollback of the given block and then return from the nearest
enclosing top-level block, consuming any pending event processing.
|
static void |
undoReturnConsume(java.lang.String label,
java.lang.String val)
Trigger a rollback of the given block and then return from the nearest
enclosing top-level block, consuming any pending event processing.
|
static void |
undoReturnConsumeTopLevel()
Trigger a rollback of and then return from the nearest
enclosing top-level block.
|
static void |
undoReturnConsumeTopLevel(character val)
Trigger a rollback of and then return from the nearest
enclosing top-level block, consuming any pending event processing.
|
static void |
undoReturnConsumeTopLevel(java.lang.String val)
Trigger a rollback of and then return from the nearest
enclosing top-level block, consuming any pending event processing.
|
static void |
undoReturnError()
Trigger a rollback of the current block and then return from the nearest
enclosing top-level block.
|
static void |
undoReturnError(character val)
Trigger a rollback of the current block and then return from the nearest
enclosing top-level block.
|
static void |
undoReturnError(java.lang.String label)
Trigger a rollback of the given block and then return from the nearest
enclosing top-level block.
|
static void |
undoReturnError(java.lang.String label,
character val)
Trigger a rollback of the given block and then return from the nearest
enclosing top-level block.
|
static void |
undoReturnError(java.lang.String label,
java.lang.String val)
Trigger a rollback of the given block and then return from the nearest
enclosing top-level block.
|
static void |
undoReturnErrorTopLevel()
Trigger a rollback of and then return from the nearest
enclosing top-level block.
|
static void |
undoReturnErrorTopLevel(character val)
Trigger a rollback of and then return from the nearest
enclosing top-level block.
|
static void |
undoReturnErrorTopLevel(java.lang.String val)
Trigger a rollback of and then return from the nearest
enclosing top-level block.
|
static void |
undoReturnNormal()
Trigger a rollback of the current block and then return from the nearest
enclosing top-level block.
|
static void |
undoReturnNormal(BaseDataType val)
Trigger a rollback of the current block and then return from the nearest
enclosing top-level block.
|
static void |
undoReturnNormal(boolean val)
Trigger a rollback of the current block and then return from the nearest
enclosing top-level block.
|
static void |
undoReturnNormal(double val)
Trigger a rollback of the current block and then return from the nearest
enclosing top-level block.
|
static void |
undoReturnNormal(int val)
Trigger a rollback of the current block and then return from the nearest
enclosing top-level block.
|
static void |
undoReturnNormal(java.lang.String label)
Trigger a rollback of the given block and then return from the nearest
enclosing top-level block.
|
static void |
undoReturnNormal(java.lang.String label,
BaseDataType val)
Trigger a rollback of the given block and then return from the nearest
enclosing top-level block.
|
static void |
undoReturnNormal(java.lang.String label,
boolean val)
Trigger a rollback of the given block and then return from the nearest
enclosing top-level block.
|
static void |
undoReturnNormal(java.lang.String label,
double val)
Trigger a rollback of the given block and then return from the nearest
enclosing top-level block.
|
static void |
undoReturnNormal(java.lang.String label,
int val)
Trigger a rollback of the given block and then return from the nearest
enclosing top-level block.
|
static void |
undoReturnNormal(java.lang.String label,
java.lang.String val)
Trigger a rollback of the given block and then return from the nearest
enclosing top-level block.
|
static void |
undoReturnNormalTopLevel()
Trigger a rollback and then return from the nearest enclosing top-level
block.
|
static void |
undoReturnNormalTopLevel(BaseDataType val)
Trigger a rollback of the nearest enclosing top-level block and then
return from that block.
|
static void |
undoReturnNormalTopLevel(boolean val)
Trigger a rollback of the nearest enclosing top-level block and then
return from that block.
|
static void |
undoReturnNormalTopLevel(double val)
Trigger a rollback of the nearest enclosing top-level block and then
return from that block.
|
static void |
undoReturnNormalTopLevel(int val)
Trigger a rollback of the nearest enclosing top-level block and then
return from that block.
|
static void |
undoReturnNormalTopLevel(java.lang.String val)
Trigger a rollback of the nearest enclosing top-level block and then
return from that block.
|
static void |
updateEditing(CommonFrame frame,
FrameElement[] widgets,
EventList goOn,
java.lang.String[] enclosing,
java.lang.String label,
Block block)
Execute the given editing block for the given frame and widget list
with
UPDATE semanics. |
static void |
updateEditing(CommonFrame frame,
FrameElement[] widgets,
EventList goOn,
java.lang.String label,
Block block)
Execute the given editing block for the given frame and widget list
with
UPDATE semanics. |
static void |
updateEditing(CommonFrame frame,
FrameElement[] widgets,
java.lang.String[] enclosing,
java.lang.String label,
Block block)
Execute the given editing block for the given frame and widget list
with
UPDATE semanics. |
static void |
updateEditing(CommonFrame frame,
FrameElement[] widgets,
java.lang.String label,
Block block)
Execute the given editing block for the given frame and widget list
with
UPDATE semanics. |
private static final BlockManager.ContextContainer work
private static final java.lang.String STATS_FILE
private static java.lang.String statsFile
private static java.util.Map<java.lang.String,java.lang.Integer> stats
public static void externalProcedure(Block block)
TransactionType.SUB
.
This form may only be used with block instances that are anonymous inner classes since the containing business logic class can be calculated using reflection. Any usage with lambdas will fail!
block
- The code to execute.public static void externalProcedure(BlockManager.TransactionType lvl, Block block)
This form may only be used with block instances that are anonymous inner classes since the containing business logic class can be calculated using reflection. Any usage with lambdas will fail!
lvl
- The transaction level for the given block.block
- The code to execute.public static void externalProcedure(java.lang.Object referent, Block block)
TransactionType.SUB
.
This form is suitable for use with lambdas but in such a case the referent
must be non-null.
referent
- The instance of the containing business logic class from which this is being
called. If this is non-null, then block
can be an instance created
using lambdas. If null
, then block
MUST BE an
anonymous inner class of the containing business logic instance so that instance
can be calculated via reflection.block
- The code to execute.public static void externalProcedure(java.lang.Object referent, BlockManager.TransactionType lvl, Block block)
This form is suitable for use with lambdas but in such a case the referent
must be non-null.
referent
- The instance of the containing business logic class from which this is being
called. If this is non-null, then block
can be an instance created
using lambdas. If null
, then block
MUST BE an
anonymous inner class of the containing business logic instance so that instance
can be calculated via reflection.lvl
- The transaction level for the given block.block
- The code to execute.public static void internalProcedure(Block block)
TransactionType.SUB
.block
- The code to execute.public static void internalProcedure(BlockManager.TransactionType lvl, Block block)
lvl
- The transaction level for the given block.block
- The code to execute.public static <T extends BaseDataType> T function(java.lang.Class<T> cls, Block block)
TransactionType.SUB
.cls
- The function's return type.block
- The code to execute.unknown value
by default or on error.public static <T extends BaseDataType> T function(java.lang.Class<T> cls, BlockManager.TransactionType lvl, Block block)
cls
- The function's return type.lvl
- The transaction level for the given block.block
- The code to execute.unknown value
by default or on error.public static <T extends BaseDataType> T[] extentFunction(java.lang.Class<T> cls, int extent, Block block)
TransactionType.SUB
, which returns an extent value.cls
- The function's return type.extent
- The function's return extent value.block
- The code to execute.public static <T extends BaseDataType> T[] extentFunction(java.lang.Class<T> cls, int extent, BlockManager.TransactionType lvl, Block block)
cls
- The function's return type.extent
- The function's return extent value.lvl
- The transaction level for the given block.block
- The code to execute.public static <T extends BaseDataType> T[] extentFunction(java.lang.Class<T> cls, Block block)
TransactionType.SUB
, which returns a dynamic extent value.cls
- The function's return type.block
- The code to execute.public static <T extends BaseDataType> T[] extentFunction(java.lang.Class<T> cls, BlockManager.TransactionType lvl, Block block)
cls
- The function's return type.lvl
- The transaction level for the given block.block
- The code to execute.public static <T extends BaseDataType> T function(java.lang.String legacyName, java.lang.Class<T> cls, Block block)
TransactionType.SUB
.legacyName
- The legacy name associated with the function being invoked via a java-style call.
If is null
, it will be resolved by
ProcedureManager.resolveClosestMethod(java.lang.Object, boolean, boolean)
.cls
- The function's return type.block
- The code to execute.unknown value
by default or on error.public static <T extends BaseDataType> T function(java.lang.String legacyName, java.lang.Class<T> cls, BlockManager.TransactionType lvl, Block block)
legacyName
- The legacy name associated with the function being invoked via a java-style call.
If is null
, it will be resolved by
ProcedureManager.resolveClosestMethod(java.lang.Object, boolean, boolean)
.cls
- The function's return type.lvl
- The transaction level for the given block.block
- The code to execute.unknown value
by default or on error.public static <T extends BaseDataType> T[] extentFunction(java.lang.String legacyName, java.lang.Class<T> cls, int extent, Block block)
TransactionType.SUB
, which returns an extent value.legacyName
- The legacy name associated with the function being invoked via a java-style call.
If is null
, it will be resolved by
ProcedureManager.resolveClosestMethod(java.lang.Object, boolean, boolean)
.cls
- The function's return type.extent
- The function's return extent value.block
- The code to execute.public static <T extends BaseDataType> T[] extentFunction(java.lang.String legacyName, java.lang.Class<T> cls, int extent, BlockManager.TransactionType lvl, Block block)
legacyName
- The legacy name associated with the function being invoked via a java-style call.
If is null
, it will be resolved by
ProcedureManager.resolveClosestMethod(java.lang.Object, boolean, boolean)
.cls
- The function's return type.extent
- The function's return extent value.lvl
- The transaction level for the given block.block
- The code to execute.public static <T extends BaseDataType> T[] extentFunction(java.lang.String legacyName, java.lang.Class<T> cls, Block block)
TransactionType.SUB
, which returns a dynamic extent value.legacyName
- The legacy name associated with the function being invoked via a java-style call.
If is null
, it will be resolved by
ProcedureManager.resolveClosestMethod(java.lang.Object, boolean, boolean)
.cls
- The function's return type.block
- The code to execute.public static <T extends BaseDataType> T[] extentFunction(java.lang.String legacyName, java.lang.Class<T> cls, BlockManager.TransactionType lvl, Block block)
legacyName
- The legacy name associated with the function being invoked via a java-style call.
If is null
, it will be resolved by
ProcedureManager.resolveClosestMethod(java.lang.Object, boolean, boolean)
.cls
- The function's return type.lvl
- The transaction level for the given block.block
- The code to execute.public static void doBlock(java.lang.String label, Block block)
TransactionType.NONE
will be
used and there are no enclosing non-managed blocks. In addition, there
are no user-defined properties.label
- The block name of the current block.block
- The code to execute.public static void doBlock(java.lang.String[] enclosing, java.lang.String label, Block block)
TransactionType.NONE
will be
used and there are no user-defined properties.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.block
- The code to execute.public static void doBlock(BlockManager.TransactionType lvl, java.lang.String label, Block block)
lvl
- The transaction level to be honored.label
- The block name of the current block.block
- The code to execute.public static void doBlock(BlockManager.TransactionType lvl, java.lang.String[] enclosing, java.lang.String label, Block block)
lvl
- The transaction level to be honored.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.block
- The code to execute.public static void doBlock(java.lang.String label, OnPhrase[] on, Block block)
TransactionType.NONE
will be
used and there are no enclosing non-managed blocks.label
- The block name of the current block.on
- List of user-defined on phrases.block
- The code to execute.public static void doBlock(java.lang.String[] enclosing, java.lang.String label, OnPhrase[] on, Block block)
TransactionType.NONE
will be
used.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.on
- List of user-defined on phrases.block
- The code to execute.public static void doBlock(BlockManager.TransactionType lvl, java.lang.String label, OnPhrase[] on, Block block)
lvl
- The transaction level to be honored.label
- The block name of the current block.on
- List of user-defined on phrases.block
- The code to execute.public static void doBlock(BlockManager.TransactionType lvl, java.lang.String[] enclosing, java.lang.String label, OnPhrase[] on, Block block)
lvl
- The transaction level to be honored.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.on
- List of user-defined on phrases.block
- The code to execute.public static void doWhile(java.lang.String label, LogicalOp expr, Block block)
TransactionType.NONE
will be
used and there are no enclosing non-managed blocks. In addition, there
are no user-defined properties.label
- The block name of the current block.expr
- The WHILE clause that defines the loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
.block
- The code to execute.public static void doWhile(java.lang.String[] enclosing, java.lang.String label, LogicalOp expr, Block block)
TransactionType.NONE
will be
used and there are no user-defined properties.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.expr
- The WHILE clause that defines the loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
.block
- The code to execute.public static void doWhile(BlockManager.TransactionType lvl, java.lang.String label, LogicalOp expr, Block block)
lvl
- The transaction level to be honored.label
- The block name of the current block.expr
- The WHILE clause that defines the loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
.block
- The code to execute.public static void doWhile(BlockManager.TransactionType lvl, java.lang.String[] enclosing, java.lang.String label, LogicalOp expr, Block block)
lvl
- The transaction level to be honored.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.expr
- The WHILE clause that defines the loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
.block
- The code to execute.public static void doWhile(java.lang.String label, LogicalOp expr, OnPhrase[] on, Block block)
TransactionType.NONE
will be
used and there are no enclosing non-managed blocks.label
- The block name of the current block.expr
- The WHILE clause that defines the loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
.on
- List of user-defined on phrases.block
- The code to execute.public static void doWhile(java.lang.String[] enclosing, java.lang.String label, LogicalOp expr, OnPhrase[] on, Block block)
TransactionType.NONE
will be
used.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.expr
- The WHILE clause that defines the loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
.on
- List of user-defined on phrases.block
- The code to execute.public static void doWhile(BlockManager.TransactionType lvl, java.lang.String label, LogicalOp expr, OnPhrase[] on, Block block)
lvl
- The transaction level to be honored.label
- The block name of the current block.expr
- The WHILE clause that defines the loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
.on
- List of user-defined on phrases.block
- The code to execute.public static void doWhile(BlockManager.TransactionType lvl, java.lang.String[] enclosing, java.lang.String label, LogicalOp expr, OnPhrase[] on, Block block)
lvl
- The transaction level to be honored.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.expr
- The WHILE clause that defines the loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
.on
- List of user-defined on phrases.block
- The code to execute.public static void doTo(java.lang.String label, ToClause to, Block block)
TransactionType.NONE
will be
used and there are no enclosing non-managed blocks. In addition, there
are no user-defined properties.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends.block
- The code to execute.public static void doTo(java.lang.String[] enclosing, java.lang.String label, ToClause to, Block block)
TransactionType.NONE
will be
used and there are no user-defined properties.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends.block
- The code to execute.public static void doTo(BlockManager.TransactionType lvl, java.lang.String label, ToClause to, Block block)
lvl
- The transaction level to be honored.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends.block
- The code to execute.public static void doTo(BlockManager.TransactionType lvl, java.lang.String[] enclosing, java.lang.String label, ToClause to, Block block)
lvl
- The transaction level to be honored.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends.block
- The code to execute.public static void doTo(java.lang.String label, ToClause to, OnPhrase[] on, Block block)
TransactionType.NONE
will be
used and there are no enclosing non-managed blocks.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends.on
- List of user-defined on phrases.block
- The code to execute.public static void doTo(java.lang.String[] enclosing, java.lang.String label, ToClause to, OnPhrase[] on, Block block)
TransactionType.NONE
will be
used.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends.on
- List of user-defined on phrases.block
- The code to execute.public static void doTo(BlockManager.TransactionType lvl, java.lang.String label, ToClause to, OnPhrase[] on, Block block)
lvl
- The transaction level to be honored.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends.on
- List of user-defined on phrases.block
- The code to execute.public static void doTo(BlockManager.TransactionType lvl, java.lang.String[] enclosing, java.lang.String label, ToClause to, OnPhrase[] on, Block block)
lvl
- The transaction level to be honored.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends.on
- List of user-defined on phrases.block
- The code to execute.public static void doToWhile(java.lang.String label, ToClause to, LogicalOp expr, Block block)
TransactionType.NONE
will be used and there are no
enclosing non-managed blocks. In addition, there are no user-defined
properties.
label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends. If this is null
,
then a WHILE clause MUST be present to provide the condition
for maintaining the loop.expr
- The WHILE clause that defines a loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
. If this is
null
, then a TO clause MUST be present to
provide the condition for maintaining the loop.block
- The code to execute.public static void doToWhile(java.lang.String[] enclosing, java.lang.String label, ToClause to, LogicalOp expr, Block block)
TransactionType.NONE
will be used and there are no
user-defined properties.
enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends. If this is null
,
then a WHILE clause MUST be present to provide the condition
for maintaining the loop.expr
- The WHILE clause that defines a loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
. If this is
null
, then a TO clause MUST be present to
provide the condition for maintaining the loop.block
- The code to execute.public static void doToWhile(BlockManager.TransactionType lvl, java.lang.String label, ToClause to, LogicalOp expr, Block block)
There are no user-defined properties and no enclosing non-managed blocks.
lvl
- The transaction level to be honored.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends. If this is null
,
then a WHILE clause MUST be present to provide the condition
for maintaining the loop.expr
- The WHILE clause that defines a loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
. If this is
null
, then a TO clause MUST be present to
provide the condition for maintaining the loop.block
- The code to execute.public static void doToWhile(BlockManager.TransactionType lvl, java.lang.String[] enclosing, java.lang.String label, ToClause to, LogicalOp expr, Block block)
There are no user-defined properties.
lvl
- The transaction level to be honored.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends. If this is null
,
then a WHILE clause MUST be present to provide the condition
for maintaining the loop.expr
- The WHILE clause that defines a loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
. If this is
null
, then a TO clause MUST be present to
provide the condition for maintaining the loop.block
- The code to execute.public static void doToWhile(java.lang.String label, ToClause to, LogicalOp expr, OnPhrase[] on, Block block)
TransactionType.NONE
will be used and there are no
enclosing non-managed blocks.
label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends. If this is null
,
then a WHILE clause MUST be present to provide the condition
for maintaining the loop.expr
- The WHILE clause that defines a loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
. If this is
null
, then a TO clause MUST be present to
provide the condition for maintaining the loop.on
- List of user-defined on phrases.block
- The code to execute.public static void doToWhile(java.lang.String[] enclosing, java.lang.String label, ToClause to, LogicalOp expr, OnPhrase[] on, Block block)
TransactionType.NONE
will be used.
enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends. If this is null
,
then a WHILE clause MUST be present to provide the condition
for maintaining the loop.expr
- The WHILE clause that defines a loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
. If this is
null
, then a TO clause MUST be present to
provide the condition for maintaining the loop.on
- List of user-defined on phrases.block
- The code to execute.public static void doToWhile(BlockManager.TransactionType lvl, java.lang.String label, ToClause to, LogicalOp expr, OnPhrase[] on, Block block)
There are no enclosing non-managed blocks.
lvl
- The transaction level to be honored.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends. If this is null
,
then a WHILE clause MUST be present to provide the condition
for maintaining the loop.expr
- The WHILE clause that defines a loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
. If this is
null
, then a TO clause MUST be present to
provide the condition for maintaining the loop.on
- List of user-defined on phrases.block
- The code to execute.public static void doToWhile(BlockManager.TransactionType lvl, java.lang.String[] enclosing, java.lang.String label, ToClause to, LogicalOp expr, OnPhrase[] on, Block block)
lvl
- The transaction level to be honored.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends. If this is null
,
then a WHILE clause MUST be present to provide the condition
for maintaining the loop.expr
- The WHILE clause that defines a loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
. If this is
null
, then a TO clause MUST be present to
provide the condition for maintaining the loop.on
- List of user-defined on phrases.block
- The code to execute.public static void repeat(java.lang.String label, Block block)
TransactionType.SUB
will be
used and there are no enclosing non-managed blocks. In addition, there
are no user-defined properties.label
- The block name of the current block.block
- The code to execute.public static void repeat(java.lang.String[] enclosing, java.lang.String label, Block block)
TransactionType.SUB
will be
used and there are no user-defined properties.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.block
- The code to execute.public static void repeat(BlockManager.TransactionType lvl, java.lang.String label, Block block)
lvl
- The transaction level to be honored.label
- The block name of the current block.block
- The code to execute.public static void repeat(BlockManager.TransactionType lvl, java.lang.String[] enclosing, java.lang.String label, Block block)
lvl
- The transaction level to be honored.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.block
- The code to execute.public static void repeat(java.lang.String label, OnPhrase[] on, Block block)
TransactionType.SUB
will be used
and there are no enclosing non-managed blocks.label
- The block name of the current block.on
- List of user-defined on phrases.block
- The code to execute.public static void repeat(java.lang.String[] enclosing, java.lang.String label, OnPhrase[] on, Block block)
TransactionType.SUB
will be used.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.on
- List of user-defined on phrases.block
- The code to execute.public static void repeat(BlockManager.TransactionType lvl, java.lang.String label, OnPhrase[] on, Block block)
lvl
- The transaction level to be honored.label
- The block name of the current block.on
- List of user-defined on phrases.block
- The code to execute.public static void repeat(BlockManager.TransactionType lvl, java.lang.String[] enclosing, java.lang.String label, OnPhrase[] on, Block block)
lvl
- The transaction level to be honored.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.on
- List of user-defined on phrases.block
- The code to execute.public static void repeatWhile(java.lang.String label, LogicalOp expr, Block block)
TransactionType.SUB
will be
used and there are no enclosing non-managed blocks. In addition, there
are no user-defined properties.label
- The block name of the current block.expr
- The WHILE clause that defines the loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
.block
- The code to execute.public static void repeatWhile(java.lang.String[] enclosing, java.lang.String label, LogicalOp expr, Block block)
TransactionType.SUB
will be
used and there are no user-defined properties.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.expr
- The WHILE clause that defines the loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
.block
- The code to execute.public static void repeatWhile(BlockManager.TransactionType lvl, java.lang.String label, LogicalOp expr, Block block)
lvl
- The transaction level to be honored.label
- The block name of the current block.expr
- The WHILE clause that defines the loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
.block
- The code to execute.public static void repeatWhile(BlockManager.TransactionType lvl, java.lang.String[] enclosing, java.lang.String label, LogicalOp expr, Block block)
lvl
- The transaction level to be honored.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.expr
- The WHILE clause that defines the loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
.block
- The code to execute.public static void repeatWhile(java.lang.String label, LogicalOp expr, OnPhrase[] on, Block block)
TransactionType.SUB
will be
used and there are no enclosing non-managed blocks.label
- The block name of the current block.expr
- The WHILE clause that defines the loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
.on
- List of user-defined on phrases.block
- The code to execute.public static void repeatWhile(java.lang.String[] enclosing, java.lang.String label, LogicalOp expr, OnPhrase[] on, Block block)
TransactionType.SUB
will be
used.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.expr
- The WHILE clause that defines the loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
.on
- List of user-defined on phrases.block
- The code to execute.public static void repeatWhile(BlockManager.TransactionType lvl, java.lang.String label, LogicalOp expr, OnPhrase[] on, Block block)
lvl
- The transaction level to be honored.label
- The block name of the current block.expr
- The WHILE clause that defines the loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
.on
- List of user-defined on phrases.block
- The code to execute.public static void repeatWhile(BlockManager.TransactionType lvl, java.lang.String[] enclosing, java.lang.String label, LogicalOp expr, OnPhrase[] on, Block block)
lvl
- The transaction level to be honored.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.expr
- The WHILE clause that defines the loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
.on
- List of user-defined on phrases.block
- The code to execute.public static void repeatTo(java.lang.String label, ToClause to, Block block)
TransactionType.SUB
will be
used and there are no enclosing non-managed blocks. In addition, there
are no user-defined properties.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends.block
- The code to execute.public static void repeatTo(java.lang.String[] enclosing, java.lang.String label, ToClause to, Block block)
TransactionType.SUB
will be
used and there are no user-defined properties.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends.block
- The code to execute.public static void repeatTo(BlockManager.TransactionType lvl, java.lang.String label, ToClause to, Block block)
lvl
- The transaction level to be honored.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends.block
- The code to execute.public static void repeatTo(BlockManager.TransactionType lvl, java.lang.String[] enclosing, java.lang.String label, ToClause to, Block block)
lvl
- The transaction level to be honored.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends.block
- The code to execute.public static void repeatTo(java.lang.String label, ToClause to, OnPhrase[] on, Block block)
TransactionType.SUB
will be
used and there are no enclosing non-managed blocks.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends.on
- List of user-defined on phrases.block
- The code to execute.public static void repeatTo(java.lang.String[] enclosing, java.lang.String label, ToClause to, OnPhrase[] on, Block block)
TransactionType.SUB
will be
used.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends.on
- List of user-defined on phrases.block
- The code to execute.public static void repeatTo(BlockManager.TransactionType lvl, java.lang.String label, ToClause to, OnPhrase[] on, Block block)
lvl
- The transaction level to be honored.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends.on
- List of user-defined on phrases.block
- The code to execute.public static void repeatTo(BlockManager.TransactionType lvl, java.lang.String[] enclosing, java.lang.String label, ToClause to, OnPhrase[] on, Block block)
lvl
- The transaction level to be honored.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends.on
- List of user-defined on phrases.block
- The code to execute.public static void repeatToWhile(java.lang.String label, ToClause to, LogicalOp expr, Block block)
TransactionType.SUB
will be used and there are no
enclosing non-managed blocks. In addition, there are no user-defined
properties.
label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends. If this is null
,
then a WHILE clause MUST be present to provide the condition
for maintaining the loop.expr
- The WHILE clause that defines a loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
. If this is
null
, then a TO clause MUST be present to
provide the condition for maintaining the loop.block
- The code to execute.public static void repeatToWhile(java.lang.String[] enclosing, java.lang.String label, ToClause to, LogicalOp expr, Block block)
TransactionType.SUB
will be used and there are no
user-defined properties.
enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends. If this is null
,
then a WHILE clause MUST be present to provide the condition
for maintaining the loop.expr
- The WHILE clause that defines a loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
. If this is
null
, then a TO clause MUST be present to
provide the condition for maintaining the loop.block
- The code to execute.public static void repeatToWhile(BlockManager.TransactionType lvl, java.lang.String label, ToClause to, LogicalOp expr, Block block)
There are no user-defined properties and no enclosing non-managed blocks.
lvl
- The transaction level to be honored.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends. If this is null
,
then a WHILE clause MUST be present to provide the condition
for maintaining the loop.expr
- The WHILE clause that defines a loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
. If this is
null
, then a TO clause MUST be present to
provide the condition for maintaining the loop.block
- The code to execute.public static void repeatToWhile(BlockManager.TransactionType lvl, java.lang.String[] enclosing, java.lang.String label, ToClause to, LogicalOp expr, Block block)
There are no user-defined properties.
lvl
- The transaction level to be honored.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends. If this is null
,
then a WHILE clause MUST be present to provide the condition
for maintaining the loop.expr
- The WHILE clause that defines a loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
. If this is
null
, then a TO clause MUST be present to
provide the condition for maintaining the loop.block
- The code to execute.public static void repeatToWhile(java.lang.String label, ToClause to, LogicalOp expr, OnPhrase[] on, Block block)
TransactionType.SUB
will be used and there are no
enclosing non-managed blocks.
label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends. If this is null
,
then a WHILE clause MUST be present to provide the condition
for maintaining the loop.expr
- The WHILE clause that defines a loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
. If this is
null
, then a TO clause MUST be present to
provide the condition for maintaining the loop.on
- List of user-defined on phrases.block
- The code to execute.public static void repeatToWhile(java.lang.String[] enclosing, java.lang.String label, ToClause to, LogicalOp expr, OnPhrase[] on, Block block)
TransactionType.SUB
will be used.
enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends. If this is null
,
then a WHILE clause MUST be present to provide the condition
for maintaining the loop.expr
- The WHILE clause that defines a loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
. If this is
null
, then a TO clause MUST be present to
provide the condition for maintaining the loop.on
- List of user-defined on phrases.block
- The code to execute.public static void repeatToWhile(BlockManager.TransactionType lvl, java.lang.String label, ToClause to, LogicalOp expr, OnPhrase[] on, Block block)
There are no enclosing non-managed blocks.
lvl
- The transaction level to be honored.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends. If this is null
,
then a WHILE clause MUST be present to provide the condition
for maintaining the loop.expr
- The WHILE clause that defines a loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
. If this is
null
, then a TO clause MUST be present to
provide the condition for maintaining the loop.on
- List of user-defined on phrases.block
- The code to execute.public static void repeatToWhile(BlockManager.TransactionType lvl, java.lang.String[] enclosing, java.lang.String label, ToClause to, LogicalOp expr, OnPhrase[] on, Block block)
lvl
- The transaction level to be honored.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends. If this is null
,
then a WHILE clause MUST be present to provide the condition
for maintaining the loop.expr
- The WHILE clause that defines a loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
. If this is
null
, then a TO clause MUST be present to
provide the condition for maintaining the loop.on
- List of user-defined on phrases.block
- The code to execute.public static void forBlock(java.lang.String label, Block block)
TransactionType.SUB
will be
used and there are no enclosing non-managed blocks. In addition, there
are no user-defined properties.
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
label
- The block name of the current block.block
- The code to execute.public static void forBlock(java.lang.String[] enclosing, java.lang.String label, Block block)
TransactionType.SUB
will be
used and there are no user-defined properties.
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.block
- The code to execute.public static void forBlock(BlockManager.TransactionType lvl, java.lang.String label, Block block)
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
lvl
- The transaction level to be honored.label
- The block name of the current block.block
- The code to execute.public static void forBlock(BlockManager.TransactionType lvl, java.lang.String[] enclosing, java.lang.String label, Block block)
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
lvl
- The transaction level to be honored.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.block
- The code to execute.public static void forBlock(java.lang.String label, OnPhrase[] on, Block block)
TransactionType.SUB
will be used
and there are no enclosing non-managed blocks.
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
label
- The block name of the current block.on
- List of user-defined on phrases.block
- The code to execute.public static void forBlock(java.lang.String[] enclosing, java.lang.String label, OnPhrase[] on, Block block)
TransactionType.SUB
will be used.
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.on
- List of user-defined on phrases.block
- The code to execute.public static void forBlock(BlockManager.TransactionType lvl, java.lang.String label, OnPhrase[] on, Block block)
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
lvl
- The transaction level to be honored.label
- The block name of the current block.on
- List of user-defined on phrases.block
- The code to execute.public static void forBlock(BlockManager.TransactionType lvl, java.lang.String[] enclosing, java.lang.String label, OnPhrase[] on, Block block)
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
lvl
- The transaction level to be honored.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.on
- List of user-defined on phrases.block
- The code to execute.public static void forBlockWhile(java.lang.String label, LogicalOp expr, Block block)
TransactionType.SUB
will be
used and there are no enclosing non-managed blocks. In addition, there
are no user-defined properties.
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
label
- The block name of the current block.expr
- The WHILE clause that defines a block condition. This
expression is evaluated before the block body is about to
be entered. The block body will be entered unless the
expression evaluates to false
.block
- The code to execute.public static void forBlockWhile(java.lang.String[] enclosing, java.lang.String label, LogicalOp expr, Block block)
TransactionType.SUB
will be
used and there are no user-defined properties.
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.expr
- The WHILE clause that defines a block condition. This
expression is evaluated before the block body is about to
be entered. The block body will be entered unless the
expression evaluates to false
.block
- The code to execute.public static void forBlockWhile(BlockManager.TransactionType lvl, java.lang.String label, LogicalOp expr, Block block)
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
lvl
- The transaction level to be honored.label
- The block name of the current block.expr
- The WHILE clause that defines a block condition. This
expression is evaluated before the block body is about to
be entered. The block body will be entered unless the
expression evaluates to false
.block
- The code to execute.public static void forBlockWhile(BlockManager.TransactionType lvl, java.lang.String[] enclosing, java.lang.String label, LogicalOp expr, Block block)
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
lvl
- The transaction level to be honored.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.expr
- The WHILE clause that defines a block condition. This
expression is evaluated before the block body is about to
be entered. The block body will be entered unless the
expression evaluates to false
.block
- The code to execute.public static void forBlockWhile(java.lang.String label, LogicalOp expr, OnPhrase[] on, Block block)
TransactionType.SUB
will be
used and there are no enclosing non-managed blocks.label
- The block name of the current block.expr
- The WHILE clause that defines a block condition. This
expression is evaluated before the block body is about to
be entered. The block body will be entered unless the
expression evaluates to false
.on
- List of user-defined on phrases.block
- The code to execute.public static void forBlockWhile(java.lang.String[] enclosing, java.lang.String label, LogicalOp expr, OnPhrase[] on, Block block)
TransactionType.SUB
will be
used.
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.expr
- The WHILE clause that defines a block condition. This
expression is evaluated before the block body is about to
be entered. The block body will be entered unless the
expression evaluates to false
.on
- List of user-defined on phrases.block
- The code to execute.public static void forBlockWhile(BlockManager.TransactionType lvl, java.lang.String label, LogicalOp expr, OnPhrase[] on, Block block)
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
lvl
- The transaction level to be honored.label
- The block name of the current block.expr
- The WHILE clause that defines a block condition. This
expression is evaluated before the block body is about to
be entered. The block body will be entered unless the
expression evaluates to false
.on
- List of user-defined on phrases.block
- The code to execute.public static void forBlockWhile(BlockManager.TransactionType lvl, java.lang.String[] enclosing, java.lang.String label, LogicalOp expr, OnPhrase[] on, Block block)
lvl
- The transaction level to be honored.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.expr
- The WHILE clause that defines a block condition. This
expression is evaluated before the block body is about to
be entered. The block body will be entered unless the
expression evaluates to false
.on
- List of user-defined on phrases.block
- The code to execute.public static void forBlockTo(java.lang.String label, ToClause to, Block block)
TransactionType.SUB
will be
used and there are no enclosing non-managed blocks. In addition, there
are no user-defined properties.
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
label
- The block name of the current block.to
- The TO clause that defines the block condition. The block
control variable is initialized before entering the block.
Before the block body is entered, the control variable is
compared to the termination value (which is dynamically
resolved at that moment). if the termination condition is
met, the block is never entered.block
- The code to execute.public static void forBlockTo(java.lang.String[] enclosing, java.lang.String label, ToClause to, Block block)
TransactionType.SUB
will be
used and there are no user-defined properties.
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.to
- The TO clause that defines the block condition. The block
control variable is initialized before entering the block.
Before the block body is entered, the control variable is
compared to the termination value (which is dynamically
resolved at that moment). if the termination condition is
met, the block is never entered.block
- The code to execute.public static void forBlockTo(BlockManager.TransactionType lvl, java.lang.String label, ToClause to, Block block)
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
lvl
- The transaction level to be honored.label
- The block name of the current block.to
- The TO clause that defines the block condition. The block
control variable is initialized before entering the block.
Before the block body is entered, the control variable is
compared to the termination value (which is dynamically
resolved at that moment). if the termination condition is
met, the block is never entered.block
- The code to execute.public static void forBlockTo(BlockManager.TransactionType lvl, java.lang.String[] enclosing, java.lang.String label, ToClause to, Block block)
lvl
- The transaction level to be honored.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.to
- The TO clause that defines the block condition. The block
control variable is initialized before entering the block.
Before the block body is entered, the control variable is
compared to the termination value (which is dynamically
resolved at that moment). if the termination condition is
met, the block is never entered.block
- The code to execute.public static void forBlockTo(java.lang.String label, ToClause to, OnPhrase[] on, Block block)
TransactionType.SUB
will be
used and there are no enclosing non-managed blocks.
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
label
- The block name of the current block.to
- The TO clause that defines the block condition. The block
control variable is initialized before entering the block.
Before the block body is entered, the control variable is
compared to the termination value (which is dynamically
resolved at that moment). if the termination condition is
met, the block is never entered.on
- List of user-defined on phrases.block
- The code to execute.public static void forBlockTo(java.lang.String[] enclosing, java.lang.String label, ToClause to, OnPhrase[] on, Block block)
TransactionType.SUB
will be
used.
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.to
- The TO clause that defines the block condition. The block
control variable is initialized before entering the block.
Before the block body is entered, the control variable is
compared to the termination value (which is dynamically
resolved at that moment). if the termination condition is
met, the block is never entered.on
- List of user-defined on phrases.block
- The code to execute.public static void forBlockTo(BlockManager.TransactionType lvl, java.lang.String label, ToClause to, OnPhrase[] on, Block block)
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
lvl
- The transaction level to be honored.label
- The block name of the current block.to
- The TO clause that defines the block condition. The block
control variable is initialized before entering the block.
Before the block body is entered, the control variable is
compared to the termination value (which is dynamically
resolved at that moment). if the termination condition is
met, the block is never entered.on
- List of user-defined on phrases.block
- The code to execute.public static void forBlockTo(BlockManager.TransactionType lvl, java.lang.String[] enclosing, java.lang.String label, ToClause to, OnPhrase[] on, Block block)
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
lvl
- The transaction level to be honored.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.to
- The TO clause that defines the block condition. The block
control variable is initialized before entering the block.
Before the block body is entered, the control variable is
compared to the termination value (which is dynamically
resolved at that moment). if the termination condition is
met, the block is never entered.on
- List of user-defined on phrases.block
- The code to execute.public static void forBlockToWhile(java.lang.String label, ToClause to, LogicalOp expr, Block block)
TransactionType.SUB
will be used and there are no
enclosing non-managed blocks. In addition, there are no user-defined
properties.
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
label
- The block name of the current block.to
- The TO clause that defines the block condition. The block
control variable is initialized before entering the block.
Before the block body is entered, the control variable is
compared to the termination value (which is dynamically
resolved at that moment). if the termination condition is
met, the block is never entered.expr
- The WHILE clause that defines a block condition. This
expression is evaluated before the block body is about to
be entered. The block body will be entered unless the
expression evaluates to false
.block
- The code to execute.public static void forBlockToWhile(java.lang.String[] enclosing, java.lang.String label, ToClause to, LogicalOp expr, Block block)
TransactionType.SUB
will be used and there are no
user-defined properties.
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.to
- The TO clause that defines the block condition. The block
control variable is initialized before entering the block.
Before the block body is entered, the control variable is
compared to the termination value (which is dynamically
resolved at that moment). if the termination condition is
met, the block is never entered.expr
- The WHILE clause that defines a block condition. This
expression is evaluated before the block body is about to
be entered. The block body will be entered unless the
expression evaluates to false
.block
- The code to execute.public static void forBlockToWhile(BlockManager.TransactionType lvl, java.lang.String label, ToClause to, LogicalOp expr, Block block)
There are no user-defined properties and no enclosing non-managed blocks.
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
lvl
- The transaction level to be honored.label
- The block name of the current block.to
- The TO clause that defines the block condition. The block
control variable is initialized before entering the block.
Before the block body is entered, the control variable is
compared to the termination value (which is dynamically
resolved at that moment). if the termination condition is
met, the block is never entered.expr
- The WHILE clause that defines a block condition. This
expression is evaluated before the block body is about to
be entered. The block body will be entered unless the
expression evaluates to false
.block
- The code to execute.public static void forBlockToWhile(BlockManager.TransactionType lvl, java.lang.String[] enclosing, java.lang.String label, ToClause to, LogicalOp expr, Block block)
There are no user-defined properties.
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
lvl
- The transaction level to be honored.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.to
- The TO clause that defines the block condition. The block
control variable is initialized before entering the block.
Before the block body is entered, the control variable is
compared to the termination value (which is dynamically
resolved at that moment). if the termination condition is
met, the block is never entered.expr
- The WHILE clause that defines a block condition. This
expression is evaluated before the block body is about to
be entered. The block body will be entered unless the
expression evaluates to false
.block
- The code to execute.public static void forBlockToWhile(java.lang.String label, ToClause to, LogicalOp expr, OnPhrase[] on, Block block)
TransactionType.SUB
will be used and there are no
enclosing non-managed blocks.
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
label
- The block name of the current block.to
- The TO clause that defines the block condition. The block
control variable is initialized before entering the block.
Before the block body is entered, the control variable is
compared to the termination value (which is dynamically
resolved at that moment). if the termination condition is
met, the block is never entered.expr
- The WHILE clause that defines a block condition. This
expression is evaluated before the block body is about to
be entered. The block body will be entered unless the
expression evaluates to false
.on
- List of user-defined on phrases.block
- The code to execute.public static void forBlockToWhile(java.lang.String[] enclosing, java.lang.String label, ToClause to, LogicalOp expr, OnPhrase[] on, Block block)
TransactionType.SUB
will be used.
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.to
- The TO clause that defines the block condition. The block
control variable is initialized before entering the block.
Before the block body is entered, the control variable is
compared to the termination value (which is dynamically
resolved at that moment). if the termination condition is
met, the block is never entered.expr
- The WHILE clause that defines a block condition. This
expression is evaluated before the block body is about to
be entered. The block body will be entered unless the
expression evaluates to false
.on
- List of user-defined on phrases.block
- The code to execute.public static void forBlockToWhile(BlockManager.TransactionType lvl, java.lang.String label, ToClause to, LogicalOp expr, OnPhrase[] on, Block block)
There are no enclosing non-managed blocks.
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
lvl
- The transaction level to be honored.label
- The block name of the current block.to
- The TO clause that defines the block condition. The block
control variable is initialized before entering the block.
Before the block body is entered, the control variable is
compared to the termination value (which is dynamically
resolved at that moment). if the termination condition is
met, the block is never entered.expr
- The WHILE clause that defines a block condition. This
expression is evaluated before the block body is about to
be entered. The block body will be entered unless the
expression evaluates to false
.on
- List of user-defined on phrases.block
- The code to execute.public static void forBlockToWhile(BlockManager.TransactionType lvl, java.lang.String[] enclosing, java.lang.String label, ToClause to, LogicalOp expr, OnPhrase[] on, Block block)
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
lvl
- The transaction level to be honored.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.to
- The TO clause that defines the block condition. The block
control variable is initialized before entering the block.
Before the block body is entered, the control variable is
compared to the termination value (which is dynamically
resolved at that moment). if the termination condition is
met, the block is never entered.expr
- The WHILE clause that defines a block condition. This
expression is evaluated before the block body is about to
be entered. The block body will be entered unless the
expression evaluates to false
.on
- List of user-defined on phrases.block
- The code to execute.public static void forEach(java.lang.String label, Block block)
TransactionType.SUB
will be
used and there are no enclosing non-managed blocks. In addition, there
are no user-defined properties.
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
label
- The block name of the current block.block
- The code to execute.public static void forEach(java.lang.String[] enclosing, java.lang.String label, Block block)
TransactionType.SUB
will be
used and there are no user-defined properties.
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.block
- The code to execute.public static void forEach(BlockManager.TransactionType lvl, java.lang.String label, Block block)
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
lvl
- The transaction level to be honored.label
- The block name of the current block.block
- The code to execute.public static void forEach(BlockManager.TransactionType lvl, java.lang.String[] enclosing, java.lang.String label, Block block)
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
lvl
- The transaction level to be honored.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.block
- The code to execute.public static void forEach(java.lang.String label, OnPhrase[] on, Block block)
TransactionType.SUB
will be used
and there are no enclosing non-managed blocks.
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
label
- The block name of the current block.on
- List of user-defined on phrases.block
- The code to execute.public static void forEach(java.lang.String[] enclosing, java.lang.String label, OnPhrase[] on, Block block)
TransactionType.SUB
will be used.
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.on
- List of user-defined on phrases.block
- The code to execute.public static void forEach(BlockManager.TransactionType lvl, java.lang.String label, OnPhrase[] on, Block block)
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
lvl
- The transaction level to be honored.label
- The block name of the current block.on
- List of user-defined on phrases.block
- The code to execute.public static void forEach(BlockManager.TransactionType lvl, java.lang.String[] enclosing, java.lang.String label, OnPhrase[] on, Block block)
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
lvl
- The transaction level to be honored.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.on
- List of user-defined on phrases.block
- The code to execute.public static void forEachWhile(java.lang.String label, LogicalOp expr, Block block)
TransactionType.SUB
will be
used and there are no enclosing non-managed blocks. In addition, there
are no user-defined properties.
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
label
- The block name of the current block.expr
- The WHILE clause that defines the loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
.block
- The code to execute.public static void forEachWhile(java.lang.String[] enclosing, java.lang.String label, LogicalOp expr, Block block)
TransactionType.SUB
will be
used and there are no user-defined properties.
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.expr
- The WHILE clause that defines the loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
.block
- The code to execute.public static void forEachWhile(BlockManager.TransactionType lvl, java.lang.String label, LogicalOp expr, Block block)
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
lvl
- The transaction level to be honored.label
- The block name of the current block.expr
- The WHILE clause that defines the loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
.block
- The code to execute.public static void forEachWhile(BlockManager.TransactionType lvl, java.lang.String[] enclosing, java.lang.String label, LogicalOp expr, Block block)
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
lvl
- The transaction level to be honored.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.expr
- The WHILE clause that defines the loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
.block
- The code to execute.public static void forEachWhile(java.lang.String label, LogicalOp expr, OnPhrase[] on, Block block)
TransactionType.SUB
will be
used and there are no enclosing non-managed blocks.
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
label
- The block name of the current block.expr
- The WHILE clause that defines the loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
.on
- List of user-defined on phrases.block
- The code to execute.public static void forEachWhile(java.lang.String[] enclosing, java.lang.String label, LogicalOp expr, OnPhrase[] on, Block block)
TransactionType.SUB
will be
used.
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.expr
- The WHILE clause that defines the loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
.on
- List of user-defined on phrases.block
- The code to execute.public static void forEachWhile(BlockManager.TransactionType lvl, java.lang.String label, LogicalOp expr, OnPhrase[] on, Block block)
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
lvl
- The transaction level to be honored.label
- The block name of the current block.expr
- The WHILE clause that defines the loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
.on
- List of user-defined on phrases.block
- The code to execute.public static void forEachWhile(BlockManager.TransactionType lvl, java.lang.String[] enclosing, java.lang.String label, LogicalOp expr, OnPhrase[] on, Block block)
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
lvl
- The transaction level to be honored.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.expr
- The WHILE clause that defines the loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
.on
- List of user-defined on phrases.block
- The code to execute.public static void forEachTo(java.lang.String label, ToClause to, Block block)
TransactionType.SUB
will be
used and there are no enclosing non-managed blocks. In addition, there
are no user-defined properties.
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends.block
- The code to execute.public static void forEachTo(java.lang.String[] enclosing, java.lang.String label, ToClause to, Block block)
TransactionType.SUB
will be
used and there are no user-defined properties.
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends.block
- The code to execute.public static void forEachTo(BlockManager.TransactionType lvl, java.lang.String label, ToClause to, Block block)
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
lvl
- The transaction level to be honored.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends.block
- The code to execute.public static void forEachTo(BlockManager.TransactionType lvl, java.lang.String[] enclosing, java.lang.String label, ToClause to, Block block)
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
lvl
- The transaction level to be honored.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends.block
- The code to execute.public static void forEachTo(java.lang.String label, ToClause to, OnPhrase[] on, Block block)
TransactionType.SUB
will be
used and there are no enclosing non-managed blocks.
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends.on
- List of user-defined on phrases.block
- The code to execute.public static void forEachTo(java.lang.String[] enclosing, java.lang.String label, ToClause to, OnPhrase[] on, Block block)
TransactionType.SUB
will be
used.
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends.on
- List of user-defined on phrases.block
- The code to execute.public static void forEachTo(BlockManager.TransactionType lvl, java.lang.String label, ToClause to, OnPhrase[] on, Block block)
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
lvl
- The transaction level to be honored.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends.on
- List of user-defined on phrases.block
- The code to execute.public static void forEachTo(BlockManager.TransactionType lvl, java.lang.String[] enclosing, java.lang.String label, ToClause to, OnPhrase[] on, Block block)
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
lvl
- The transaction level to be honored.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends.on
- List of user-defined on phrases.block
- The code to execute.public static void forEachToWhile(java.lang.String label, ToClause to, LogicalOp expr, Block block)
TransactionType.SUB
will be used and there are no
enclosing non-managed blocks. In addition, there are no user-defined
properties.
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends.expr
- The WHILE clause that defines a loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
.block
- The code to execute.public static void forEachToWhile(java.lang.String[] enclosing, java.lang.String label, ToClause to, LogicalOp expr, Block block)
TransactionType.SUB
will be used and there are no
user-defined properties.
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends.expr
- The WHILE clause that defines a loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
.block
- The code to execute.public static void forEachToWhile(BlockManager.TransactionType lvl, java.lang.String label, ToClause to, LogicalOp expr, Block block)
There are no user-defined properties and no enclosing non-managed blocks.
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
lvl
- The transaction level to be honored.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends.expr
- The WHILE clause that defines a loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
.block
- The code to execute.public static void forEachToWhile(BlockManager.TransactionType lvl, java.lang.String[] enclosing, java.lang.String label, ToClause to, LogicalOp expr, Block block)
There are no user-defined properties.
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
lvl
- The transaction level to be honored.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends.expr
- The WHILE clause that defines a loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
.block
- The code to execute.public static void forEachToWhile(java.lang.String label, ToClause to, LogicalOp expr, OnPhrase[] on, Block block)
TransactionType.SUB
will be used and there are no
enclosing non-managed blocks.
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends.expr
- The WHILE clause that defines a loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
.on
- List of user-defined on phrases.block
- The code to execute.public static void forEachToWhile(java.lang.String[] enclosing, java.lang.String label, ToClause to, LogicalOp expr, OnPhrase[] on, Block block)
TransactionType.SUB
will be used.
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends.expr
- The WHILE clause that defines a loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
.on
- List of user-defined on phrases.block
- The code to execute.public static void forEachToWhile(BlockManager.TransactionType lvl, java.lang.String label, ToClause to, LogicalOp expr, OnPhrase[] on, Block block)
There are no enclosing non-managed blocks.
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
lvl
- The transaction level to be honored.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends.expr
- The WHILE clause that defines a loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
.on
- List of user-defined on phrases.block
- The code to execute.public static void forEachToWhile(BlockManager.TransactionType lvl, java.lang.String[] enclosing, java.lang.String label, ToClause to, LogicalOp expr, OnPhrase[] on, Block block)
The record retrieval that is associated with FOR blocks or loops must be implemented directly inside the code of the block itself. This means that the caller is responsible for all query processing. The record retrieval must be done on the first line of code in the block to duplicate the Progress behavior. Note that this is required to handle all error cases and 4GL conditions properly.
lvl
- The transaction level to be honored.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends.expr
- The WHILE clause that defines a loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
.on
- List of user-defined on phrases.block
- The code to execute.public static void promptForEditing(CommonFrame frame, FrameElement[] widgets, java.lang.String label, Block block)
PROMPT-FOR
semanics. All looping, sub-transaction
properties and block properties will be honored.frame
- The frame for which the editing block is associated.widgets
- The widgets in the given frame that are to be enabled for
editing.label
- The label of the block for use in control flow statements
such as LEAVE
or NEXT
.block
- The code for the editing block body.public static void promptForEditing(CommonFrame frame, FrameElement[] widgets, java.lang.String[] enclosing, java.lang.String label, Block block)
PROMPT-FOR
semanics. All looping, sub-transaction
properties and block properties will be honored.frame
- The frame for which the editing block is associated.widgets
- The widgets in the given frame that are to be enabled for
editing.enclosing
- The list of enclosing blocks of which this class is unaware.
Any LEAVE or NEXT that references one of those enclosing
blocks must not unwind the stack further using an exception,
but rather it must return and let the caller check to see if
a deferred LEAVE or NEXT must be honored.label
- The label of the block for use in control flow statements
such as LEAVE
or NEXT
.block
- The code for the editing block body.public static void promptForEditing(CommonFrame frame, FrameElement[] widgets, EventList goOn, java.lang.String label, Block block)
PROMPT-FOR
semanics. All looping, sub-transaction
properties and block properties will be honored. The exit from the
editing block will be based on the given GO-ON
event list.frame
- The frame for which the editing block is associated.widgets
- The widgets in the given frame that are to be enabled for
editing.goOn
- The exit conditions for this loop.label
- The label of the block for use in control flow statements
such as LEAVE
or NEXT
.block
- The code for the editing block body.public static void promptForEditing(CommonFrame frame, FrameElement[] widgets, EventList goOn, java.lang.String[] enclosing, java.lang.String label, Block block)
PROMPT-FOR
semanics. All looping, sub-transaction
properties and block properties will be honored. The exit from the
editing block will be based on the given GO-ON
event list.frame
- The frame for which the editing block is associated.widgets
- The widgets in the given frame that are to be enabled for
editing.goOn
- The exit conditions for this loop.enclosing
- The list of enclosing blocks of which this class is unaware.
Any LEAVE or NEXT that references one of those enclosing
blocks must not unwind the stack further using an exception,
but rather it must return and let the caller check to see if
a deferred LEAVE or NEXT must be honored.label
- The label of the block for use in control flow statements
such as LEAVE
or NEXT
.block
- The code for the editing block body.public static void setEditing(CommonFrame frame, FrameElement[] widgets, java.lang.String label, Block block)
SET
semanics. All looping, sub-transaction
properties and block properties will be honored.frame
- The frame for which the editing block is associated.widgets
- The widgets in the given frame that are to be enabled for
editing.label
- The label of the block for use in control flow statements
such as LEAVE
or NEXT
.block
- The code for the editing block body.public static void setEditing(CommonFrame frame, FrameElement[] widgets, java.lang.String[] enclosing, java.lang.String label, Block block)
SET
semanics. All looping, sub-transaction
properties and block properties will be honored.frame
- The frame for which the editing block is associated.widgets
- The widgets in the given frame that are to be enabled for
editing.enclosing
- The list of enclosing blocks of which this class is unaware.
Any LEAVE or NEXT that references one of those enclosing
blocks must not unwind the stack further using an exception,
but rather it must return and let the caller check to see if
a deferred LEAVE or NEXT must be honored.label
- The label of the block for use in control flow statements
such as LEAVE
or NEXT
.block
- The code for the editing block body.public static void setEditing(CommonFrame frame, FrameElement[] widgets, EventList goOn, java.lang.String label, Block block)
SET
semanics. All looping, sub-transaction
properties and block properties will be honored. The exit from the
editing block will be based on the given GO-ON
event list.frame
- The frame for which the editing block is associated.widgets
- The widgets in the given frame that are to be enabled for
editing.goOn
- The exit conditions for this loop.label
- The label of the block for use in control flow statements
such as LEAVE
or NEXT
.block
- The code for the editing block body.public static void setEditing(CommonFrame frame, FrameElement[] widgets, EventList goOn, java.lang.String[] enclosing, java.lang.String label, Block block)
SET
semanics. All looping, sub-transaction
properties and block properties will be honored. The exit from the
editing block will be based on the given GO-ON
event list.frame
- The frame for which the editing block is associated.widgets
- The widgets in the given frame that are to be enabled for
editing.goOn
- The exit conditions for this loop.enclosing
- The list of enclosing blocks of which this class is unaware.
Any LEAVE or NEXT that references one of those enclosing
blocks must not unwind the stack further using an exception,
but rather it must return and let the caller check to see if
a deferred LEAVE or NEXT must be honored.label
- The label of the block for use in control flow statements
such as LEAVE
or NEXT
.block
- The code for the editing block body.public static void updateEditing(CommonFrame frame, FrameElement[] widgets, java.lang.String label, Block block)
UPDATE
semanics. All looping, sub-transaction
properties and block properties will be honored.frame
- The frame for which the editing block is associated.widgets
- The widgets in the given frame that are to be enabled for
editing.label
- The label of the block for use in control flow statements
such as LEAVE
or NEXT
.block
- The code for the editing block body.public static void updateEditing(CommonFrame frame, FrameElement[] widgets, java.lang.String[] enclosing, java.lang.String label, Block block)
UPDATE
semanics. All looping, sub-transaction
properties and block properties will be honored.frame
- The frame for which the editing block is associated.widgets
- The widgets in the given frame that are to be enabled for
editing.enclosing
- The list of enclosing blocks of which this class is unaware.
Any LEAVE or NEXT that references one of those enclosing
blocks must not unwind the stack further using an exception,
but rather it must return and let the caller check to see if
a deferred LEAVE or NEXT must be honored.label
- The label of the block for use in control flow statements
such as LEAVE
or NEXT
.block
- The code for the editing block body.public static void updateEditing(CommonFrame frame, FrameElement[] widgets, EventList goOn, java.lang.String label, Block block)
UPDATE
semanics. All looping, sub-transaction
properties and block properties will be honored. The exit from the
editing block will be based on the given GO-ON
event list.frame
- The frame for which the editing block is associated.widgets
- The widgets in the given frame that are to be enabled for
editing.goOn
- The exit conditions for this loop.label
- The label of the block for use in control flow statements
such as LEAVE
or NEXT
.block
- The code for the editing block body.public static void updateEditing(CommonFrame frame, FrameElement[] widgets, EventList goOn, java.lang.String[] enclosing, java.lang.String label, Block block)
UPDATE
semanics. All looping, sub-transaction
properties and block properties will be honored. The exit from the
editing block will be based on the given GO-ON
event list.frame
- The frame for which the editing block is associated.widgets
- The widgets in the given frame that are to be enabled for
editing.goOn
- The exit conditions for this loop.enclosing
- The list of enclosing blocks of which this class is unaware.
Any LEAVE or NEXT that references one of those enclosing
blocks must not unwind the stack further using an exception,
but rather it must return and let the caller check to see if
a deferred LEAVE or NEXT must be honored.label
- The label of the block for use in control flow statements
such as LEAVE
or NEXT
.block
- The code for the editing block body.public static void leave() throws LeaveUnwindException
LeaveUnwindException
public static void leave(java.lang.String label) throws LeaveUnwindException
label
- The name of the block to be left.LeaveUnwindException
public static boolean deferredLeave(java.lang.String label)
true
will be returned. The caller is responsible for
ensuring that the leave request is fully granted as no further state
will be available for subsequent processing.label
- The name of the block to be checked against the deferred
leave block name.true
if there is a pending deferred leave and
the name of the block to be left is the same as the given
label. If the pending deferred block name is the "" (empty
string), that is the equivalent of matching "any block" and
so the first call to this method after that is set will cause
a true
to be returned.public static void next() throws NextUnwindException
NextUnwindException
public static void next(java.lang.String label) throws NextUnwindException
label
- The name of the block to be iterated.NextUnwindException
public static boolean deferredNext(java.lang.String label)
true
will be returned. The caller is responsible for
ensuring that the next request is fully granted as no further state
will be available for subsequent processing.label
- The name of the block to be checked against the deferred
next block name.true
if there is a pending deferred next and
the name of the block to be iterated is the same as the given
label. If the pending deferred block name is the "" (empty
string), that is the equivalent of matching "any block" and
so the first call to this method after that is set will cause
a true
to be returned.public static void stop() throws StopConditionException
StopConditionException
public static void quit() throws QuitConditionException
QuitConditionException
public static void returnNormal() throws ReturnUnwindException
RETURN-VALUE
to "" (empty string) for internal/external
procedures and triggers. Leaves unknown value
as the
default return from a user-defined function.ReturnUnwindException
public static void returnNormal(WrappedResource val)
RETURN-VALUE
to the given character
value for
internal/external procedures and triggers. Saves the given value as the
return value for a user-defined function. If val
is
null
, then RETURN-VALUE
will be set to the
"" (empty string) for internal/external procedures and triggers. If
val
is null
for a user-defined function,
unknown value
will be the default return.val
- The value to return or null
. For procedures
or triggers, this must be a character
value.ReturnUnwindException
public static void returnNormal(BaseDataType val) throws ReturnUnwindException
RETURN-VALUE
to the given character
value for
internal/external procedures and triggers. Saves the given value as the
return value for a user-defined function. If val
is
null
, then RETURN-VALUE
will be set to the
"" (empty string) for internal/external procedures and triggers. If
val
is null
for a user-defined function,
unknown value
will be the default return.val
- The value to return or null
. For procedures
or triggers, this must be a character
value.ReturnUnwindException
public static void returnExtentNormal(BaseDataType[] val) throws ReturnUnwindException
RETURN-VALUE
to the given character
value for
internal/external procedures and triggers. Saves the given value as the
return value for a user-defined function. If val
is
null
, then RETURN-VALUE
will be set to the
"" (empty string) for internal/external procedures and triggers. If
val
is null
for a user-defined function,
unknown value
will be the default return.val
- The value to return or null
. For procedures
or triggers, this must be a character
value.ReturnUnwindException
public static void returnNormal(java.lang.String val) throws ReturnUnwindException
RETURN-VALUE
to the given character
value for
internal/external procedures and triggers. Saves the given value as the
return value for a user-defined function. If val
is
null
, then RETURN-VALUE
will be set to the
"" (empty string) for internal/external procedures and triggers. If
val
is null
for a user-defined function,
unknown value
will be the default return.val
- The value to return or null
. For procedures
or triggers, this must be a character
value.ReturnUnwindException
public static void returnNormal(int val) throws ReturnUnwindException
RETURN-VALUE
can only be set to a character expression.
For a user-defined function, this saves the given value as the function return value.
val
- The value to return.ReturnUnwindException
public static void returnNormal(long val) throws ReturnUnwindException
RETURN-VALUE
can only be set to a character expression.
For a user-defined function, this saves the given value as the function return value.
val
- The value to return.ReturnUnwindException
public static void returnNormal(double val) throws ReturnUnwindException
RETURN-VALUE
can only be set to a character expression.
For a user-defined function, this saves the given value as the function return value.
val
- The value to return.ReturnUnwindException
public static void returnNormal(boolean val) throws ReturnUnwindException
RETURN-VALUE
can only be set to a character expression.
For a user-defined function, this saves the given value as the function return value.
val
- The value to return.ReturnUnwindException
public static void returnConsume() throws ReturnUnwindException
RETURN-VALUE
to "" (empty string) for internal/external
procedures and triggers. Leaves unknown value
as the
default return from a user-defined function.
If executed for a trigger, force the event which caused the trigger execution to be consumed (no default processing of that event should occur).
ReturnUnwindException
public static void returnConsume(character val) throws ReturnUnwindException
RETURN-VALUE
to the given value
for internal/external procedures and triggers. Should not be called
for a user-defined function.
If executed for a trigger, force the event which caused the trigger execution to be consumed (no default processing of that event should occur).
val
- The value to return or null
.ReturnUnwindException
public static void returnConsume(java.lang.String val) throws ReturnUnwindException
RETURN-VALUE
to the given value
for internal/external procedures and triggers. Sets the given value as
the return value for a user-defined function.
If executed for a trigger, force the event which caused the trigger execution to be consumed (no default processing of that event should occur).
val
- The value to return or null
.ReturnUnwindException
public static void returnError() throws ReturnUnwindException, ErrorConditionException
RETURN-VALUE
to "" (empty string) for internal/external
procedures and triggers. Leaves unknown value
as the
default return from a user-defined function.
If silent error mode is not enabled in the caller, an ERROR
condition will be raised here and will unwind the stack (it will not
be processed, but will instead it will be rethrown) until it reaches
the caller's context at which time the error will be honored. If silent
error mode is enabled, the error data will be stored in the
ERROR-STATUS
facility and a return will be executed to
return processing to the caller without raising the error condition
(without throwing an exception).
public static void returnError(character val) throws ReturnUnwindException, ErrorConditionException
null
, this sets the default RETURN-VALUE
to "" (empty string) for internal/external procedures and triggers.
It leaves unknown value
as the default return from a
user-defined function. If the value is not null
, then
that value (if it is a character
type) will be set as the
RETURN-VALUE
for internal/external procedures and triggers.
If not null
, the value will be returned as the function
return value for user-defined functions.
If silent error mode is not enabled in the caller, an ERROR
condition will be raised here and will unwind the stack (it will not
be processed, but will instead it will be rethrown) until it reaches
the caller's context at which time the error will be honored. If silent
error mode is enabled, the error data will be stored in the
ERROR-STATUS
facility and a return will be executed to
return processing to the caller without raising the error condition
(without throwing an exception).
val
- The value to return.ReturnUnwindException
ErrorConditionException
public static void returnError(java.lang.String val) throws ReturnUnwindException, ErrorConditionException
null
, this sets the default RETURN-VALUE
to "" (empty string) for internal/external procedures and triggers.
It leaves unknown value
as the default return from a
user-defined function. If the value is not null
, then
that value will be set as the RETURN-VALUE
for internal/
external procedures and triggers. If not null
, the value
will be returned as the function return value for user-defined
functions.
If silent error mode is not enabled in the caller, an ERROR
condition will be raised here and will unwind the stack (it will not
be processed, but will instead it will be rethrown) until it reaches
the caller's context at which time the error will be honored. If silent
error mode is enabled, the error data will be stored in the
ERROR-STATUS
facility and a return will be executed to
return processing to the caller without raising the error condition
(without throwing an exception).
val
- The value to return.ReturnUnwindException
ErrorConditionException
public static void undoLeave() throws LeaveUnwindException
LeaveUnwindException
public static void undoLeave(java.lang.String label) throws LeaveUnwindException
label
- The name of the block that is the target of the undo and
leave operations.LeaveUnwindException
public static void undoLeave(java.lang.String undo, java.lang.String leave) throws LeaveUnwindException
If the current block is a variant of a FOR block, then the buffers associated with the block's query must not change the referenced record.
undo
- The name of the block that is the target of the undo
operation.leave
- The name of the block that is the target of the leave
operation.LeaveUnwindException
public static void undoNext() throws NextUnwindException
Infinite loop protection may convert the NEXT action into a LEAVE depending on runtime state.
NextUnwindException
public static void undoNext(java.lang.String label) throws NextUnwindException
Infinite loop protection may convert the NEXT action into a LEAVE depending on runtime state.
label
- The name of the block that is the target of the undo and
next operations.NextUnwindException
public static void undoNext(java.lang.String undo, java.lang.String next) throws NextUnwindException
Infinite loop protection may convert the NEXT action into a LEAVE depending on runtime state.
undo
- The name of the block that is the target of the undo
operation.next
- The name of the block that is the target of the next
operation.NextUnwindException
public static void undoRetry() throws RetryUnwindException
RetryUnwindException
public static void undoRetry(java.lang.String label) throws RetryUnwindException
label
- The name of the block that is the target of the undo and
retry operations.RetryUnwindException
public static void undoRetryTopLevel() throws RetryUnwindException
RetryUnwindException
public static void undoReturnNormal() throws ReturnUnwindException
RETURN-VALUE
to
"" (empty string) for internal/external procedures and triggers. Leaves
unknown value
as the default return from a user-defined
function.ReturnUnwindException
public static void undoReturnNormalTopLevel() throws ReturnUnwindException
RETURN-VALUE
to "" (empty string)
for internal/external procedures and triggers. Leaves
unknown value
as the default return from a user-defined
function.ReturnUnwindException
public static void undoReturnNormal(java.lang.String label) throws ReturnUnwindException
RETURN-VALUE
to
"" (empty string) for internal/external procedures and triggers. Leaves
unknown value
as the default return from a user-defined
function.label
- The name of the block that is the target of the undo
operation.ReturnUnwindException
public static void undoReturnNormal(BaseDataType val) throws ReturnUnwindException
RETURN-VALUE
to the
given character
value for internal/external procedures and
triggers. Saves the given value as the return value for a user-defined
function. If val
is null
, then
RETURN-VALUE
will be set to the "" (empty string) for
internal/external procedures and triggers. If val
is
null
for a user-defined function,
unknown value
will be the default return.val
- The value to return or null
. For procedures
or triggers, this must be a character
value.ReturnUnwindException
public static void undoReturnNormalTopLevel(BaseDataType val) throws ReturnUnwindException
RETURN-VALUE
to the
given character
value for internal/external procedures and
triggers. Saves the given value as the return value for a user-defined
function. If val
is null
, then
RETURN-VALUE
will be set to the "" (empty string) for
internal/external procedures and triggers. If val
is
null
for a user-defined function,
unknown value
will be the default return.val
- The value to return or null
. For procedures
or triggers, this must be a character
value.ReturnUnwindException
public static void undoReturnNormal(java.lang.String label, BaseDataType val) throws ReturnUnwindException
RETURN-VALUE
to the
given character
value for internal/external procedures and
triggers. Saves the given value as the return value for a user-defined
function. If val
is null
, then
RETURN-VALUE
will be set to the "" (empty string) for
internal/external procedures and triggers. If val
is
null
for a user-defined function,
unknown value
will be the default return.label
- The name of the block that is the target of the undo
operation.val
- The value to return or null
. For procedures
or triggers, this must be a character
value.ReturnUnwindException
public static void undoReturnNormal(java.lang.String label, java.lang.String val) throws ReturnUnwindException
RETURN-VALUE
to the
given character
value for internal/external procedures and
triggers. Saves the given value as the return value for a user-defined
function. If val
is null
, then
RETURN-VALUE
will be set to the "" (empty string) for
internal/external procedures and triggers. If val
is
null
for a user-defined function,
unknown value
will be the default return.label
- The name of the block that is the target of the undo
operation.val
- The value to return or null
.ReturnUnwindException
public static void undoReturnNormalTopLevel(java.lang.String val) throws ReturnUnwindException
RETURN-VALUE
to the
given character
value for internal/external procedures and
triggers. Saves the given value as the return value for a user-defined
function. If val
is null
, then
RETURN-VALUE
will be set to the "" (empty string) for
internal/external procedures and triggers. If val
is
null
for a user-defined function,
unknown value
will be the default return.val
- The value to return or null
. For procedures
or triggers, this must be a character
value.ReturnUnwindException
public static void undoReturnNormal(int val) throws ReturnUnwindException
RETURN-VALUE
can only be
set to a character expression.
For a user-defined function, this saves the given value as the function return value.
val
- The value to return.ReturnUnwindException
public static void undoReturnNormalTopLevel(int val) throws ReturnUnwindException
RETURN-VALUE
to the
given character
value for internal/external procedures and
triggers. Saves the given value as the return value for a user-defined
function. If val
is null
, then
RETURN-VALUE
will be set to the "" (empty string) for
internal/external procedures and triggers. If val
is
null
for a user-defined function,
unknown value
will be the default return.val
- The value to return.ReturnUnwindException
public static void undoReturnNormal(java.lang.String label, int val) throws ReturnUnwindException
RETURN-VALUE
can only be
set to a character expression.
For a user-defined function, this saves the given value as the function return value.
label
- The name of the block that is the target of the undo
operation.val
- The value to return.ReturnUnwindException
public static void undoReturnNormal(double val) throws ReturnUnwindException
RETURN-VALUE
can only be
set to a character expression.
For a user-defined function, this saves the given value as the function return value.
val
- The value to return.ReturnUnwindException
public static void undoReturnNormalTopLevel(double val) throws ReturnUnwindException
RETURN-VALUE
to the
given character
value for internal/external procedures and
triggers. Saves the given value as the return value for a user-defined
function. If val
is null
, then
RETURN-VALUE
will be set to the "" (empty string) for
internal/external procedures and triggers. If val
is
null
for a user-defined function,
unknown value
will be the default return.val
- The value to return.ReturnUnwindException
public static void undoReturnNormal(java.lang.String label, double val) throws ReturnUnwindException
RETURN-VALUE
can only be
set to a character expression.
For a user-defined function, this saves the given value as the function return value.
label
- The name of the block that is the target of the undo
operation.val
- The value to return.ReturnUnwindException
public static void undoReturnNormal(boolean val) throws ReturnUnwindException
RETURN-VALUE
can only be
set to a character expression.
For a user-defined function, this saves the given value as the function return value.
val
- The value to return.ReturnUnwindException
public static void undoReturnNormalTopLevel(boolean val) throws ReturnUnwindException
RETURN-VALUE
to the
given character
value for internal/external procedures and
triggers. Saves the given value as the return value for a user-defined
function. If val
is null
, then
RETURN-VALUE
will be set to the "" (empty string) for
internal/external procedures and triggers. If val
is
null
for a user-defined function,
unknown value
will be the default return.val
- The value to return.ReturnUnwindException
public static void undoReturnNormal(java.lang.String label, boolean val) throws ReturnUnwindException
RETURN-VALUE
can only be
set to a character expression.
For a user-defined function, this saves the given value as the function return value.
label
- The name of the block that is the target of the undo
operation.val
- The value to return.ReturnUnwindException
public static void undoReturnConsume() throws ReturnUnwindException
RETURN-VALUE
to "" (empty string) for internal/external procedures and triggers.
Leaves unknown value
as the default return from a
user-defined function.
If executed for a trigger, force the event which caused the trigger execution to be consumed (no default processing of that event should occur).
ReturnUnwindException
public static void undoReturnConsumeTopLevel() throws ReturnUnwindException
RETURN-VALUE
to "" (empty string) for internal/external procedures and triggers.
Leaves unknown value
as the default return from a
user-defined function.
If executed for a trigger, force the event which caused the trigger execution to be consumed (no default processing of that event should occur).
ReturnUnwindException
public static void undoReturnConsume(character val) throws ReturnUnwindException
RETURN-VALUE
to the given value for internal/external
procedures and triggers. Should not be called for a user-defined
function.
If executed for a trigger, force the event which caused the trigger execution to be consumed (no default processing of that event should occur).
val
- The value to return or null
.ReturnUnwindException
public static void undoReturnConsumeTopLevel(character val) throws ReturnUnwindException
RETURN-VALUE
to the given value for internal/external
procedures and triggers. Should not be called for a user-defined
function.
If executed for a trigger, force the event which caused the trigger execution to be consumed (no default processing of that event should occur).
val
- The value to return or null
.ReturnUnwindException
public static void undoReturnConsume(java.lang.String label) throws ReturnUnwindException
RETURN-VALUE
to "" (empty string) for internal/external procedures and triggers.
Leaves unknown value
as the default return from a
user-defined function.
If executed for a trigger, force the event which caused the trigger execution to be consumed (no default processing of that event should occur).
label
- The name of the block that is the target of the undo
operation.ReturnUnwindException
public static void undoReturnConsume(java.lang.String label, character val) throws ReturnUnwindException
RETURN-VALUE
to the given value for internal/external
procedures and triggers. Should not be called for a user-defined
function.
If executed for a trigger, force the event which caused the trigger execution to be consumed (no default processing of that event should occur).
label
- The name of the block that is the target of the undo
operation.val
- The value to return or null
.ReturnUnwindException
public static void undoReturnConsume(java.lang.String label, java.lang.String val) throws ReturnUnwindException
RETURN-VALUE
to the given value for internal/external
procedures and triggers. Should not be called for a user-defined
function.
If executed for a trigger, force the event which caused the trigger execution to be consumed (no default processing of that event should occur).
label
- The name of the block that is the target of the undo
operation.val
- The value to return or null
.ReturnUnwindException
public static void undoReturnConsumeTopLevel(java.lang.String val) throws ReturnUnwindException
RETURN-VALUE
to the given value for internal/external
procedures and triggers. Should not be called for a user-defined
function.
If executed for a trigger, force the event which caused the trigger execution to be consumed (no default processing of that event should occur).
val
- The value to return or null
.ReturnUnwindException
public static void undoReturnError() throws ReturnUnwindException, ErrorConditionException
RETURN-VALUE
to "" (empty string) for internal/external procedures and triggers.
Leaves unknown value
as the default return from a
user-defined function.
If silent error mode is not enabled in the caller, an ERROR
condition will be raised here and will unwind the stack (it will not
be processed, but will instead it will be rethrown) until it reaches
the caller's context at which time the error will be honored. If silent
error mode is enabled, the error data will be stored in the
ERROR-STATUS
facility and a return will be executed to
return processing to the caller without raising the error condition
(without throwing an exception).
public static void undoReturnErrorTopLevel() throws ReturnUnwindException, ErrorConditionException
RETURN-VALUE
to "" (empty string) for internal/external procedures and triggers.
Leaves unknown value
as the default return from a
user-defined function.
If silent error mode is not enabled in the caller, an ERROR
condition will be raised here and will unwind the stack (it will not
be processed, but will instead it will be rethrown) until it reaches
the caller's context at which time the error will be honored. If silent
error mode is enabled, the error data will be stored in the
ERROR-STATUS
facility and a return will be executed to
return processing to the caller without raising the error condition
(without throwing an exception).
public static void undoReturnError(java.lang.String label) throws ReturnUnwindException, ErrorConditionException
RETURN-VALUE
to "" (empty string) for internal/external procedures and triggers.
Leaves unknown value
as the default return from a
user-defined function.
If silent error mode is not enabled in the caller, an ERROR
condition will be raised here and will unwind the stack (it will not
be processed, but will instead it will be rethrown) until it reaches
the caller's context at which time the error will be honored. If silent
error mode is enabled, the error data will be stored in the
ERROR-STATUS
facility and a return will be executed to
return processing to the caller without raising the error condition
(without throwing an exception).
label
- The name of the block that is the target of the undo
operation.ReturnUnwindException
ErrorConditionException
public static void undoReturnError(character val) throws ReturnUnwindException, ErrorConditionException
null
,
this sets the default RETURN-VALUE
to "" (empty string)
for internal/external procedures and triggers. It leaves
unknown value
as the default return from a user-defined
function. If the value is not null
, then that value (if
it is a character
type) will be set as the
RETURN-VALUE
for internal/external procedures and triggers.
If not null
, the value will be returned as the function
return value for user-defined functions.
If silent error mode is not enabled in the caller, an ERROR
condition will be raised here and will unwind the stack (it will not
be processed, but will instead it will be rethrown) until it reaches
the caller's context at which time the error will be honored. If silent
error mode is enabled, the error data will be stored in the
ERROR-STATUS
facility and a return will be executed to
return processing to the caller without raising the error condition
(without throwing an exception).
val
- The value to return.ReturnUnwindException
ErrorConditionException
public static void undoReturnErrorTopLevel(character val) throws ReturnUnwindException, ErrorConditionException
null
,
this sets the default RETURN-VALUE
to "" (empty string)
for internal/external procedures and triggers. It leaves
unknown value
as the default return from a user-defined
function. If the value is not null
, then that value (if
it is a character
type) will be set as the
RETURN-VALUE
for internal/external procedures and triggers.
If not null
, the value will be returned as the function
return value for user-defined functions.
If silent error mode is not enabled in the caller, an ERROR
condition will be raised here and will unwind the stack (it will not
be processed, but will instead it will be rethrown) until it reaches
the caller's context at which time the error will be honored. If silent
error mode is enabled, the error data will be stored in the
ERROR-STATUS
facility and a return will be executed to
return processing to the caller without raising the error condition
(without throwing an exception).
val
- The value to return.ReturnUnwindException
ErrorConditionException
public static void undoReturnError(java.lang.String label, character val) throws ReturnUnwindException, ErrorConditionException
null
,
this sets the default RETURN-VALUE
to "" (empty string)
for internal/external procedures and triggers. It leaves
unknown value
as the default return from a user-defined
function. If the value is not null
, then that value (if
it is a character
type) will be set as the
RETURN-VALUE
for internal/external procedures and triggers.
If not null
, the value will be returned as the function
return value for user-defined functions.
If silent error mode is not enabled in the caller, an ERROR
condition will be raised here and will unwind the stack (it will not
be processed, but will instead it will be rethrown) until it reaches
the caller's context at which time the error will be honored. If silent
error mode is enabled, the error data will be stored in the
ERROR-STATUS
facility and a return will be executed to
return processing to the caller without raising the error condition
(without throwing an exception).
label
- The name of the block that is the target of the undo
operation.val
- The value to return.ReturnUnwindException
ErrorConditionException
public static void undoReturnError(java.lang.String label, java.lang.String val) throws ReturnUnwindException, ErrorConditionException
null
,
this sets the default RETURN-VALUE
to "" (empty string)
for internal/external procedures and triggers. It leaves
unknown value
as the default return from a user-defined
function. If the value is not null
, then that value (if
it is a character
type) will be set as the
RETURN-VALUE
for internal/external procedures and triggers.
If not null
, the value will be returned as the function
return value for user-defined functions.
If silent error mode is not enabled in the caller, an ERROR
condition will be raised here and will unwind the stack (it will not
be processed, but will instead it will be rethrown) until it reaches
the caller's context at which time the error will be honored. If silent
error mode is enabled, the error data will be stored in the
ERROR-STATUS
facility and a return will be executed to
return processing to the caller without raising the error condition
(without throwing an exception).
label
- The name of the block that is the target of the undo
operation.val
- The value to return.ReturnUnwindException
ErrorConditionException
public static void undoReturnErrorTopLevel(java.lang.String val) throws ReturnUnwindException, ErrorConditionException
null
,
this sets the default RETURN-VALUE
to "" (empty string)
for internal/external procedures and triggers. It leaves
unknown value
as the default return from a user-defined
function. If the value is not null
, then that value (if
it is a character
type) will be set as the
RETURN-VALUE
for internal/external procedures and triggers.
If not null
, the value will be returned as the function
return value for user-defined functions.
If silent error mode is not enabled in the caller, an ERROR
condition will be raised here and will unwind the stack (it will not
be processed, but will instead it will be rethrown) until it reaches
the caller's context at which time the error will be honored. If silent
error mode is enabled, the error data will be stored in the
ERROR-STATUS
facility and a return will be executed to
return processing to the caller without raising the error condition
(without throwing an exception).
val
- The value to return.ReturnUnwindException
ErrorConditionException
public static void markPendingDynCall()
ControlFlowOps
.static BlockManager.ReturnType getReturnType()
returnWorker(BaseDataType[], ReturnType)
.
The value is valid from the time the converted code implementing the top-level
block is exited until after Scopeable.scopeFinished()
is called.
null
if the nearest
top-level code is not finished by execution of
returnWorker(BaseDataType[], ReturnType)
.static void topLevelBlock(java.lang.Object referent, BlockManager.TransactionType lvl, BlockType btype, Block block)
referent
- The instance of the containing business logic class from which this is being
called. For external procedures, if this is non-null, then block
can be an instance created using lambdas. If null
, then
block
MUST BE an anonymous inner class of the containing business
logic instance so that instance can be calculated via reflection. For internal
procedures and triggers, this is expected to be null
.lvl
- The transaction level for the given block.btype
- The type of block represented by the given code.block
- The code to execute.private static boolean checkJavaCall(java.lang.Object referent, java.lang.String legacyName, Block block, boolean function, boolean externalProgram, boolean persistentProc)
ControlFlowOps
APIs. If is
not from ControlFlowOps
, then resolve push
the callee info
.referent
- The instance of the containing business logic class from which this is being
called. For external procedures, if this is non-null, then block
can be an instance created using lambdas. If null
, then
block
MUST BE an anonymous inner class of the containing business
logic instance so that instance can be calculated via reflection. For internal
procedures and functions, this is expected to be null
.legacyName
- The legacy name associated with the function/procedure being invoked via a
java-style call. If is null
, it will be resolved by
ProcedureManager.resolveClosestMethod(java.lang.Object, boolean, boolean)
.block
- The Block
insance beeing executed.function
- Flag indicating if we are calling a function.externalProgram
- Flag indicating if we are calling an external program.persistentProc
- Flag indicating if the called external program is persistent.true
if we are in a java-style call.private static void processBody(Block block, OnPhrase[] on) throws java.lang.Throwable
FOR
language statement. The main feature is to ensure that
any normal exit from the body will notify any Commitable
instances for validation purposes. A normal exit is a non-exception
return from Block.body()
, or certain exception cases related to
LEAVE
, NEXT
, RETURN
or
QUIT
when they are not associated with an UNDO
.block
- The block to execute.on
- List of user-defined on phrases.java.lang.Throwable
private static boolean processForBody(Block block, ToClause to, LogicalOp expr, OnPhrase[] on) throws java.lang.Throwable
FOR
language statement blocks or
loops. The main feature is to ensure that any normal exit from the body
will notify any Commitable
instances for validation
purposes. A normal exit is a non-exception return from Block.body()
,
or certain exception cases related to LEAVE
,
NEXT
, RETURN
or QUIT
when they are
not associated with an UNDO
.block
- The block to execute.to
- The TO clause that defines the block condition. The block
control variable is initialized before entering the block.
Before the block body is entered, the control variable is
compared to the termination value (which is dynamically
resolved at that moment). if the termination condition is
met, the block is never entered.expr
- The WHILE clause that defines a block condition. This
expression is evaluated before the block body is about to
be entered. The block body will be entered unless the
expression evaluates to false
.on
- List of user-defined on phrases.true
if the code should break out of the block
on return (because the loop/block control expressions or
incrementer forced an exit).java.lang.Throwable
private static boolean isNormal(java.lang.Throwable thr, OnPhrase[] on)
thr
- The exception to analyze.on
- List of user-defined on phrases.true
if the exception is a normal control-flow
condition.private static boolean deferredLeaveWorker(BlockManager.WorkArea wa, java.lang.String label)
true
will be returned. The caller is responsible for
ensuring that the leave request is fully granted as no further state
will be available for subsequent processing.wa
- Local context.label
- The name of the block to be checked against the deferred
leave block name.true
if there is a pending deferred leave and
the name of the block to be left is the same as the given
label. If the pending deferred block name is the "" (empty
string), that is the equivalent of matching "any block" and
so the first call to this method after that is set will cause
a true
to be returned.private static boolean deferredNextWorker(BlockManager.WorkArea wa, java.lang.String label)
true
will be returned. The caller is responsible for
ensuring that the next request is fully granted as no further state
will be available for subsequent processing.wa
- Local context.label
- The name of the block to be checked against the deferred
next block name.true
if there is a pending deferred next and
the name of the block to be iterated is the same as the given
label. If the pending deferred block name is the "" (empty
string), that is the equivalent of matching "any block" and
so the first call to this method after that is set will cause
a true
to be returned.private static void returnWorker(BaseDataType val, BlockManager.ReturnType rtype) throws ReturnUnwindException
BlockManager.ReturnType
) and the presence
or absence of a value to return.
The following behavior is provided:
Codes Meaning ------ ----------------------------------------------------- C Invoke LogicalTerminal.consume() E Invoke TransactionManager.triggerErrorInCaller() V Invoke ControlFlowOps.setReturnValue(val) N Invoke ControlFlowOps.setReturnValue("") F Invoke setFuncReturn(val) U Invoke setFuncReturn(null) (set return value as unknown) I Invalid (compile error in Progress) Return Return Internal External Trigger Function Value Type Proc Proc -------- --------- -------- -------- ------- -------- null NORMAL N N N U non-null NORMAL V V V F null CONSUME N N NC U non-null CONSUME V V VC F null ERROR NE NE I U non-null ERROR VE VE I U
In all cases, a ReturnUnwindException
will be thrown and this
will cause the stack to unwind to the nearest enclosing top-level
block. That block will then handle the return in a block specific
manner. For example, in a user-defined function, the given value or
by default the unknown value
will be returned to the
caller. Procedures and triggers have void return values.
val
- The value to return.rtype
- The type of return processing.ReturnUnwindException
private static void returnWorker(BaseDataType[] val, BlockManager.ReturnType rtype) throws ReturnUnwindException
BlockManager.ReturnType
) and the presence
or absence of a value to return.
The following behavior is provided:
Codes Meaning ------ ----------------------------------------------------- C Invoke LogicalTerminal.consume() E Invoke TransactionManager.triggerErrorInCaller() V Invoke ControlFlowOps.setReturnValue(val) N Invoke ControlFlowOps.setReturnValue("") F Invoke setFuncReturn(val) U Invoke setFuncReturn(null) (set return value as unknown) I Invalid (compile error in Progress) Return Return Internal External Trigger Function Value Type Proc Proc -------- --------- -------- -------- ------- -------- null NORMAL N N N U non-null NORMAL V V V F null CONSUME N N NC U non-null CONSUME V V VC F null ERROR NE NE I U non-null ERROR VE VE I U
In all cases, a ReturnUnwindException
will be thrown and this
will cause the stack to unwind to the nearest enclosing top-level
block. That block will then handle the return in a block specific
manner. For example, in a user-defined function, the given value or
by default the unknown value
will be returned to the
caller. Procedures and triggers have void return values.
val
- The value to return. If the function doesn't return an extent value, the element
zero will be returned.rtype
- The type of return processing.ReturnUnwindException
private static <T extends BaseDataType> T[] functionBlock(java.lang.String legacyName, BlockManager.TransactionType level, Block block, java.lang.Class<T> retType, int extent)
legacyName
- The legacy name associated with the function being invoked via a java-style call.
If is null
, it will be resolved by
ProcedureManager.resolveClosestMethod(java.lang.Object, boolean, boolean)
.level
- The transaction level for the given block.block
- The code to execute.retType
- The type of the return value which is used in the case the
unknown value
must be returned.extent
- For functions not returning an extent value, this is -1. Else, this extent size,
which is 0 for dynamic-extent and >0 for fixed extent.unknown value
by default or on error.private static void editingBlock(CommonFrame frame, FrameElement[] widgets, EventList goOn, java.lang.String[] enclosing, java.lang.String label, Block block, int etype)
UPDATE
semanics. All looping, sub-transaction
properties and block properties will be honored. The exit from the
editing block will be based on the given GO-ON
event list.frame
- The frame for which the editing block is associated.widgets
- The widgets in the given frame that are to be enabled for
editing.goOn
- The exit conditions for this loop or null
if
there are no explicit exit conditions.enclosing
- The list of enclosing blocks of which this class is unaware.
Any LEAVE or NEXT that references one of those enclosing
blocks must not unwind the stack further using an exception,
but rather it must return and let the caller check to see if
a deferred LEAVE or NEXT must be honored.label
- The label of the block for use in control flow statements
such as LEAVE
or NEXT
.block
- The code for the editing block body.etype
- Editing block semantics (CommonFrame.PROMPT-FOR
,
CommonFrame.SET
or
CommonFrame.UPDATE
).private static void doBlockWorker(BlockManager.TransactionType lvl, java.lang.String[] enclosing, java.lang.String label, OnPhrase[] on, Block block)
lvl
- The transaction level to be honored.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.on
- List of user-defined on phrases.block
- The code to execute.private static void doLoopWorker(BlockManager.TransactionType lvl, java.lang.String[] enclosing, java.lang.String label, ToClause to, LogicalOp expr, OnPhrase[] on, Block block)
lvl
- The transaction level to be honored.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends. If this is null
,
then a WHILE clause MUST be present to provide the condition
for maintaining the loop.expr
- The WHILE clause that defines a loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
. If this is
null
, then a TO clause MUST be present to
provide the condition for maintaining the loop.on
- List of user-defined on phrases.block
- The code to execute.private static void repeatWorker(BlockManager.TransactionType lvl, java.lang.String[] enclosing, java.lang.String label, ToClause to, LogicalOp expr, OnPhrase[] on, Block block)
lvl
- The transaction level to be honored.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends. If this is null
,
then a WHILE clause MUST be present to provide the condition
for maintaining the loop.expr
- The WHILE clause that defines a loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
. If this is
null
, then a TO clause MUST be present to
provide the condition for maintaining the loop.on
- List of user-defined on phrases.block
- The code to execute.private static void coreLoop(BlockType btype, boolean next, BlockManager.TransactionType lvl, java.lang.String[] enclosing, java.lang.String label, ToClause to, LogicalOp expr, OnPhrase[] on, OnPhrase[] defOn, Block block)
btype
- Current block type.next
- true
if on infinite loop protection a retry
should be converted to a NEXT, false
to convert
to a LEAVE.lvl
- The transaction level to be honored.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends. If this is null
,
then a WHILE clause MUST be present to provide the condition
for maintaining the loop.expr
- The WHILE clause that defines a loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
. If this is
null
, then a TO clause MUST be present to
provide the condition for maintaining the loop.on
- List of user-defined on phrases.defOn
- List of default properties for the block. Use
null
to indicate no default properties for the
block.block
- The code to execute.private static void forBlockWorker(BlockManager.TransactionType lvl, java.lang.String[] enclosing, java.lang.String label, ToClause to, LogicalOp expr, OnPhrase[] on, Block block)
The record retrieval that is associated with FOR blocks or loops must
be implemented directly inside the code of the block itself or if there
is a TO or WHILE clause then the query processing should be located in
the Block.enter()
method. This means that the caller is
responsible for all query processing. The record retrieval must be done
on the first line of code in the block or in the enter
method to duplicate the Progress behavior. Note that this is required
to handle all error cases and 4GL conditions properly.
The evaluation of the TO or WHILE block termination conditions is done AFTER the record retrieval. This causes any found record to remain available if the block is never entered because of the TO or WHILE conditions.
lvl
- The transaction level to be honored.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.to
- The TO clause that defines the block condition. The block
control variable is initialized before entering the block.
Before the block body is entered, the control variable is
compared to the termination value (which is dynamically
resolved at that moment). if the termination condition is
met, the block is never entered.expr
- The WHILE clause that defines a block condition. This
expression is evaluated before the block body is about to
be entered. The block body will be entered unless the
expression evaluates to false
.on
- List of user-defined on phrases.block
- The code to execute.private static void forEachWorker(BlockManager.TransactionType lvl, java.lang.String[] enclosing, java.lang.String label, ToClause to, LogicalOp expr, OnPhrase[] on, Block block)
The record retrieval that is associated with FOR blocks or loops must
be implemented directly inside the code of the block itself or if there
is a TO or WHILE clause then the query processing should be located in
the Block.enter()
method. This means that the caller is
responsible for all query processing. The record retrieval must be done
on the first line of code in the block or in the enter
method to duplicate the Progress behavior. Note that this is required
to handle all error cases and 4GL conditions properly.
The evaluation of the TO or WHILE block termination conditions is done AFTER the record retrieval. This causes any found record to remain available if the loop is never entered (or re-entered) because of the TO or WHILE conditions.
lvl
- The transaction level to be honored.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends.expr
- The WHILE clause that defines a loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
.on
- List of user-defined on phrases.block
- The code to execute.private static boolean needsIterate(ToClause to, LogicalOp expr)
null
individually or simultaneously.to
- The TO clause that defines a loop condition. The loop control
variable is initialized on the first pass through and on
subsequent passes it is incremented by a given factor. Before
the loop body is entered, the loop control variable is
compared to the termination value (which is dynamically
resolved at each loop iteration). When the termination
condition is met, the loop ends. If this is null
,
then a WHILE clause MUST be present to provide the condition
for maintaining the loop.expr
- The WHILE clause that defines a loop condition. This
expression is evaluated every time the loop body is about to
be entered. The loop body will be entered unless the
expression evaluates to false
. If this is
null
, then a TO clause MUST be present to
provide the condition for maintaining the loop.true
if all non-null parameters evaluate to
true
or if both parameters are null
.private static BlockManager.Disposition processCondition(OnPhrase[] user, OnPhrase[] def, ConditionException ce, java.lang.String[] enclosing, java.lang.String label) throws ConditionException, StackUnwindException, RetryUnwindException
This honors infinite loop protection for converting NEXT to LEAVE based on runtime state.
user
- List of user-defined on phrases.def
- List of default on phrases for the current block type.ce
- The condition being raised.enclosing
- The list of non-managed block names that enclose the current
block.label
- The block name of the current block.ConditionException
StackUnwindException
RetryUnwindException
static BlockManager.Condition exceptionToCondition(ConditionException ce)
BlockManager.Condition
code.ce
- Source exception.BlockManager.Condition
codes or null
if no
match is found.private static OnPhrase matchCondition(OnPhrase[] user, OnPhrase[] def, BlockManager.Condition cond)
user
- The set of user-defined on phrases for the current block.def
- The set of default on phrases for the current block.cond
- The condition being matched.null
if there is no match in either list.private static int decodeConditions(OnPhrase[] user, OnPhrase[] def)
The inputs are analyzed to match Condition
values with
their corresponding bits in the TransactionManager
properties bitfield.
The bits are defined by TransactionManager.PROP_NONE
,
TransactionManager.PROP_ERROR
,
TransactionManager.PROP_ENDKEY
,
TransactionManager.PROP_STOP
or
TransactionManager.PROP_QUIT
.
user
- The set of user-defined on phrases for the current block.def
- The set of default on phrases for the current block.PROP_NONE
will be
returned if both parameters are null
and/or
empty.private static int conditionMask(BlockManager.Condition cond)
Condition
with its corresponding
TransactionManager
constant.cond
- The condition to match.private static BlockManager.Disposition testLeave(java.lang.String[] enclosing, java.lang.String label)
The target of the leave operation must have been stored in context local data when the leave exception was thrown (which caused the stack to unwind).
This method is called from within a catch block to determine how to respond to the deferred leave operation for the current block.
enclosing
- The list of non-managed blocks that directly enclose the
current block.label
- The name of the current block. If this matches the target of
the deferred leave operation, then the current block must
be left.BREAK
or THROW
.private static BlockManager.Disposition testNext(java.lang.String[] enclosing, java.lang.String label)
The target of the next operation must have been stored in context local data when the next exception was thrown (which caused the stack to unwind).
This method is called from within a catch block to determine how to respond to the deferred next operation for the current block.
enclosing
- The list of non-managed blocks that directly enclose the
current block.label
- The name of the current block. If this matches the target of
the deferred leave operation, then the current block must
be left.BREAK
, CONTINUE
or
THROW
.private static void exitTopLevel(BlockManager.WorkArea wa)
wa
- The local context.private static void executeStateManaged(java.lang.Runnable code)
code
- The code to execute.private static void setFuncReturn(BaseDataType[] bdt, BlockManager.WorkArea wa, BlockType nearest)
FUNCTION
. Multiple calls to this before
returning from the function block will cause the value passed on the last call to be
honored.bdt
- The return value to set. Passing null
will reset the return value to
unknown
.wa
- The current context's data or null
to force a lookup of the context data.nearest
- The nearest top-level block. Should be a FUNCTION block. Pass null
to
use the context data to find the block.private static boolean matches(java.lang.String[] list, java.lang.String entry)
list
- The list of strings to check against.entry
- The element for which to search.true
if the given entry is found in the given
list.private static int convertTransType(BlockManager.TransactionType ttype, BlockType btype)
TransactionManager
constants.ttype
- The enum to convert.btype
- The block type.TransactionManager
constant.private static BlockType topLevelType(BlockManager.WorkArea wa)
wa
- The current context's data or null
to force a lookup of the context data.null
if there is no top-level
block in the call stack.private static void recordExecutionStats(BlockType type, Block block)
type
- The type of the block.block
- The block that is about to be executed.private static void dumpExecutionStats()