public class ControlFlowOps
extends java.lang.Object
Progress 4GL Feature Java Implementation ----------------------------------- ------------------------------------ RUN [ <procedure> | VALUE() ] invoke() RUN ... IN <handle> invokeIn() RUN ... PERSIST invokePersistent() RUN ... PERSIST SET <handle> invokePersistentSet() RETURN-VALUE "global variable" getReturnValue()/setReturnValue() RUN SUPER runSuper() simple function invocation invokeFunction() FUNCTION ... IN handle invokeFunctionIn() DYNAMIC-FUNCTION invokeDynamicFunction() DYNAMIC-FUNCTION(... IN) invokeDynamicFunctionIn() SUPER() runSuper() RELEASE EXTERNAL [PROCEDURE] release()
Modifier and Type | Class and Description |
---|---|
private static interface |
ControlFlowOps.ArgumentResolver
An interface for which its implementation will resolve the arguments passed to a
ControlFlowOps.invoke API. |
static class |
ControlFlowOps.ArgValidationErrors
Enum with the list of possible argument validation errors.
|
private static class |
ControlFlowOps.ArrayArgumentResolver
This implementation resolves arguments for converted 4GL statements (RUN, function calls,
DYNAMIC-FUNCTION).
|
private static class |
ControlFlowOps.AsyncCall
Helper class which also saves the
AsyncRequestImpl instance, needed by the remote
request. |
private static class |
ControlFlowOps.ContextContainer
Simple container that stores and returns a context-local instance of
the global work area.
|
(package private) static class |
ControlFlowOps.ControlFlowOpsHelper
Helper to expose APIs which have direct access to the context-local state.
|
private static class |
ControlFlowOps.ExternalProcedureCaller
Implements external program invocation.
|
private static class |
ControlFlowOps.ExternalProgramResolver
Search through the available external programs for a match.
|
private static class |
ControlFlowOps.InternalEntryCaller
Invoke the configured internal entry.
|
private static class |
ControlFlowOps.InternalProcSuperResolver
Search through the super-procedures of the given procedure handle for
a match.
|
private static class |
ControlFlowOps.InternalResolver
Search through the handle's defined internal-entries for a match.
|
private static class |
ControlFlowOps.MapArgumentResolver
This is a special implementation of resolving arguments received in a
Map , where
the key is the legacy argument's name (case insensitive) and the value is a string-encoded
representation of this argument. |
private static class |
ControlFlowOps.MapToNotFound
This caller is returned when the FUNCTION ...
|
private static class |
ControlFlowOps.NativeProcedureCaller
Implements native procedure invocation (an API call to a shared library).
|
private static class |
ControlFlowOps.Resolver
Abstract class.
|
private static class |
ControlFlowOps.SessionSuperResolver
Search through the session's super-procedures of the handle for a match.
|
private static class |
ControlFlowOps.SuperResolver
Search through the given super-procedure list for a match.
|
private static class |
ControlFlowOps.WorkArea
Stores global data relating to the state of the current context.
|
Modifier and Type | Field and Description |
---|---|
private static java.util.logging.Logger |
LOG
Logger
|
private static ControlFlowOps.ContextContainer |
work
Stores context-local state variables.
|
Constructor and Description |
---|
ControlFlowOps() |
Modifier and Type | Method and Description |
---|---|
private static void |
cleanupPending(ControlFlowOps.WorkArea wa)
Cleanup all pending resources initialized by the external program default constructor, as the call
failed.
|
private static <T extends BaseDataType> |
convertValue(java.lang.Class<T> cls,
BaseDataType value)
Convert BaseDataType value to instance of given class.
|
(package private) static void |
executeDestructor(_BaseObject_ referent,
java.lang.String name)
Execute the specified destructor in the given class.
|
static ControlFlowOps.ControlFlowOpsHelper |
getHelper()
Get an instance of
ControlFlowOps.ControlFlowOpsHelper , which has the context-local instance saved,
so API access can be done without a context-local query. |
static character |
getReturnValue()
Gets the most recent RETURN-VALUE for the current user's session.
|
static boolean |
hadInvalidArguments()
Check if last attempted invoke failed because of invalid arguments.
|
(package private) static void |
initializeExternalProcedure(ExternalProgramWrapper extProg,
boolean transactionDistinct,
java.lang.String modes,
java.lang.Object... args)
Initialize the specified external procedure.
|
(package private) static boolean |
initializeLegacyClass(java.lang.Class<?> cls,
java.lang.Object referent,
java.lang.String name,
java.lang.String ctor)
Given a legacy class, initialize it by executing its static constructor.
|
(package private) static boolean |
initializeLegacyObject(java.lang.Object referent,
java.lang.String name,
java.lang.String[] executes,
java.lang.String ctor,
java.lang.String modes,
java.lang.Object... args)
Given a legacy class instance, execute the initialization methods.
|
private static void |
initializeProxy(ControlFlowOps.AsyncCall call)
Initialize the proxy procedure associated with the async request.
|
private static void |
invalidHandle(character name)
Common helper to generate error 5453 and then throw an error there is an invalid handle.
|
static void |
invoke(character name,
java.lang.Object... args)
Invoke the procedure with the given name (emitted for a standard RUN
statement).
|
(package private) static BaseDataType |
invoke(handle h,
character name,
boolean function,
boolean dynamicFunction,
boolean superCall,
boolean transactionDistinct,
java.lang.String modes,
java.lang.Object... args)
The implementation of all function and procedure calls.
|
static InvocationResponsePayload |
invoke(InvocationRequestPayload payload)
This API is used when P2J client runs in embedded mode (i.e.
|
static BaseDataType |
invoke(InvokeConfig cfg)
Using the current invoke configuration, perform the call.
|
static void |
invoke(java.lang.String name,
java.lang.Object... args)
Invoke the procedure with the given name (emitted for a standard RUN
statement).
|
static void |
invokeAsThread(java.lang.String name)
Invoke the procedure with the given name in a related thread.
|
static void |
invokeAsThreadSet(java.lang.String name,
handle ht)
Invoke the procedure with the given name in a related thread, and save the resource which
can manage the related thread at the caller in the specified handle.
|
static void |
invokeAsThreadSetWithMode(java.lang.String name,
handle ht,
java.lang.String modes,
java.lang.Object... args)
Invoke the procedure with the given name in a related thread, and save the resource which
can manage the related thread at the caller in the specified handle.
|
static void |
invokeAsThreadWithMode(java.lang.String name,
java.lang.String modes,
java.lang.Object... args)
Invoke the procedure with the given name in a related thread.
|
private static void |
invokeAsyncImpl(ControlFlowOps.AsyncCall request,
handle hServer,
handle asyncHandle,
handle pHandle)
Execute an async procedure call.
|
static BaseDataType |
invokeDynamicFunction(character name,
java.lang.Object... args)
Emitted for the DYNAMIC-FUNCTION statement.
|
static <T extends BaseDataType> |
invokeDynamicFunction(java.lang.Class<T> cls,
character name,
java.lang.Object... args)
Emitted for the DYNAMIC-FUNCTION statement.
|
static <T extends BaseDataType> |
invokeDynamicFunction(java.lang.Class<T> cls,
java.lang.String name,
java.lang.Object... args)
Emitted for the DYNAMIC-FUNCTION statement.
|
static BaseDataType |
invokeDynamicFunction(java.lang.String name,
java.lang.Object... args)
Emitted for the DYNAMIC-FUNCTION statement.
|
static BaseDataType |
invokeDynamicFunctionIn(character name,
handle h,
java.lang.Object... args)
Emitted for the DYNAMIC-FUNCTION(fname IN handle, ...
|
static <T extends BaseDataType> |
invokeDynamicFunctionIn(java.lang.Class<T> cls,
character name,
handle h,
java.lang.Object... args)
Emitted for the DYNAMIC-FUNCTION(fname IN handle, ...
|
static <T extends BaseDataType> |
invokeDynamicFunctionIn(java.lang.Class<T> cls,
java.lang.String name,
handle h,
java.lang.Object... args)
Emitted for the DYNAMIC-FUNCTION(fname IN handle, ...
|
static BaseDataType |
invokeDynamicFunctionIn(java.lang.String name,
handle h,
java.lang.Object... args)
Emitted for the DYNAMIC-FUNCTION(fname IN handle, ...
|
static BaseDataType |
invokeDynamicFunctionInWithMode(character name,
handle h,
java.lang.String modes,
java.lang.Object... args)
Emitted for the DYNAMIC-FUNCTION(fname IN handle, ...
|
static <T extends BaseDataType> |
invokeDynamicFunctionInWithMode(java.lang.Class<T> cls,
character name,
handle h,
java.lang.String modes,
java.lang.Object... args)
Emitted for the DYNAMIC-FUNCTION(fname IN handle, ...
|
static <T extends BaseDataType> |
invokeDynamicFunctionInWithMode(java.lang.Class<T> cls,
java.lang.String name,
handle h,
java.lang.String modes,
java.lang.Object... args)
Emitted for the DYNAMIC-FUNCTION(fname IN handle, ...
|
static BaseDataType |
invokeDynamicFunctionInWithMode(java.lang.String name,
handle h,
java.lang.String modes,
java.lang.Object... args)
Emitted for the DYNAMIC-FUNCTION(fname IN handle, ...
|
static BaseDataType |
invokeDynamicFunctionWithMode(character name,
java.lang.String modes,
java.lang.Object... args)
Emitted for the DYNAMIC-FUNCTION statement.
|
static <T extends BaseDataType> |
invokeDynamicFunctionWithMode(java.lang.Class<T> cls,
character name,
java.lang.String modes,
java.lang.Object... args)
Emitted for the DYNAMIC-FUNCTION statement.
|
static <T extends BaseDataType> |
invokeDynamicFunctionWithMode(java.lang.Class<T> cls,
java.lang.String name,
java.lang.String modes,
java.lang.Object... args)
Emitted for the DYNAMIC-FUNCTION statement.
|
static BaseDataType |
invokeDynamicFunctionWithMode(java.lang.String name,
java.lang.String modes,
java.lang.Object... args)
Emitted for the DYNAMIC-FUNCTION statement.
|
private static void |
invokeError(ControlFlowOps.InternalEntryCaller caller,
java.lang.String name,
java.lang.Exception deferred)
Throw a
RuntimeException , as the function or procedure
invocation has raised an exception. |
(package private) static void |
invokeExternalProcedure(character name,
boolean persistent,
boolean singleton,
boolean singleRun,
handle h,
boolean transactionDistinct,
character exports,
java.lang.String modes,
ControlFlowOps.ArgumentResolver argResolver)
The implementation of all RUN ...
|
(package private) static void |
invokeExternalProcedure(character name,
boolean persistent,
boolean singleton,
boolean singleRun,
handle h,
boolean transactionDistinct,
character exports,
java.lang.String modes,
java.lang.Object... args)
The implementation of all RUN ...
|
(package private) static void |
invokeExternalProcedure(character name,
boolean persistent,
handle h,
boolean transactionDistinct,
character exports,
java.lang.String modes,
java.lang.Object... args)
The implementation of all RUN ...
|
private static void |
invokeFailure(java.lang.String target)
Common helper to display a standard error message and then throw a
STOP condition when the target procedure cannot be found.
|
static BaseDataType |
invokeFunction(character name,
java.lang.Object... args)
Emitted for plain function calls.
|
static <T extends BaseDataType> |
invokeFunction(java.lang.Class<T> cls,
character name,
java.lang.Object... args)
Emitted for plain function calls.
|
static <T extends BaseDataType> |
invokeFunction(java.lang.Class<T> cls,
java.lang.String name,
java.lang.Object... args)
Emitted for plain function calls.
|
static BaseDataType |
invokeFunction(java.lang.String name,
java.lang.Object... args)
Emitted for plain function calls.
|
private static BaseDataType |
invokeFunctionImpl(character name,
handle h,
boolean dynamicFunction,
boolean superCall,
java.lang.String modes,
java.lang.Object... args)
The implementation for all function calls.
|
static BaseDataType |
invokeFunctionIn(character name,
handle h,
java.lang.Object... args)
Emitted for the plain function calls, when they are defined as
FUNCTION ...
|
static <T extends BaseDataType> |
invokeFunctionIn(java.lang.Class<T> cls,
character name,
handle h,
java.lang.Object... args)
Emitted for the plain function calls, when they are defined as
FUNCTION ...
|
static <T extends BaseDataType> |
invokeFunctionIn(java.lang.Class<T> cls,
java.lang.String name,
handle h,
java.lang.Object... args)
Emitted for the plain function calls, when they are defined as
FUNCTION ...
|
static BaseDataType |
invokeFunctionIn(java.lang.String name,
handle h,
java.lang.Object... args)
Emitted for the plain function calls, when they are defined as
FUNCTION ...
|
static BaseDataType |
invokeFunctionInWithMode(character name,
handle h,
java.lang.String modes,
java.lang.Object... args)
Emitted for the plain function calls, when they are defined as
FUNCTION ...
|
static <T extends BaseDataType> |
invokeFunctionInWithMode(java.lang.Class<T> cls,
character name,
handle h,
java.lang.String modes,
java.lang.Object... args)
Emitted for the plain function calls, when they are defined as
FUNCTION ...
|
static <T extends BaseDataType> |
invokeFunctionInWithMode(java.lang.Class<T> cls,
java.lang.String name,
handle h,
java.lang.String modes,
java.lang.Object... args)
Emitted for the plain function calls, when they are defined as
FUNCTION ...
|
static BaseDataType |
invokeFunctionInWithMode(java.lang.String name,
handle h,
java.lang.String modes,
java.lang.Object... args)
Emitted for the plain function calls, when they are defined as
FUNCTION ...
|
static BaseDataType |
invokeFunctionWithMode(character name,
java.lang.String modes,
java.lang.Object... args)
Emitted for plain function calls.
|
static <T extends BaseDataType> |
invokeFunctionWithMode(java.lang.Class<T> cls,
character name,
java.lang.String modes,
java.lang.Object... args)
Emitted for plain function calls.
|
static <T extends BaseDataType> |
invokeFunctionWithMode(java.lang.Class<T> cls,
java.lang.String name,
java.lang.String modes,
java.lang.Object... args)
Emitted for plain function calls.
|
static BaseDataType |
invokeFunctionWithMode(java.lang.String name,
java.lang.String modes,
java.lang.Object... args)
Emitted for plain function calls.
|
private static BaseDataType |
invokeImpl(AsyncRequestImpl asyncReq,
handle server,
handle h,
character name,
boolean function,
boolean dynamicFunction,
boolean superCall,
boolean transactionDistinct,
java.lang.String modes,
java.lang.Object... args)
The implementation of function or procedure calls which do not use the
IN handle clause.
|
private static BaseDataType |
invokeImpl(handle server,
handle h,
character name,
boolean function,
boolean dynamicFunction,
boolean superCall,
boolean transactionDistinct,
java.lang.String modes,
java.lang.Object... args)
The implementation of function or procedure calls which do not use the
IN handle clause.
|
private static BaseDataType |
invokeImpl(java.util.List<ControlFlowOps.Resolver> resolvers,
handle h,
character cname,
boolean function,
boolean dynamicFunction,
boolean superCall,
boolean transactionDistinct,
boolean asThread,
handle ht,
java.lang.String modes,
ControlFlowOps.ArgumentResolver argResolver)
The implementation of all function and procedure calls.
|
static void |
invokeIn(character name,
handle h,
java.lang.Object... args)
Invoke the procedure with the given name, defined in the given handle
(emitted for a standard RUN ...
|
static void |
invokeIn(java.lang.String name,
handle h,
java.lang.Object... args)
Invoke the procedure with the given name, defined in the given handle
(emitted for a standard RUN ...
|
static void |
invokeInAsync(character name,
handle h,
handle asyncHandle,
character eventProcName,
handle inEventprocHandle,
java.lang.Object... args)
Invoke the procedure with the given name, defined in the given handle
(emitted for a standard RUN ...
|
static void |
invokeInAsync(character name,
handle h,
handle asyncHandle,
java.lang.String eventProcName,
handle inEventprocHandle,
java.lang.Object... args)
Invoke the procedure with the given name, defined in the given handle
(emitted for a standard RUN ...
|
static void |
invokeInAsync(java.lang.String name,
handle h,
handle asyncHandle,
character eventProcName,
handle inEventprocHandle,
java.lang.Object... args)
Invoke the procedure with the given name, defined in the given handle
(emitted for a standard RUN ...
|
static void |
invokeInAsync(java.lang.String name,
handle h,
handle asyncHandle,
java.lang.String eventProcName,
handle inEventprocHandle,
java.lang.Object... args)
Invoke the procedure with the given name, defined in the given handle
(emitted for a standard RUN ...
|
static void |
invokeInAsyncWithMode(character name,
handle h,
handle asyncHandle,
character eventProcName,
handle inEventprocHandle,
java.lang.String modes,
java.lang.Object... args)
Invoke the procedure with the given name, defined in the given handle
(emitted for a standard RUN ...
|
static void |
invokeInAsyncWithMode(character name,
handle h,
handle asyncHandle,
java.lang.String eventProcName,
handle inEventprocHandle,
java.lang.String modes,
java.lang.Object... args)
Invoke the procedure with the given name, defined in the given handle
(emitted for a standard RUN ...
|
static void |
invokeInAsyncWithMode(java.lang.String name,
handle h,
handle asyncHandle,
character eventProcName,
handle inEventprocHandle,
java.lang.String modes,
java.lang.Object... args)
Invoke the procedure with the given name, defined in the given handle
(emitted for a standard RUN ...
|
static void |
invokeInAsyncWithMode(java.lang.String name,
handle h,
handle asyncHandle,
java.lang.String eventProcName,
handle inEventprocHandle,
java.lang.String modes,
java.lang.Object... args)
Invoke the procedure with the given name, defined in the given handle
(emitted for a standard RUN ...
|
private static void |
invokeInImpl(character name,
handle h,
boolean superCall,
java.lang.String modes,
java.lang.Object... args)
The implementation for RUN SUPER and RUN ...
|
static void |
invokeInWithMode(character name,
handle h,
java.lang.String modes,
java.lang.Object... args)
Invoke the procedure with the given name, defined in the given handle
(emitted for a standard RUN ...
|
static void |
invokeInWithMode(java.lang.String name,
handle h,
java.lang.String modes,
java.lang.Object... args)
Invoke the procedure with the given name, defined in the given handle
(emitted for a standard RUN ...
|
(package private) static java.lang.Object |
invokeLegacyMethod(boolean voidReturn,
java.lang.Object referent,
java.lang.String name,
java.lang.String method,
java.lang.String modes,
java.lang.Object[] args)
Invoke the specified legacy method in a legacy OO class.
|
(package private) static java.lang.Object |
invokeLegacyMethod(InternalEntry ie,
boolean voidReturn,
java.lang.Object referent,
java.lang.String name,
java.lang.String method,
java.lang.String modes,
java.lang.Object[] args)
Invoke the specified legacy method in a legacy OO class.
|
static void |
invokePersistent(character name,
java.lang.Object... args)
Invoke the procedure with the given name, and set it as PERSISTENT
(emitted for a RUN ...
|
static void |
invokePersistent(java.lang.String name,
java.lang.Object... args)
Invoke the procedure with the given name, and set it as PERSISTENT
(emitted for a RUN ...
|
private static void |
invokePersistentImpl(AsyncRequestImpl asyncReq,
handle server,
character name,
handle persistHandle,
handle portHandle,
boolean transactionDistinct,
java.lang.String modes,
java.lang.Object... args)
The implementation for the RUN ...
|
private static void |
invokePersistentImpl(handle server,
character name,
handle persistHandle,
handle portHandle,
boolean transactionDistinct,
java.lang.String modes,
java.lang.Object... args)
The implementation for the RUN ...
|
static void |
invokePersistentSet(character name,
handle h,
java.lang.Object... args)
Invoke the procedure with the given name, and save its procedure handle
in the given handle (emitted for a RUN ...
|
static void |
invokePersistentSet(java.lang.String name,
handle h,
java.lang.Object... args)
Invoke the procedure with the given name, and save its procedure handle
in the given handle (emitted for a RUN ...
|
static void |
invokePersistentSetWithMode(character name,
handle h,
java.lang.String modes,
java.lang.Object... args)
Invoke the procedure with the given name, and save its procedure handle
in the given handle (emitted for a RUN ...
|
static void |
invokePersistentSetWithMode(java.lang.String name,
handle h,
java.lang.String modes,
java.lang.Object... args)
Invoke the procedure with the given name, and save its procedure handle
in the given handle (emitted for a RUN ...
|
static void |
invokePersistentWithMode(character name,
java.lang.String modes,
java.lang.Object... args)
Invoke the procedure with the given name, and set it as PERSISTENT
(emitted for a RUN ...
|
static void |
invokePersistentWithMode(java.lang.String name,
java.lang.String modes,
java.lang.Object... args)
Invoke the procedure with the given name, and set it as PERSISTENT
(emitted for a RUN ...
|
static void |
invokeRemote(character name,
handle portHandle,
handle remoteHandle,
boolean transactionDistinct,
java.lang.Object... args)
Invoke the procedure with the given name on a remote server (emitted for a standard RUN ...
|
static void |
invokeRemote(java.lang.String name,
handle portHandle,
handle remoteHandle,
boolean transactionDistinct,
java.lang.Object... args)
Invoke the procedure with the given name on a remote server (emitted for a standard RUN ...
|
static void |
invokeRemoteAsync(character name,
handle portHandle,
handle remoteHandle,
boolean transactionDistinct,
handle asyncHandle,
character eventProcName,
handle inEventprocHandle,
java.lang.Object... args)
Invoke the procedure on a remote server with the given name
(emitted for a standard RUN ...
|
static void |
invokeRemoteAsync(character name,
handle portHandle,
handle remoteHandle,
boolean transactionDistinct,
handle asyncHandle,
java.lang.String eventProcName,
handle inEventprocHandle,
java.lang.Object... args)
Invoke the procedure on a remote server with the given name
(emitted for a standard RUN ...
|
static void |
invokeRemoteAsync(java.lang.String name,
handle portHandle,
handle remoteHandle,
boolean transactionDistinct,
handle asyncHandle,
character eventProcName,
handle inEventprocHandle,
java.lang.Object... args)
Invoke the procedure on a remote server with the given name
(emitted for a standard RUN ...
|
static void |
invokeRemoteAsync(java.lang.String name,
handle portHandle,
handle remoteHandle,
boolean transactionDistinct,
handle asyncHandle,
java.lang.String eventProcName,
handle inEventprocHandle,
java.lang.Object... args)
Invoke the procedure on a remote server with the given name
(emitted for a standard RUN ...
|
static void |
invokeRemoteAsyncWithMode(character name,
handle portHandle,
handle remoteHandle,
boolean transactionDistinct,
handle asyncHandle,
character eventProcName,
handle inEventprocHandle,
java.lang.String modes,
java.lang.Object... args)
Invoke the procedure on a remote server with the given name
(emitted for a standard RUN ...
|
static void |
invokeRemoteAsyncWithMode(character name,
handle portHandle,
handle remoteHandle,
boolean transactionDistinct,
handle asyncHandle,
java.lang.String eventProcName,
handle inEventprocHandle,
java.lang.String modes,
java.lang.Object... args)
Invoke the procedure on a remote server with the given name
(emitted for a standard RUN ...
|
static void |
invokeRemoteAsyncWithMode(java.lang.String name,
handle portHandle,
handle remoteHandle,
boolean transactionDistinct,
handle asyncHandle,
character eventProcName,
handle inEventprocHandle,
java.lang.String modes,
java.lang.Object... args)
Invoke the procedure on a remote server with the given name
(emitted for a standard RUN ...
|
static void |
invokeRemoteAsyncWithMode(java.lang.String name,
handle portHandle,
handle remoteHandle,
boolean transactionDistinct,
handle asyncHandle,
java.lang.String eventProcName,
handle inEventprocHandle,
java.lang.String modes,
java.lang.Object... args)
Invoke the procedure with the given name on a remote server (emitted for a standard RUN ...
|
static void |
invokeRemotePersistent(character name,
handle portHandle,
handle remoteHandle,
boolean transactionDistinct,
java.lang.Object... args)
Invoke the procedure on a remote server with the given name, and set it as PERSISTENT
(emitted for a RUN ...
|
static void |
invokeRemotePersistent(java.lang.String name,
handle portHandle,
handle remoteHandle,
boolean transactionDistinct,
java.lang.Object... args)
Invoke the procedure on a remote server with the given name, and set it as PERSISTENT
(emitted for a RUN ...
|
static void |
invokeRemotePersistentAsync(character name,
handle portHandle,
handle remoteHandle,
boolean transactionDistinct,
handle asyncHandle,
character eventProcName,
handle inEventprocHandle,
java.lang.Object... args)
Invoke the procedure on a remote server with the given name
(emitted for a standard RUN ...PERSISTENT ON ...
|
static void |
invokeRemotePersistentAsync(character name,
handle portHandle,
handle remoteHandle,
boolean transactionDistinct,
handle asyncHandle,
java.lang.String eventProcName,
handle inEventprocHandle,
java.lang.Object... args)
Invoke the procedure on a remote server with the given name
(emitted for a standard RUN ...PERSISTENT ON ...
|
static void |
invokeRemotePersistentAsync(java.lang.String name,
handle portHandle,
handle remoteHandle,
boolean transactionDistinct,
handle asyncHandle,
character eventProcName,
handle inEventprocHandle,
java.lang.Object... args)
Invoke the procedure on a remote server with the given name
(emitted for a standard RUN ...
|
static void |
invokeRemotePersistentAsync(java.lang.String name,
handle portHandle,
handle remoteHandle,
boolean transactionDistinct,
handle asyncHandle,
java.lang.String eventProcName,
handle inEventprocHandle,
java.lang.Object... args)
Invoke the procedure on a remote server with the given name
(emitted for a standard RUN ...PERSISTENT ON ...
|
static void |
invokeRemotePersistentAsyncWithMode(character name,
handle portHandle,
handle remoteHandle,
boolean transactionDistinct,
handle asyncHandle,
character eventProcName,
handle inEventprocHandle,
java.lang.String modes,
java.lang.Object... args)
Invoke the procedure on a remote server with the given name
(emitted for a standard RUN ...PERSISTENT ON ...
|
static void |
invokeRemotePersistentAsyncWithMode(character name,
handle portHandle,
handle remoteHandle,
boolean transactionDistinct,
handle asyncHandle,
java.lang.String eventProcName,
handle inEventprocHandle,
java.lang.String modes,
java.lang.Object... args)
Invoke the procedure on a remote server with the given name
(emitted for a standard RUN ...PERSISTENT ON ...
|
static void |
invokeRemotePersistentAsyncWithMode(java.lang.String name,
handle portHandle,
handle remoteHandle,
boolean transactionDistinct,
handle asyncHandle,
character eventProcName,
handle inEventprocHandle,
java.lang.String modes,
java.lang.Object... args)
Invoke the procedure on a remote server with the given name
(emitted for a standard RUN ...PERSISTENT ON ...
|
static void |
invokeRemotePersistentAsyncWithMode(java.lang.String name,
handle portHandle,
handle remoteHandle,
boolean transactionDistinct,
handle asyncHandle,
java.lang.String eventProcName,
handle inEventprocHandle,
java.lang.String modes,
java.lang.Object... args)
Invoke the procedure on a remote server with the given name
(emitted for a standard RUN ...
|
static void |
invokeRemotePersistentSet(character name,
handle persistHandle,
handle portHandle,
handle remoteHandle,
boolean transactionDistinct,
java.lang.Object... args)
Invoke the procedure on a remote server with the given name, and set it as PERSISTENT
(emitted for a RUN ...
|
static void |
invokeRemotePersistentSet(java.lang.String name,
handle persistHandle,
handle portHandle,
handle remoteHandle,
boolean transactionDistinct,
java.lang.Object... args)
Invoke the procedure on a remote server with the given name, and set it as PERSISTENT
(emitted for a RUN ...
|
static void |
invokeRemotePersistentSetAsync(character name,
handle persistHandle,
handle portHandle,
handle remoteHandle,
boolean transactionDistinct,
handle asyncHandle,
character eventProcName,
handle inEventprocHandle,
java.lang.Object... args)
Invoke the procedure on a remote server with the given name
(emitted for a standard RUN ...PERSISTENT SET ON ...
|
static void |
invokeRemotePersistentSetAsync(character name,
handle persistHandle,
handle portHandle,
handle remoteHandle,
boolean transactionDistinct,
handle asyncHandle,
java.lang.String eventProcName,
handle inEventprocHandle,
java.lang.Object... args)
Invoke the procedure on a remote server with the given name
(emitted for a standard RUN ...PERSISTENT SET ON ...
|
static void |
invokeRemotePersistentSetAsync(java.lang.String name,
handle persistHandle,
handle portHandle,
handle remoteHandle,
boolean transactionDistinct,
handle asyncHandle,
character eventProcName,
handle inEventprocHandle,
java.lang.Object... args)
Invoke the procedure on a remote server with the given name
(emitted for a standard RUN ...
|
static void |
invokeRemotePersistentSetAsync(java.lang.String name,
handle persistHandle,
handle portHandle,
handle remoteHandle,
boolean transactionDistinct,
handle asyncHandle,
java.lang.String eventProcName,
handle inEventprocHandle,
java.lang.Object... args)
Invoke the procedure on a remote server with the given name
(emitted for a standard RUN ...PERSISTENT SET ON ...
|
static void |
invokeRemotePersistentSetAsyncWithMode(character name,
handle persistHandle,
handle portHandle,
handle remoteHandle,
boolean transactionDistinct,
handle asyncHandle,
character eventProcName,
handle inEventprocHandle,
java.lang.String modes,
java.lang.Object... args)
Invoke the procedure on a remote server with the given name
(emitted for a standard RUN ...PERSISTENT SET..
|
static void |
invokeRemotePersistentSetAsyncWithMode(character name,
handle persistHandle,
handle portHandle,
handle remoteHandle,
boolean transactionDistinct,
handle asyncHandle,
java.lang.String eventProcName,
handle inEventprocHandle,
java.lang.String modes,
java.lang.Object... args)
Invoke the procedure on a remote server with the given name
(emitted for a standard RUN ...PERSISTENT SET..
|
static void |
invokeRemotePersistentSetAsyncWithMode(java.lang.String name,
handle persistHandle,
handle portHandle,
handle remoteHandle,
boolean transactionDistinct,
handle asyncHandle,
character eventProcName,
handle inEventprocHandle,
java.lang.String modes,
java.lang.Object... args)
Invoke the procedure on a remote server with the given name
(emitted for a standard RUN ...PERSISTENT SET..
|
static void |
invokeRemotePersistentSetAsyncWithMode(java.lang.String name,
handle persistHandle,
handle portHandle,
handle remoteHandle,
boolean transactionDistinct,
handle asyncHandle,
java.lang.String eventProcName,
handle inEventprocHandle,
java.lang.String modes,
java.lang.Object... args)
Invoke the procedure on a remote server with the given name
(emitted for a standard RUN ...PERSISTENT SET..
|
static void |
invokeRemotePersistentSetWithMode(character name,
handle persistHandle,
handle portHandle,
handle remoteHandle,
boolean transactionDistinct,
java.lang.String modes,
java.lang.Object... args)
Invoke the procedure with the given name (emitted for a standard RUN
statement).
|
static void |
invokeRemotePersistentSetWithMode(java.lang.String name,
handle persistHandle,
handle portHandle,
handle remoteHandle,
boolean transactionDistinct,
java.lang.String modes,
java.lang.Object... args)
Invoke the procedure with the given name (emitted for a standard RUN
statement).
|
static void |
invokeRemotePersistentWithMode(character name,
handle portHandle,
handle remoteHandle,
boolean transactionDistinct,
java.lang.String modes,
java.lang.Object... args)
Invoke the procedure on a remote server with the given name, and set it as PERSISTENT
(emitted for a RUN ...
|
static void |
invokeRemotePersistentWithMode(java.lang.String name,
handle portHandle,
handle remoteHandle,
boolean transactionDistinct,
java.lang.String modes,
java.lang.Object... args)
Invoke the procedure on a remote server with the given name, and set it as PERSISTENT
(emitted for a RUN ...
|
static void |
invokeRemoteSingleRun(character name,
handle remoteHandle,
boolean transactionDistinct)
Execute a
RUN ... |
static void |
invokeRemoteSingleRun(java.lang.String name,
handle remoteHandle,
boolean transactionDistinct)
Execute a
RUN ... |
static void |
invokeRemoteSingleRunSet(character name,
handle hproc,
handle remoteHandle,
boolean transactionDistinct)
Execute a
RUN ... |
static void |
invokeRemoteSingleRunSet(java.lang.String name,
handle hproc,
handle remoteHandle,
boolean transactionDistinct)
Execute a
RUN ... |
static void |
invokeRemoteSingleton(character name,
handle remoteHandle,
boolean transactionDistinct)
Execute a
RUN ... |
static void |
invokeRemoteSingleton(java.lang.String name,
handle remoteHandle,
boolean transactionDistinct)
Execute a
RUN ... |
static void |
invokeRemoteSingletonSet(character name,
handle hproc,
handle remoteHandle,
boolean transactionDistinct)
Execute a
RUN ... |
static void |
invokeRemoteSingletonSet(java.lang.String name,
handle hproc,
handle remoteHandle,
boolean transactionDistinct)
Execute a
RUN ... |
static void |
invokeRemoteWithMode(character name,
handle portHandle,
handle remoteHandle,
boolean transactionDistinct,
java.lang.String modes,
java.lang.Object... args)
Invoke the procedure with the given name (emitted for a standard RUN statement).
|
static void |
invokeRemoteWithMode(java.lang.String name,
handle portHandle,
handle remoteHandle,
boolean transactionDistinct,
java.lang.String modes,
java.lang.Object... args)
Invoke the procedure with the given name (emitted for a standard RUN statement).
|
private static void |
invokeRemoteWithModeImpl(AsyncRequestImpl asyncReq,
character name,
handle portHandle,
handle remoteHandle,
boolean transactionDistinct,
java.lang.String modes,
java.lang.Object... args)
Invoke the procedure with the given name (emitted for a standard RUN statement).
|
static void |
invokeSingleRun(character name)
Execute a
RUN ... |
static void |
invokeSingleRun(java.lang.String name)
Execute a
RUN ... |
static void |
invokeSingleRunSet(character name,
handle hproc)
Execute a
RUN ... |
static void |
invokeSingleRunSet(java.lang.String name,
handle hproc)
Execute a
RUN ... |
static void |
invokeSingleton(character name)
Execute a
RUN ... |
static void |
invokeSingleton(java.lang.String name)
Execute a
RUN ... |
private static void |
invokeSingletonOrSingleRun(boolean singleRun,
character name,
handle hproc,
handle server,
boolean transactionDistinct)
Invoke the specified external program in either SINGLETON or SINGLE-RUN modes.
|
static void |
invokeSingletonSet(character name,
handle hproc)
Execute a
RUN ... |
static void |
invokeSingletonSet(java.lang.String name,
handle hproc)
Execute a
RUN ... |
static void |
invokeWithMode(character name,
java.lang.String modes,
java.lang.Object... args)
Invoke the procedure with the given name (emitted for a standard RUN
statement).
|
static void |
invokeWithMode(java.lang.String name,
java.lang.String modes,
java.lang.Object... args)
Invoke the procedure with the given name (emitted for a standard RUN
statement).
|
static boolean |
isReturnValueSetInRootScope()
Returns
true if RETURN-VALUE was set during the call of the current root
external program. |
private static <T extends BaseDataType> |
isValueCompatible(BaseDataType value,
java.lang.Class<T> cls)
Test whether a value can be ultimately converted to a specific type/class.
|
private static java.lang.Object |
normalizeType(java.lang.Object arg,
java.lang.Class<?> sigType,
java.lang.Class<?> candidateType)
Normalize the given argument to be compatible to a BDT type.
|
private static ControlFlowOps.InternalEntryCaller |
overrideNativeCall(java.lang.String libname,
java.lang.String pname,
java.lang.String iename,
InternalEntry ie)
Override this native call to a FWD API call.
|
private static void |
prepareArguments(InternalEntry ie,
java.lang.Object... args)
Prepare the arguments to be passed to the
ControlFlowOps APIs. |
static ControlFlowOps.ArgValidationErrors |
reachableInternalEntry(handle h,
java.lang.String name,
boolean function,
java.lang.String modes,
boolean validateModes,
java.lang.Object... args)
Check if an internal procedure or function is reachable and valid.
|
static void |
release(character libname)
Attempts to unlpad the specified library from memory (the RELEASE EXTERNAL statement).
|
static void |
release(java.lang.String libname)
Attempts to unload the specified library from memory (the RELEASE EXTERNAL statement).
|
static character |
remoteCall(character content)
This is a special API which is used to delegate a call from converted 4GL code
(via _P2J_REMOTE_CALL_ functions) to the remote side.
|
static character |
remoteCall(java.lang.String content)
This is a special API which is used to delegate a call from converted 4GL code
(via _P2J_REMOTE_CALL_ functions) to the remote side.
|
(package private) static ExternalProgramWrapper |
resolveExternalProcedure(java.lang.String name,
character exports)
Resolve the external program with the specified name.
|
(package private) static handle |
resolveInstance(DeferredProgram deferred,
boolean isClass)
Given a deferred program configuration, resolve its singleton or single-run instance,
depending on how the original RUN statement (or REST service) was configured.
|
private static InternalEntry |
resolveLegacyEntry(ControlFlowOps.WorkArea wa,
boolean isStatic,
java.lang.Class<?> type,
java.lang.String name,
java.lang.String method,
java.lang.String modes,
java.lang.Object... origArgs)
Resolve the specified legacy method.
|
(package private) static handle |
resolveProgramForProcedure(handle h,
java.lang.String name)
Resolve the program handle of an internal procedure
name . |
private static void |
runAsThread(handle ht,
java.lang.Runnable worker)
Run the specified code in a related thread.
|
static <T extends BaseDataType> |
runSuper(java.lang.Class<T> type,
java.lang.String iename,
java.lang.Object... args)
Execute a SUPER() function call, forcing the returned value to be of the specified type.
|
static BaseDataType |
runSuper(java.lang.String iename,
java.lang.Object... args)
Execute the RUN SUPER statement or SUPER function.
|
static void |
setReturnValue(character returnValue)
Sets the most recent RETURN-VALUE for the current user's session.
|
static void |
setReturnValue(java.lang.String returnValue)
Sets the most recent RETURN-VALUE for the current user's session.
|
private static boolean |
validArguments(ControlFlowOps.WorkArea wa,
java.lang.String name,
ControlFlowOps.InternalEntryCaller caller,
boolean function,
java.lang.String modes,
java.lang.Object... args)
Check if the caller can validate the arguments.
|
private static boolean |
validArgumentsInt(ControlFlowOps.WorkArea wa,
java.lang.String name,
ControlFlowOps.InternalEntryCaller caller,
boolean function,
java.lang.String modes,
java.lang.Object... args)
Check if the caller can validate the arguments.
|
private static boolean |
validHandle(ControlFlowOps.WorkArea wa,
handle h,
java.lang.String name,
boolean explicit,
boolean function,
boolean dynamicFunction)
Check if the handle is valid for function or procedure invocation.
|
private static boolean |
validServer(handle hServer,
handle hProc,
character name)
Check if the given handle is a valid, connected appserver.
|
private static final java.util.logging.Logger LOG
private static ControlFlowOps.ContextContainer work
public static ControlFlowOps.ControlFlowOpsHelper getHelper()
ControlFlowOps.ControlFlowOpsHelper
, which has the context-local instance saved,
so API access can be done without a context-local query.public static void release(character libname)
NativeInvoker.release(java.lang.String)
method.libname
- The name of the library to attempt to unload.public static void release(java.lang.String libname)
NativeInvoker.release(java.lang.String)
method.libname
- The name of the library to attempt to unload. If null
or the
empty string are passed, this is a no-operation.public static character getReturnValue()
public static boolean isReturnValueSetInRootScope()
true
if RETURN-VALUE
was set during the call of the current root
external program. Used to determine if we need to update RETURN-VALUE
after an appserver
call.true
if RETURN-VALUE
was set during the call of the current root
external program.public static void setReturnValue(character returnValue)
returnValue
- The RETURN-VALUE to set or null
to assign the
empty string.public static void setReturnValue(java.lang.String returnValue)
returnValue
- The RETURN-VALUE to set or null
to assign the
empty string.public static <T extends BaseDataType> T runSuper(java.lang.Class<T> type, java.lang.String iename, java.lang.Object... args)
type
- The caller function's return type.iename
- The internal-entry's legacy 4GL name.args
- The argument list.unknown value
by default, on error or for
procedures.public static BaseDataType runSuper(java.lang.String iename, java.lang.Object... args)
nearest block
.iename
- The internal-entry's legacy 4GL name.args
- The argument list.unknown value
by default, on error or for
procedures.public static void invokeRemoteSingleRun(java.lang.String name, handle remoteHandle, boolean transactionDistinct)
RUN ... SINGLE-RUN ON SERVER h [TRANSACTION-DISTINCT]
statement.name
- The external program name.remoteHandle
- The remote server.transactionDistinct
- Flag indicating if TRANSACTION-DISTINCT was set.public static void invokeSingleRun(java.lang.String name)
RUN ... SINGLE-RUN SET h
statement.name
- The external program name.public static void invokeRemoteSingleton(java.lang.String name, handle remoteHandle, boolean transactionDistinct)
RUN ... SINGLETON ON SERVER h [TRANSACTION-DISTINCT]
statement.name
- The external program name.remoteHandle
- The remote server.transactionDistinct
- Flag indicating if TRANSACTION-DISTINCT was set.public static void invokeSingleton(java.lang.String name)
RUN ... SINGLETON
statement.name
- The external program name.public static void invokeRemoteSingleRunSet(java.lang.String name, handle hproc, handle remoteHandle, boolean transactionDistinct)
RUN ... SINGLE-RUN SET h ON SERVER h [TRANSACTION-DISTINCT]
statement.name
- The external program name.hproc
- The handle where to save the deferred configuration.remoteHandle
- The remote server.transactionDistinct
- Flag indicating if TRANSACTION-DISTINCT was set.public static void invokeSingleRunSet(java.lang.String name, handle hproc)
RUN ... SINGLE-RUN SET h
statement.name
- The external program name.hproc
- The handle where to save the deferred configuration.public static void invokeRemoteSingletonSet(java.lang.String name, handle hproc, handle remoteHandle, boolean transactionDistinct)
RUN ... SINGLETON SET h ON SERVER h [TRANSACTION-DISTINCT]
statement.name
- The external program name.hproc
- The handle where to save the deferred configuration.remoteHandle
- The remote server.transactionDistinct
- Flag indicating if TRANSACTION-DISTINCT was set.public static void invokeSingletonSet(java.lang.String name, handle hproc)
RUN ... SINGLETON SET h
statement.name
- The external program name.hproc
- The handle where to save the deferred configuration.public static void invokeRemoteSingleRun(character name, handle remoteHandle, boolean transactionDistinct)
RUN ... SINGLETON ON SERVER h [TRANSACTION-DISTINCT]
statement.name
- The external program name.remoteHandle
- The remote server.transactionDistinct
- Flag indicating if TRANSACTION-DISTINCT was set.public static void invokeSingleRun(character name)
RUN ... SINGLE-RUN
statement.name
- The external program name.public static void invokeRemoteSingleton(character name, handle remoteHandle, boolean transactionDistinct)
RUN ... SINGLETON ON SERVER h [TRANSACTION-DISTINCT]
statement.name
- The external program name.remoteHandle
- The remote server.transactionDistinct
- Flag indicating if TRANSACTION-DISTINCT was set.public static void invokeSingleton(character name)
RUN ... SINGLETON.
statement.name
- The external program name.public static void invokeRemoteSingleRunSet(character name, handle hproc, handle remoteHandle, boolean transactionDistinct)
RUN ... SINGLE-RUN SET h ON SERVER h [TRANSACTION-DISTINCT]
statement.name
- The external program name.hproc
- The handle where to save the deferred configuration.remoteHandle
- The remote server.transactionDistinct
- Flag indicating if TRANSACTION-DISTINCT was set.public static void invokeSingleRunSet(character name, handle hproc)
RUN ... SINGLE-RUN SET h
statement.name
- The external program name.hproc
- The handle where to save the deferred configuration.public static void invokeRemoteSingletonSet(character name, handle hproc, handle remoteHandle, boolean transactionDistinct)
RUN ... SINGLETON SET h ON SERVER h [TRANSACTION-DISTINCT]
statement.name
- The external program name.hproc
- The handle where to save the deferred configuration.remoteHandle
- The remote server.transactionDistinct
- Flag indicating if TRANSACTION-DISTINCT was set.public static void invokeSingletonSet(character name, handle hproc)
RUN ... SINGLETON SET h
statement.name
- The external program name.hproc
- The handle where to save the deferred configuration.public static BaseDataType invoke(InvokeConfig cfg)
cfg
- The configuration to invoke.unknown value
by default, on error or for procedures.public static void invokeWithMode(java.lang.String name, java.lang.String modes, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.modes
- A string representation of the modes of each parameter.args
- The procedure's arguments.public static void invokeWithMode(character name, java.lang.String modes, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.modes
- A string representation of the modes of each parameter.args
- The procedure's arguments.public static void invoke(java.lang.String name, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.args
- The procedure's arguments.public static void invoke(character name, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.args
- The procedure's arguments.public static void invokeRemoteWithMode(java.lang.String name, handle portHandle, handle remoteHandle, boolean transactionDistinct, java.lang.String modes, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.portHandle
- A handle variable where to save the web service. May be null.remoteHandle
- The handle to the remote object used to run the proceduretransactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmt.modes
- A string representation of the modes of each parameter.args
- The procedure's arguments.public static void invokeRemoteWithMode(character name, handle portHandle, handle remoteHandle, boolean transactionDistinct, java.lang.String modes, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.portHandle
- A handle variable where to save the web service. May be null.remoteHandle
- The handle to the remote object used to run the proceduretransactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmt.modes
- A string representation of the modes of each parameter.args
- The procedure's arguments.private static void invokeRemoteWithModeImpl(AsyncRequestImpl asyncReq, character name, handle portHandle, handle remoteHandle, boolean transactionDistinct, java.lang.String modes, java.lang.Object... args)
asyncReq
- When not-null, an AsyncRequestImpl
instance for the associated async
request.name
- The legacy 4GL name for the procedure.portHandle
- A handle variable where to save the web service. May be null.remoteHandle
- The handle to the remote object used to run the proceduretransactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmt.modes
- A string representation of the modes of each parameter.args
- The procedure's arguments.public static void invokeRemote(java.lang.String name, handle portHandle, handle remoteHandle, boolean transactionDistinct, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.portHandle
- A handle variable where to save the web service. May be null.remoteHandle
- The handle to the remote object used to run the proceduretransactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmt.args
- The procedure's arguments.public static void invokeRemote(character name, handle portHandle, handle remoteHandle, boolean transactionDistinct, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.portHandle
- A handle variable where to save the web service. May be null.remoteHandle
- The handle to the remote object used to run the proceduretransactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmt.args
- The procedure's arguments.public static void invokeRemoteAsyncWithMode(java.lang.String name, handle portHandle, handle remoteHandle, boolean transactionDistinct, handle asyncHandle, java.lang.String eventProcName, handle inEventprocHandle, java.lang.String modes, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.portHandle
- A handle variable where to save the web service. May be null.remoteHandle
- The handle to the remote object used to run the proceduretransactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmt.asyncHandle
- The handle to the asynchronous request.eventProcName
- This represents the name of the internal procedure for the EVENT-PROCEDURE clause,
null if this clause is not specified.inEventprocHandle
- The handle to a procedure in which context the specified EVENT-PROCEDURE internal
procedure is found, null if EVENT-PROCEDURE clause is not specified.modes
- A string representation of the modes of each parameter.args
- The procedure's arguments.public static void invokeRemoteAsyncWithMode(character name, handle portHandle, handle remoteHandle, boolean transactionDistinct, handle asyncHandle, java.lang.String eventProcName, handle inEventprocHandle, java.lang.String modes, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.portHandle
- A handle variable where to save the web service. May be null.remoteHandle
- The handle to the remote object used to run the proceduretransactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmtasyncHandle
- The handle to the asynchronous request.eventProcName
- This represents the name of the internal procedure for the EVENT-PROCEDURE clause,
null if this clause is not specified.inEventprocHandle
- The handle to a procedure in which context the specified EVENT-PROCEDURE internal
procedure is found, null if EVENT-PROCEDURE clause is not specified.modes
- A string representation of the modes of each parameter.args
- The procedure's arguments.public static void invokeRemoteAsyncWithMode(java.lang.String name, handle portHandle, handle remoteHandle, boolean transactionDistinct, handle asyncHandle, character eventProcName, handle inEventprocHandle, java.lang.String modes, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.portHandle
- A handle variable where to save the web service. May be null. May be null.remoteHandle
- The handle to the remote object used to run the proceduretransactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmtasyncHandle
- The handle to the asynchronous request.eventProcName
- This represents the name of the internal procedure for the EVENT-PROCEDURE clause,
null if this clause is not specified.inEventprocHandle
- The handle to a procedure in which context the specified EVENT-PROCEDURE internal
procedure is found, null if EVENT-PROCEDURE clause is not specified.modes
- A string representation of the modes of each parameter.args
- The procedure's arguments.public static void invokeRemoteAsyncWithMode(character name, handle portHandle, handle remoteHandle, boolean transactionDistinct, handle asyncHandle, character eventProcName, handle inEventprocHandle, java.lang.String modes, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.portHandle
- A handle variable where to save the web service. May be null.remoteHandle
- The handle to the remote object used to run the proceduretransactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmtasyncHandle
- The handle to the asynchronous request.eventProcName
- This represents the name of the internal procedure for the EVENT-PROCEDURE clause,
null if this clause is not specified.inEventprocHandle
- The handle to a procedure in which context the specified EVENT-PROCEDURE internal
procedure is found, null if EVENT-PROCEDURE clause is not specified.modes
- A string representation of the modes of each parameter.args
- The procedure's arguments.public static void invokeRemoteAsync(java.lang.String name, handle portHandle, handle remoteHandle, boolean transactionDistinct, handle asyncHandle, java.lang.String eventProcName, handle inEventprocHandle, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.portHandle
- A handle variable where to save the web service. May be null.remoteHandle
- The handle to the remote object used to run the proceduretransactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmtasyncHandle
- The handle to the asynchronous request.eventProcName
- This represents the name of the internal procedure for the EVENT-PROCEDURE clause,
null if this clause is not specified.inEventprocHandle
- The handle to a procedure in which context the specified EVENT-PROCEDURE internal
procedure is found, null if EVENT-PROCEDURE clause is not specified.args
- The procedure's arguments.public static void invokeRemoteAsync(character name, handle portHandle, handle remoteHandle, boolean transactionDistinct, handle asyncHandle, java.lang.String eventProcName, handle inEventprocHandle, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.portHandle
- A handle variable where to save the web service. May be null.remoteHandle
- The handle to the remote object used to run the proceduretransactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmtasyncHandle
- The handle to the asynchronous request.eventProcName
- This represents the name of the internal procedure for the EVENT-PROCEDURE clause,
null if this clause is not specified.inEventprocHandle
- The handle to a procedure in which context the specified EVENT-PROCEDURE internal
procedure is found, null if EVENT-PROCEDURE clause is not specified.args
- The procedure's arguments.public static void invokeRemoteAsync(java.lang.String name, handle portHandle, handle remoteHandle, boolean transactionDistinct, handle asyncHandle, character eventProcName, handle inEventprocHandle, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.portHandle
- A handle variable where to save the web service. May be null.remoteHandle
- The handle to the remote object used to run the proceduretransactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmtasyncHandle
- The handle to the asynchronous request.eventProcName
- This represents the name of the internal procedure for the EVENT-PROCEDURE clause,
null if this clause is not specified.inEventprocHandle
- The handle to a procedure in which context the specified EVENT-PROCEDURE internal
procedure is found, null if EVENT-PROCEDURE clause is not specified.args
- The procedure's arguments.public static void invokeRemoteAsync(character name, handle portHandle, handle remoteHandle, boolean transactionDistinct, handle asyncHandle, character eventProcName, handle inEventprocHandle, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.portHandle
- A handle variable where to save the web service. May be null.remoteHandle
- The handle to the remote object used to run the proceduretransactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmtasyncHandle
- The handle to the asynchronous request.eventProcName
- This represents the name of the internal procedure for the EVENT-PROCEDURE clause,
null if this clause is not specified.inEventprocHandle
- The handle to a procedure in which context the specified EVENT-PROCEDURE internal
procedure is found, null if EVENT-PROCEDURE clause is not specified.args
- The procedure's arguments.public static void invokeInWithMode(java.lang.String name, handle h, java.lang.String modes, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.h
- The handle to which this procedure belongs. When
null
, defaults to THIS-PROCEDURE.modes
- A string representation of the modes of each parameter.args
- The procedure's arguments.public static void invokeInWithMode(character name, handle h, java.lang.String modes, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.h
- The handle to which this procedure belongs. When
null
, defaults to THIS-PROCEDURE.modes
- A string representation of the modes of each parameter.args
- The procedure's arguments.public static void invokeIn(java.lang.String name, handle h, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.h
- The handle to which this procedure belongs. When
null
, defaults to THIS-PROCEDURE.args
- The procedure's arguments.public static void invokeIn(character name, handle h, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.h
- The handle to which this procedure belongs. When
null
, defaults to THIS-PROCEDURE.args
- The procedure's arguments.public static void invokeInAsyncWithMode(java.lang.String name, handle h, handle asyncHandle, java.lang.String eventProcName, handle inEventprocHandle, java.lang.String modes, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.h
- The handle to which this procedure belongs. When
null
, defaults to THIS-PROCEDURE.asyncHandle
- The handle to the asynchronous request.eventProcName
- This represents the name of the internal procedure for the EVENT-PROCEDURE clause,
null if this clause is not specified.inEventprocHandle
- The handle to a procedure in which context the specified EVENT-PROCEDURE internal
procedure is found, null if EVENT-PROCEDURE clause is not specified.modes
- A string representation of the modes of each parameter.args
- The procedure's arguments.public static void invokeInAsyncWithMode(character name, handle h, handle asyncHandle, java.lang.String eventProcName, handle inEventprocHandle, java.lang.String modes, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.h
- The handle to which this procedure belongs. When
null
, defaults to THIS-PROCEDURE.asyncHandle
- The handle to the asynchronous request.eventProcName
- This represents the name of the internal procedure for the EVENT-PROCEDURE clause,
null if this clause is not specified.inEventprocHandle
- The handle to a procedure in which context the specified EVENT-PROCEDURE internal
procedure is found, null if EVENT-PROCEDURE clause is not specified.modes
- A string representation of the modes of each parameter.args
- The procedure's arguments.public static void invokeInAsyncWithMode(java.lang.String name, handle h, handle asyncHandle, character eventProcName, handle inEventprocHandle, java.lang.String modes, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.h
- The handle to which this procedure belongs. When
null
, defaults to THIS-PROCEDURE.asyncHandle
- The handle to the asynchronous request.eventProcName
- This represents the name of the internal procedure for the EVENT-PROCEDURE clause,
null if this clause is not specified.inEventprocHandle
- The handle to a procedure in which context the specified EVENT-PROCEDURE internal
procedure is found, null if EVENT-PROCEDURE clause is not specified.modes
- A string representation of the modes of each parameter.args
- The procedure's arguments.public static void invokeInAsyncWithMode(character name, handle h, handle asyncHandle, character eventProcName, handle inEventprocHandle, java.lang.String modes, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.h
- The handle to which this procedure belongs. When
null
, defaults to THIS-PROCEDURE.asyncHandle
- The handle to the asynchronous request.eventProcName
- This represents the name of the internal procedure for the EVENT-PROCEDURE clause,
null if this clause is not specified.inEventprocHandle
- The handle to a procedure in which context the specified EVENT-PROCEDURE internal
procedure is found, null if EVENT-PROCEDURE clause is not specified.modes
- A string representation of the modes of each parameter.args
- The procedure's arguments.public static void invokeInAsync(java.lang.String name, handle h, handle asyncHandle, java.lang.String eventProcName, handle inEventprocHandle, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.h
- The handle to which this procedure belongs. When
null
, defaults to THIS-PROCEDURE.asyncHandle
- The handle to the asynchronous request.eventProcName
- This represents the name of the internal procedure for the EVENT-PROCEDURE clause,
null if this clause is not specified.inEventprocHandle
- The handle to a procedure in which context the specified EVENT-PROCEDURE internal
procedure is found, null if EVENT-PROCEDURE clause is not specified.args
- The procedure's arguments.public static void invokeInAsync(character name, handle h, handle asyncHandle, java.lang.String eventProcName, handle inEventprocHandle, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.h
- The handle to which this procedure belongs. When
null
, defaults to THIS-PROCEDURE.asyncHandle
- The handle to the asynchronous request.eventProcName
- This represents the name of the internal procedure for the EVENT-PROCEDURE clause,
null if this clause is not specified.inEventprocHandle
- The handle to a procedure in which context the specified EVENT-PROCEDURE internal
procedure is found, null if EVENT-PROCEDURE clause is not specified.args
- The procedure's arguments.public static void invokeInAsync(java.lang.String name, handle h, handle asyncHandle, character eventProcName, handle inEventprocHandle, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.h
- The handle to which this procedure belongs. When
null
, defaults to THIS-PROCEDURE.asyncHandle
- The handle to the asynchronous request.eventProcName
- This represents the name of the internal procedure for the EVENT-PROCEDURE clause,
null if this clause is not specified.inEventprocHandle
- The handle to a procedure in which context the specified EVENT-PROCEDURE internal
procedure is found, null if EVENT-PROCEDURE clause is not specified.args
- The procedure's arguments.public static void invokeInAsync(character name, handle h, handle asyncHandle, character eventProcName, handle inEventprocHandle, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.h
- The handle to which this procedure belongs. When
null
, defaults to THIS-PROCEDURE.asyncHandle
- The handle to the asynchronous request.eventProcName
- This represents the name of the internal procedure for the EVENT-PROCEDURE clause,
null if this clause is not specified.inEventprocHandle
- The handle to a procedure in which context the specified EVENT-PROCEDURE internal
procedure is found, null if EVENT-PROCEDURE clause is not specified.args
- The procedure's arguments.public static void invokePersistentWithMode(java.lang.String name, java.lang.String modes, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.modes
- A string representation of the modes of each parameter.args
- The procedure's arguments.public static void invokePersistentWithMode(character name, java.lang.String modes, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.modes
- A string representation of the modes of each parameter.args
- The procedure's arguments.public static void invokePersistent(java.lang.String name, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.args
- The procedure's arguments.public static void invokePersistent(character name, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.args
- The procedure's arguments.public static void invokePersistentSetWithMode(java.lang.String name, handle h, java.lang.String modes, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.h
- The handle to which the procedure reference must be saved.
When null
, just adds the procedure to the
persistent procedure list.modes
- A string representation of the modes of each parameter.args
- The procedure's arguments.public static void invokePersistentSetWithMode(character name, handle h, java.lang.String modes, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.h
- The handle to which the procedure reference must be saved.
When null
, just adds the procedure to the
persistent procedure list.modes
- A string representation of the modes of each parameter.args
- The procedure's arguments.public static void invokePersistentSet(java.lang.String name, handle h, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.h
- The handle to which the procedure reference must be saved.
When null
, just adds the procedure to the
persistent procedure list.args
- The procedure's arguments.public static void invokePersistentSet(character name, handle h, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.h
- The handle to which the procedure reference must be saved.
When null
, just adds the procedure to the
persistent procedure list.args
- The procedure's arguments.public static void invokeRemotePersistentSetWithMode(java.lang.String name, handle persistHandle, handle portHandle, handle remoteHandle, boolean transactionDistinct, java.lang.String modes, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.persistHandle
- The handle in which it will put the persistent external procedure.portHandle
- A handle variable where to save the web service. May be null.remoteHandle
- The handle to the remote object used to run the proceduretransactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ONmodes
- A string representation of the modes of each parameter.args
- The procedure's arguments.public static void invokeRemotePersistentSetWithMode(character name, handle persistHandle, handle portHandle, handle remoteHandle, boolean transactionDistinct, java.lang.String modes, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.persistHandle
- The handle in which it will put the persistent external procedure.portHandle
- A handle variable where to save the web service. May be null.remoteHandle
- The handle to the remote object used to run the proceduretransactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmtmodes
- A string representation of the modes of each parameter.args
- The procedure's arguments.public static void invokeRemotePersistentSet(java.lang.String name, handle persistHandle, handle portHandle, handle remoteHandle, boolean transactionDistinct, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.persistHandle
- The handle in which it will put the persistent external procedure.portHandle
- A handle variable where to save the web service. May be null.remoteHandle
- The handle to the remote object used to run the proceduretransactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmtargs
- The procedure's arguments.public static void invokeRemotePersistentSet(character name, handle persistHandle, handle portHandle, handle remoteHandle, boolean transactionDistinct, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.persistHandle
- The handle in which it will put the persistent external procedure.portHandle
- A handle variable where to save the web service. May be null.remoteHandle
- The handle to the remote object used to run the proceduretransactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmtargs
- The procedure's arguments.public static void invokeRemotePersistentWithMode(java.lang.String name, handle portHandle, handle remoteHandle, boolean transactionDistinct, java.lang.String modes, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.portHandle
- A handle variable where to save the web service. May be null.remoteHandle
- The handle to the remote object used to run the proceduretransactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmtargs
- The procedure's arguments.public static void invokeRemotePersistentWithMode(character name, handle portHandle, handle remoteHandle, boolean transactionDistinct, java.lang.String modes, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.portHandle
- A handle variable where to save the web service. May be null.remoteHandle
- The handle to the remote object used to run the proceduretransactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmtargs
- The procedure's arguments.public static void invokeRemotePersistent(java.lang.String name, handle portHandle, handle remoteHandle, boolean transactionDistinct, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.portHandle
- A handle variable where to save the web service. May be null.remoteHandle
- The handle to the remote object used to run the proceduretransactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmtargs
- The procedure's arguments.public static void invokeRemotePersistent(character name, handle portHandle, handle remoteHandle, boolean transactionDistinct, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.portHandle
- A handle variable where to save the web service. May be null.remoteHandle
- The handle to the remote object used to run the proceduretransactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmtargs
- The procedure's arguments.public static void invokeRemotePersistentAsyncWithMode(java.lang.String name, handle portHandle, handle remoteHandle, boolean transactionDistinct, handle asyncHandle, java.lang.String eventProcName, handle inEventprocHandle, java.lang.String modes, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.portHandle
- A handle variable where to save the web service. May be null.remoteHandle
- The handle to the remote object used to run the proceduretransactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmtasyncHandle
- The handle to the asynchronous request.eventProcName
- This represents the name of the internal procedure for the EVENT-PROCEDURE clause,
null if this clause is not specified.inEventprocHandle
- The handle to a procedure in which context the specified EVENT-PROCEDURE internal
procedure is found, null if EVENT-PROCEDURE clause is not specified.modes
- A string representation of the modes of each parameter.args
- The procedure's arguments.public static void invokeRemotePersistentAsyncWithMode(character name, handle portHandle, handle remoteHandle, boolean transactionDistinct, handle asyncHandle, java.lang.String eventProcName, handle inEventprocHandle, java.lang.String modes, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.portHandle
- A handle variable where to save the web service. May be null.remoteHandle
- The handle to the remote object used to run the proceduretransactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmtasyncHandle
- The handle to the asynchronous request.eventProcName
- This represents the name of the internal procedure for the EVENT-PROCEDURE clause,
null if this clause is not specified.inEventprocHandle
- The handle to a procedure in which context the specified EVENT-PROCEDURE internal
procedure is found, null if EVENT-PROCEDURE clause is not specified.modes
- A string representation of the modes of each parameter.args
- The procedure's arguments.public static void invokeRemotePersistentAsyncWithMode(java.lang.String name, handle portHandle, handle remoteHandle, boolean transactionDistinct, handle asyncHandle, character eventProcName, handle inEventprocHandle, java.lang.String modes, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.portHandle
- A handle variable where to save the web service. May be null.remoteHandle
- The handle to the remote object used to run the proceduretransactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmtasyncHandle
- The handle to the asynchronous request.eventProcName
- This represents the name of the internal procedure for the EVENT-PROCEDURE clause,
null if this clause is not specified.inEventprocHandle
- The handle to a procedure in which context the specified EVENT-PROCEDURE internal
procedure is found, null if EVENT-PROCEDURE clause is not specified.modes
- A string representation of the modes of each parameter.args
- The procedure's arguments.public static void invokeRemotePersistentAsyncWithMode(character name, handle portHandle, handle remoteHandle, boolean transactionDistinct, handle asyncHandle, character eventProcName, handle inEventprocHandle, java.lang.String modes, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.portHandle
- A handle variable where to save the web service. May be null.remoteHandle
- The handle to the remote object used to run the proceduretransactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmtasyncHandle
- The handle to the asynchronous request.eventProcName
- This represents the name of the internal procedure for the EVENT-PROCEDURE clause,
null if this clause is not specified.inEventprocHandle
- The handle to a procedure in which context the specified EVENT-PROCEDURE internal
procedure is found, null if EVENT-PROCEDURE clause is not specified.modes
- A string representation of the modes of each parameter.args
- The procedure's arguments.public static void invokeRemotePersistentAsync(java.lang.String name, handle portHandle, handle remoteHandle, boolean transactionDistinct, handle asyncHandle, java.lang.String eventProcName, handle inEventprocHandle, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.portHandle
- A handle variable where to save the web service. May be null.remoteHandle
- The handle to the remote object used to run the proceduretransactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmtasyncHandle
- The handle to the asynchronous request.eventProcName
- This represents the name of the internal procedure for the EVENT-PROCEDURE clause,
null if this clause is not specified.inEventprocHandle
- The handle to a procedure in which context the specified EVENT-PROCEDURE internal
procedure is found, null if EVENT-PROCEDURE clause is not specified.args
- The procedure's arguments.public static void invokeRemotePersistentAsync(character name, handle portHandle, handle remoteHandle, boolean transactionDistinct, handle asyncHandle, java.lang.String eventProcName, handle inEventprocHandle, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.portHandle
- A handle variable where to save the web service. May be null.remoteHandle
- The handle to the remote object used to run the proceduretransactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmtasyncHandle
- The handle to the asynchronous request.eventProcName
- This represents the name of the internal procedure for the EVENT-PROCEDURE clause,
null if this clause is not specified.inEventprocHandle
- The handle to a procedure in which context the specified EVENT-PROCEDURE internal
procedure is found, null if EVENT-PROCEDURE clause is not specified.args
- The procedure's arguments.public static void invokeRemotePersistentAsync(java.lang.String name, handle portHandle, handle remoteHandle, boolean transactionDistinct, handle asyncHandle, character eventProcName, handle inEventprocHandle, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.portHandle
- A handle variable where to save the web service. May be null.remoteHandle
- The handle to the remote object used to run the proceduretransactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmtasyncHandle
- The handle to the asynchronous request.eventProcName
- This represents the name of the internal procedure for the EVENT-PROCEDURE clause,
null if this clause is not specified.inEventprocHandle
- The handle to a procedure in which context the specified EVENT-PROCEDURE internal
procedure is found, null if EVENT-PROCEDURE clause is not specified.args
- The procedure's arguments.public static void invokeRemotePersistentAsync(character name, handle portHandle, handle remoteHandle, boolean transactionDistinct, handle asyncHandle, character eventProcName, handle inEventprocHandle, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.portHandle
- A handle variable where to save the web service. May be null.remoteHandle
- The handle to the remote object used to run the proceduretransactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmtasyncHandle
- The handle to the asynchronous request.eventProcName
- This represents the name of the internal procedure for the EVENT-PROCEDURE clause,
null if this clause is not specified.inEventprocHandle
- The handle to a procedure in which context the specified EVENT-PROCEDURE internal
procedure is found, null if EVENT-PROCEDURE clause is not specified.args
- The procedure's arguments.public static void invokeRemotePersistentSetAsyncWithMode(java.lang.String name, handle persistHandle, handle portHandle, handle remoteHandle, boolean transactionDistinct, handle asyncHandle, java.lang.String eventProcName, handle inEventprocHandle, java.lang.String modes, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.persistHandle
- The handle in which it will put the persistent external procedure.portHandle
- A handle variable where to save the web service. May be null.remoteHandle
- The handle to the remote object used to run the proceduretransactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmtasyncHandle
- The handle to the asynchronous request.eventProcName
- This represents the name of the internal procedure for the EVENT-PROCEDURE clause,
null if this clause is not specified.inEventprocHandle
- The handle to a procedure in which context the specified EVENT-PROCEDURE internal
procedure is found, null if EVENT-PROCEDURE clause is not specified.modes
- A string representation of the modes of each parameter.args
- The procedure's arguments.public static void invokeRemotePersistentSetAsyncWithMode(character name, handle persistHandle, handle portHandle, handle remoteHandle, boolean transactionDistinct, handle asyncHandle, java.lang.String eventProcName, handle inEventprocHandle, java.lang.String modes, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.persistHandle
- The handle in which it will put the persistent external procedure.portHandle
- A handle variable where to save the web service. May be null.remoteHandle
- The handle to the remote object used to run the proceduretransactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmtasyncHandle
- The handle to the asynchronous request.eventProcName
- This represents the name of the internal procedure for the EVENT-PROCEDURE clause,
null if this clause is not specified.inEventprocHandle
- The handle to a procedure in which context the specified EVENT-PROCEDURE internal
procedure is found, null if EVENT-PROCEDURE clause is not specified.modes
- A string representation of the modes of each parameter.args
- The procedure's arguments.public static void invokeRemotePersistentSetAsyncWithMode(java.lang.String name, handle persistHandle, handle portHandle, handle remoteHandle, boolean transactionDistinct, handle asyncHandle, character eventProcName, handle inEventprocHandle, java.lang.String modes, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.persistHandle
- The handle in which it will put the persistent external procedure.portHandle
- A handle variable where to save the web service. May be null.remoteHandle
- The handle to the remote object used to run the proceduretransactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmtasyncHandle
- The handle to the asynchronous request.eventProcName
- This represents the name of the internal procedure for the EVENT-PROCEDURE clause,
null if this clause is not specified.inEventprocHandle
- The handle to a procedure in which context the specified EVENT-PROCEDURE internal
procedure is found, null if EVENT-PROCEDURE clause is not specified.modes
- A string representation of the modes of each parameter.args
- The procedure's arguments.public static void invokeRemotePersistentSetAsyncWithMode(character name, handle persistHandle, handle portHandle, handle remoteHandle, boolean transactionDistinct, handle asyncHandle, character eventProcName, handle inEventprocHandle, java.lang.String modes, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.persistHandle
- The handle in which it will put the persistent external procedure.portHandle
- A handle variable where to save the web service. May be null.remoteHandle
- The handle to the remote object used to run the proceduretransactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmtasyncHandle
- The handle to the asynchronous request.eventProcName
- This represents the name of the internal procedure for the EVENT-PROCEDURE clause,
null if this clause is not specified.inEventprocHandle
- The handle to a procedure in which context the specified EVENT-PROCEDURE internal
procedure is found, null if EVENT-PROCEDURE clause is not specified.modes
- A string representation of the modes of each parameter.args
- The procedure's arguments.public static void invokeRemotePersistentSetAsync(java.lang.String name, handle persistHandle, handle portHandle, handle remoteHandle, boolean transactionDistinct, handle asyncHandle, java.lang.String eventProcName, handle inEventprocHandle, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.persistHandle
- The handle in which it will put the persistent external procedure.portHandle
- A handle variable where to save the web service. May be null.remoteHandle
- The handle to the remote object used to run the proceduretransactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmtasyncHandle
- The handle to the asynchronous request.eventProcName
- This represents the name of the internal procedure for the EVENT-PROCEDURE clause,
null if this clause is not specified.inEventprocHandle
- The handle to a procedure in which context the specified EVENT-PROCEDURE internal
procedure is found, null if EVENT-PROCEDURE clause is not specified.args
- The procedure's arguments.public static void invokeRemotePersistentSetAsync(character name, handle persistHandle, handle portHandle, handle remoteHandle, boolean transactionDistinct, handle asyncHandle, java.lang.String eventProcName, handle inEventprocHandle, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.persistHandle
- The handle in which it will put the persistent external procedure.portHandle
- A handle variable where to save the web service. May be null.remoteHandle
- The handle to the remote object used to run the proceduretransactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmtasyncHandle
- The handle to the asynchronous request.eventProcName
- This represents the name of the internal procedure for the EVENT-PROCEDURE clause,
null if this clause is not specified.inEventprocHandle
- The handle to a procedure in which context the specified EVENT-PROCEDURE internal
procedure is found, null if EVENT-PROCEDURE clause is not specified.args
- The procedure's arguments.public static void invokeRemotePersistentSetAsync(java.lang.String name, handle persistHandle, handle portHandle, handle remoteHandle, boolean transactionDistinct, handle asyncHandle, character eventProcName, handle inEventprocHandle, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.persistHandle
- The handle in which it will put the persistent external procedure.portHandle
- A handle variable where to save the web service. May be null.remoteHandle
- The handle to the remote object used to run the proceduretransactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmtasyncHandle
- The handle to the asynchronous request.eventProcName
- This represents the name of the internal procedure for the EVENT-PROCEDURE clause,
null if this clause is not specified.inEventprocHandle
- The handle to a procedure in which context the specified EVENT-PROCEDURE internal
procedure is found, null if EVENT-PROCEDURE clause is not specified.args
- The procedure's arguments.public static void invokeRemotePersistentSetAsync(character name, handle persistHandle, handle portHandle, handle remoteHandle, boolean transactionDistinct, handle asyncHandle, character eventProcName, handle inEventprocHandle, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.persistHandle
- The handle in which it will put the persistent external procedure.portHandle
- A handle variable where to save the web service. May be null.remoteHandle
- The handle to the remote object used to run the proceduretransactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmtasyncHandle
- The handle to the asynchronous request.eventProcName
- This represents the name of the internal procedure for the EVENT-PROCEDURE clause,
null if this clause is not specified.inEventprocHandle
- The handle to a procedure in which context the specified EVENT-PROCEDURE internal
procedure is found, null if EVENT-PROCEDURE clause is not specified.args
- The procedure's arguments.public static <T extends BaseDataType> T invokeDynamicFunctionWithMode(java.lang.Class<T> cls, java.lang.String name, java.lang.String modes, java.lang.Object... args)
cls
- Class.name
- The legacy 4GL name for the function.modes
- A string representation of the modes of each parameter.args
- The functions's arguments.unknown value
by default or on error.public static <T extends BaseDataType> T invokeDynamicFunctionWithMode(java.lang.Class<T> cls, character name, java.lang.String modes, java.lang.Object... args)
cls
- Class.name
- The legacy 4GL name for the function.modes
- A string representation of the modes of each parameter.args
- The functions's arguments.unknown value
by default or on error.public static <T extends BaseDataType> T invokeDynamicFunctionInWithMode(java.lang.Class<T> cls, java.lang.String name, handle h, java.lang.String modes, java.lang.Object... args)
cls
- Class.name
- The legacy 4GL name for the function.h
- The handle to which the function belongs. If null
defaults to THIS-PROCEDURE.args
- The functions's arguments.unknown value
by default or on error.public static <T extends BaseDataType> T invokeDynamicFunctionInWithMode(java.lang.Class<T> cls, character name, handle h, java.lang.String modes, java.lang.Object... args)
cls
- Class.name
- The legacy 4GL name for the function.h
- The handle to which the function belongs. If null
defaults to THIS-PROCEDURE.args
- The functions's arguments.unknown value
by default or on error.public static <T extends BaseDataType> T invokeDynamicFunction(java.lang.Class<T> cls, java.lang.String name, java.lang.Object... args)
cls
- Class.name
- The legacy 4GL name for the function.args
- The functions's arguments.unknown value
by default or on error.public static <T extends BaseDataType> T invokeDynamicFunction(java.lang.Class<T> cls, character name, java.lang.Object... args)
cls
- Class.name
- The legacy 4GL name for the function.args
- The functions's arguments.unknown value
by default or on error.public static <T extends BaseDataType> T invokeDynamicFunctionIn(java.lang.Class<T> cls, java.lang.String name, handle h, java.lang.Object... args)
cls
- Class.name
- The legacy 4GL name for the function.h
- The handle to which the function belongs. If null
defaults to THIS-PROCEDURE.args
- The functions's arguments.unknown value
by default or on error.public static <T extends BaseDataType> T invokeDynamicFunctionIn(java.lang.Class<T> cls, character name, handle h, java.lang.Object... args)
cls
- Class.name
- The legacy 4GL name for the function.h
- The handle to which the function belongs. If null
defaults to THIS-PROCEDURE.args
- The functions's arguments.unknown value
by default or on error.public static BaseDataType invokeDynamicFunctionWithMode(java.lang.String name, java.lang.String modes, java.lang.Object... args)
name
- The legacy 4GL name for the function.modes
- A string representation of the modes of each parameter.args
- The functions's arguments.unknown value
by default or on error.public static BaseDataType invokeDynamicFunctionWithMode(character name, java.lang.String modes, java.lang.Object... args)
name
- The legacy 4GL name for the function.modes
- A string representation of the modes of each parameter.args
- The functions's arguments.unknown value
by default or on error.public static BaseDataType invokeDynamicFunctionInWithMode(java.lang.String name, handle h, java.lang.String modes, java.lang.Object... args)
name
- The legacy 4GL name for the function.h
- The handle to which the function belongs. If null
defaults to THIS-PROCEDURE.args
- The functions's arguments.unknown value
by default or on error.public static BaseDataType invokeDynamicFunctionInWithMode(character name, handle h, java.lang.String modes, java.lang.Object... args)
name
- The legacy 4GL name for the function.h
- The handle to which the function belongs. If null
defaults to THIS-PROCEDURE.args
- The functions's arguments.unknown value
by default or on error.public static BaseDataType invokeDynamicFunction(java.lang.String name, java.lang.Object... args)
name
- The legacy 4GL name for the function.args
- The functions's arguments.unknown value
by default or on error.public static BaseDataType invokeDynamicFunction(character name, java.lang.Object... args)
name
- The legacy 4GL name for the function.args
- The functions's arguments.unknown value
by default or on error.public static BaseDataType invokeDynamicFunctionIn(java.lang.String name, handle h, java.lang.Object... args)
name
- The legacy 4GL name for the function.h
- The handle to which the function belongs. If null
defaults to THIS-PROCEDURE.args
- The functions's arguments.unknown value
by default or on error.public static BaseDataType invokeDynamicFunctionIn(character name, handle h, java.lang.Object... args)
name
- The legacy 4GL name for the function.h
- The handle to which the function belongs. If null
defaults to THIS-PROCEDURE.args
- The functions's arguments.unknown value
by default or on error.public static <T extends BaseDataType> T invokeFunctionWithMode(java.lang.Class<T> cls, java.lang.String name, java.lang.String modes, java.lang.Object... args)
cls
- Class.name
- The legacy 4GL name for the function.modes
- A string representation of the modes of each parameter.args
- The functions's arguments.unknown value
by default or on error.public static <T extends BaseDataType> T invokeFunctionWithMode(java.lang.Class<T> cls, character name, java.lang.String modes, java.lang.Object... args)
cls
- Class.name
- The legacy 4GL name for the function.modes
- A string representation of the modes of each parameter.args
- The functions's arguments.unknown value
by default or on error.public static <T extends BaseDataType> T invokeFunctionInWithMode(java.lang.Class<T> cls, java.lang.String name, handle h, java.lang.String modes, java.lang.Object... args)
cls
- Class.name
- The legacy 4GL name for the function.h
- The handle to which the function belongs. If null
defaults to THIS-PROCEDURE.modes
- A string representation of the modes of each parameter.args
- The functions's arguments.unknown value
by default or on error.public static <T extends BaseDataType> T invokeFunctionInWithMode(java.lang.Class<T> cls, character name, handle h, java.lang.String modes, java.lang.Object... args)
cls
- Class.name
- The legacy 4GL name for the function.h
- The handle to which the function belongs. If null
defaults to THIS-PROCEDURE.modes
- A string representation of the modes of each parameter.args
- The functions's arguments.unknown value
by default or on error.public static <T extends BaseDataType> T invokeFunction(java.lang.Class<T> cls, java.lang.String name, java.lang.Object... args)
cls
- Class.name
- The legacy 4GL name for the function.args
- The functions's arguments.unknown value
by default or on error.public static <T extends BaseDataType> T invokeFunction(java.lang.Class<T> cls, character name, java.lang.Object... args)
cls
- Class.name
- The legacy 4GL name for the function.args
- The functions's arguments.unknown value
by default or on error.public static <T extends BaseDataType> T invokeFunctionIn(java.lang.Class<T> cls, java.lang.String name, handle h, java.lang.Object... args)
cls
- Class.name
- The legacy 4GL name for the function.h
- The handle to which the function belongs. If null
defaults to THIS-PROCEDURE.args
- The functions's arguments.unknown value
by default or on error.public static <T extends BaseDataType> T invokeFunctionIn(java.lang.Class<T> cls, character name, handle h, java.lang.Object... args)
cls
- Class.name
- The legacy 4GL name for the function.h
- The handle to which the function belongs. If null
defaults to THIS-PROCEDURE.args
- The functions's arguments.unknown value
by default or on error.public static BaseDataType invokeFunctionWithMode(java.lang.String name, java.lang.String modes, java.lang.Object... args)
name
- The legacy 4GL name for the function.modes
- A string representation of the modes of each parameter.args
- The functions's arguments.unknown value
by default or on error.public static BaseDataType invokeFunctionWithMode(character name, java.lang.String modes, java.lang.Object... args)
name
- The legacy 4GL name for the function.modes
- A string representation of the modes of each parameter.args
- The functions's arguments.unknown value
by default or on error.public static BaseDataType invokeFunctionInWithMode(java.lang.String name, handle h, java.lang.String modes, java.lang.Object... args)
name
- The legacy 4GL name for the function.h
- The handle to which the function belongs. If null
defaults to THIS-PROCEDURE.modes
- A string representation of the modes of each parameter.args
- The functions's arguments.unknown value
by default or on error.public static BaseDataType invokeFunctionInWithMode(character name, handle h, java.lang.String modes, java.lang.Object... args)
name
- The legacy 4GL name for the function.h
- The handle to which the function belongs. If null
defaults to THIS-PROCEDURE.modes
- A string representation of the modes of each parameter.args
- The functions's arguments.unknown value
by default or on error.public static BaseDataType invokeFunction(java.lang.String name, java.lang.Object... args)
name
- The legacy 4GL name for the function.args
- The functions's arguments.unknown value
by default or on error.public static BaseDataType invokeFunction(character name, java.lang.Object... args)
name
- The legacy 4GL name for the function.args
- The functions's arguments.unknown value
by default or on error.public static BaseDataType invokeFunctionIn(java.lang.String name, handle h, java.lang.Object... args)
name
- The legacy 4GL name for the function.h
- The handle to which the function belongs. If null
defaults to THIS-PROCEDURE.args
- The functions's arguments.unknown value
by default or on error.public static BaseDataType invokeFunctionIn(character name, handle h, java.lang.Object... args)
name
- The legacy 4GL name for the function.h
- The handle to which the function belongs. If null
defaults to THIS-PROCEDURE.args
- The functions's arguments.unknown value
by default or on error.public static void invokeAsThreadWithMode(java.lang.String name, java.lang.String modes, java.lang.Object... args)
This implements the RUN ... AS-THREAD SET ht. statement.
name
- The legacy 4GL name for the procedure.modes
- A string representation of the modes of each parameter.args
- The procedure's arguments.public static void invokeAsThreadSetWithMode(java.lang.String name, handle ht, java.lang.String modes, java.lang.Object... args)
This implements the RUN ... AS-THREAD SET ht. statement.
name
- The legacy 4GL name for the procedure.ht
- The handle where to save the resource to manage the related thread.modes
- A string representation of the modes of each parameter.args
- The procedure's arguments.public static void invokeAsThread(java.lang.String name)
This implements the RUN ... AS-THREAD. statement.
name
- The legacy 4GL name for the procedure.public static void invokeAsThreadSet(java.lang.String name, handle ht)
This implements the RUN ... AS-THREAD SET ht. statement.
name
- The legacy 4GL name for the procedure.ht
- The handle where to save the resource to manage the related thread.public static ControlFlowOps.ArgValidationErrors reachableInternalEntry(handle h, java.lang.String name, boolean function, java.lang.String modes, boolean validateModes, java.lang.Object... args)
h
- A valid procedure handle.name
- The procedure or function name.function
- Flag indicating if the search is for a function or for an internal procedure.modes
- The parameter modes.validateModes
- Flag indicating if the parameter modes should be validated or not.args
- The passed arguments.ControlFlowOps.ArgValidationErrors.NO_ERROR
if error is not exists.public static character remoteCall(character content)
This API is expected to block waiting for a response.
content
- The request data incoming from 4GL.public static character remoteCall(java.lang.String content)
This API is expected to block waiting for a response.
content
- The request data incoming from 4GL.public static InvocationResponsePayload invoke(InvocationRequestPayload payload)
payload
- The details about the request.public static boolean hadInvalidArguments()
ControlFlowOps.WorkArea.invalidArgs
flag.static BaseDataType invoke(handle h, character name, boolean function, boolean dynamicFunction, boolean superCall, boolean transactionDistinct, java.lang.String modes, java.lang.Object... args)
h
is not null, then this is a RUN ... IN handle call.exports
is not null, then this is a RUN ... ON SERVER call, so
only external programs will be searched. Note that this parameter will be not-null
only when this call is executed on the remote, appserver, side.h
- The handle to which the procedure belongs. If null
, defaults to
THIS-PROCEDURE.name
- The legacy 4GL name for the function or procedure.function
- true
if this is a function call.dynamicFunction
- true
if this is a DYNAMIC-FUNCTION call.superCall
- true
if this is a RUN SUPER or SUPER() call.transactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmt.modes
- A string representation of the modes of each parameter.args
- The arguments.unknown
value
by default, on error or for procedures.static ExternalProgramWrapper resolveExternalProcedure(java.lang.String name, character exports)
name
- The legacy 4GL name for the function or procedure.exports
- The list of allowed external procedures to be invoked with a RUN ... ON SERVER
statement.ExternalProgramWrapper
.static void initializeExternalProcedure(ExternalProgramWrapper extProg, boolean transactionDistinct, java.lang.String modes, java.lang.Object... args)
execute
method.extProg
- The associated external program.transactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmt.modes
- A string representation of the modes of each parameter.args
- The arguments.static void executeDestructor(_BaseObject_ referent, java.lang.String name)
referent
- The legacy object.name
- The destructor name.static boolean initializeLegacyClass(java.lang.Class<?> cls, java.lang.Object referent, java.lang.String name, java.lang.String ctor)
cls
- The legacy class.name
- The legacy class name.ctor
- The static constructor name.true
if the initialization completed or if there is no static
constructor.static boolean initializeLegacyObject(java.lang.Object referent, java.lang.String name, java.lang.String[] executes, java.lang.String ctor, java.lang.String modes, java.lang.Object... args)
referent
- The object instance.name
- The instantiating legacy class name.executes
- The list of 'execute' initialization methods.ctor
- The constructor name.modes
- The parameter modes for the constructor method.args
- The arguments for the constructor method.true
if the initialization completed.static java.lang.Object invokeLegacyMethod(boolean voidReturn, java.lang.Object referent, java.lang.String name, java.lang.String method, java.lang.String modes, java.lang.Object[] args)
voidReturn
- Flag indicating that the method can return void.referent
- The referent where the method belongs. This can be a Class
instance in
case of static methods or a _BaseObject_
instance in case of instance
methods.name
- The legacy class name.method
- The legacy method name.modes
- The argument's modes. May be null
.args
- The arguments.null
if this is a void method.static java.lang.Object invokeLegacyMethod(InternalEntry ie, boolean voidReturn, java.lang.Object referent, java.lang.String name, java.lang.String method, java.lang.String modes, java.lang.Object[] args)
ie
- The target entry associated with this method.voidReturn
- Flag indicating that the method can return void.referent
- The referent where the method belongs. This can be a Class
instance in
case of static methods or a _BaseObject_
instance in case of instance
methods.name
- The legacy class name.method
- The legacy method name.modes
- The argument's modes. May be null
.args
- The arguments.null
if this is a void method.private static void prepareArguments(InternalEntry ie, java.lang.Object... args)
ControlFlowOps
APIs. This requires
wrapping any output parameters and other extent, OUTPUT or INPUT-OUTPUT related work.ie
- The internal entry to be executed.args
- The arguments.private static java.lang.Object normalizeType(java.lang.Object arg, java.lang.Class<?> sigType, java.lang.Class<?> candidateType)
arg
- The argument.sigType
- The argument's original type.candidateType
- The method definition parameter type.private static InternalEntry resolveLegacyEntry(ControlFlowOps.WorkArea wa, boolean isStatic, java.lang.Class<?> type, java.lang.String name, java.lang.String method, java.lang.String modes, java.lang.Object... origArgs)
wa
- The context-local state in ControlFlowOps.WorkArea
.isStatic
- Flag indicating if we are looking for a static method.type
- The legacy class where to look.name
- The legacy class name.method
- The legacy method name.modes
- The argument's modes. May be null
.origArgs
- The arguments.static void invokeExternalProcedure(character name, boolean persistent, handle h, boolean transactionDistinct, character exports, java.lang.String modes, java.lang.Object... args)
exports
parameter is not null, then the ON SERVER clause is
in effect; this parameter can be not-null only on the remote, appserver, side.name
- The legacy 4GL name for the function or procedure.persistent
- Flag indicating that this call needs to be persistent.h
- The handle where to save the persistent procedure.transactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmt.exports
- The list of allowed external procedures to be invoked with a RUN ... ON SERVER
statement.modes
- A string representation of the modes of each parameter.args
- The arguments.static void invokeExternalProcedure(character name, boolean persistent, boolean singleton, boolean singleRun, handle h, boolean transactionDistinct, character exports, java.lang.String modes, java.lang.Object... args)
exports
parameter is not null, then the ON SERVER clause is
in effect; this parameter can be not-null only on the remote, appserver, side.name
- The legacy 4GL name for the function or procedure.persistent
- Flag indicating that this call needs to be persistent.singleton
- Flag indicating that this call needs to be ran as singleton.singleRun
- Flag indicating that this call needs to be ran as single-run.h
- The handle where to save the persistent procedure.transactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmt.exports
- The list of allowed external procedures to be invoked with a RUN ... ON SERVER
statement.modes
- A string representation of the modes of each parameter.args
- The arguments.static void invokeExternalProcedure(character name, boolean persistent, boolean singleton, boolean singleRun, handle h, boolean transactionDistinct, character exports, java.lang.String modes, ControlFlowOps.ArgumentResolver argResolver)
exports
parameter is not null, then the ON SERVER clause is
in effect; this parameter can be not-null only on the remote, appserver, side.name
- The legacy 4GL name for the function or procedure.persistent
- Flag indicating that this call needs to be persistent.singleton
- Flag indicating that this call needs to be ran as singleton.singleRun
- Flag indicating that this call needs to be ran as single-run.h
- The handle where to save the persistent procedure.transactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmt.exports
- The list of allowed external procedures to be invoked with a RUN ... ON SERVER
statement.modes
- A string representation of the modes of each parameter.argResolver
- The argument resolver.static handle resolveProgramForProcedure(handle h, java.lang.String name)
name
.
The method will try to find the internal procedure name
in program
h
. If name
is not found in h
, super procedures of
h
are searched. If name
is not found in super procedures of
h
SESSION
super procedures are searched. If name
is not found, null
is returned.
h
- The program handle.name
- The internal procedure name.null
if not found.static handle resolveInstance(DeferredProgram deferred, boolean isClass)
ProcedureManager.getSingleton(Class)
.deferred
- The deferred program configuration.isClass
- Flag indicating if this instance must be a legacy 4GL class.handle
referencing either a ObjectResource
or an
ExternalProgramWrapper
.private static <T extends BaseDataType> T convertValue(java.lang.Class<T> cls, BaseDataType value)
null
,
returns null
. If value is unknown value
, creates a new instance
of the given type that represents the unknown value
, otherwise returns value
casted to given type.cls
- Class.value
- Value.null
, returns null
. If value is
unknown value
, creates a new instance of the given type that
represents the unknown value
, otherwise returns value casted to
given type.java.lang.IllegalStateException
- If value is not compatible with given class.private static <T extends BaseDataType> boolean isValueCompatible(BaseDataType value, java.lang.Class<T> cls)
T
- The parameter type - a subclass of BaseDataType
.value
- The value to be tested.cls
- The expected type of the parameter. A subclass of BaseDataType
.true
if the value is compatible with the specified parameter type.private static void invokeAsyncImpl(ControlFlowOps.AsyncCall request, handle hServer, handle asyncHandle, handle pHandle)
request
- The request which will execute the procedure call.hServer
- The server used to execute this async call.asyncHandle
- The handle to the asynchronous request.pHandle
- The handle to which the procedure belongs, if it is RUN ... IN handle statement.private static BaseDataType invokeFunctionImpl(character name, handle h, boolean dynamicFunction, boolean superCall, java.lang.String modes, java.lang.Object... args)
name
- The legacy 4GL name for the function.h
- The handle to which the function belongs. If null
defaults to THIS-PROCEDURE.dynamicFunction
- true
if this is a DYNAMIC-FUNCTION call.superCall
- true
if this is a SUPER() call.modes
- A string representation of the modes of each parameter.args
- The functions's arguments.unknown value
by default or on error.private static void invokeInImpl(character name, handle h, boolean superCall, java.lang.String modes, java.lang.Object... args)
name
- The legacy 4GL name for the procedure.h
- The handle to which the procedure belongs. If null
defaults to THIS-PROCEDURE.superCall
- true
if this is a RUN SUPER call.modes
- A string representation of the modes of each parameter.args
- The functions's arguments.private static BaseDataType invokeImpl(handle server, handle h, character name, boolean function, boolean dynamicFunction, boolean superCall, boolean transactionDistinct, java.lang.String modes, java.lang.Object... args)
server
- The target appserver, to which this call will be dispatched.
Is null
if the RUN statement doesn't have the ON SERVER clause.name
- The legacy 4GL name for the function or procedure.h
- The handle to which the procedure belongs. If null
defaults to
THIS-PROCEDURE. If this is a proxy procedure, the call is dispatched to the
procedure's server.function
- true
if this is a function call.dynamicFunction
- true
if this is a DYNAMIC-FUNCTION call.superCall
- true
if this is a RUN SUPER or SUPER() call.transactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmt.modes
- A string representation of the modes of each parameter.args
- The arguments.unknown value
by default, on error or for
procedures.private static BaseDataType invokeImpl(AsyncRequestImpl asyncReq, handle server, handle h, character name, boolean function, boolean dynamicFunction, boolean superCall, boolean transactionDistinct, java.lang.String modes, java.lang.Object... args)
asyncReq
- When not-null, an AsyncRequestImpl
instance for the associated async
request.server
- The target appserver, to which this call will be dispatched.
Is null
if the RUN statement doesn't have the ON SERVER clause.name
- The legacy 4GL name for the function or procedure.h
- The handle to which the procedure belongs. If null
defaults to
THIS-PROCEDURE. If this is a proxy procedure, the call is dispatched to the
procedure's server.function
- true
if this is a function call.dynamicFunction
- true
if this is a DYNAMIC-FUNCTION call.superCall
- true
if this is a RUN SUPER or SUPER() call.transactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmt.modes
- A string representation of the modes of each parameter.args
- The arguments.unknown value
by default, on error or for
procedures.private static BaseDataType invokeImpl(java.util.List<ControlFlowOps.Resolver> resolvers, handle h, character cname, boolean function, boolean dynamicFunction, boolean superCall, boolean transactionDistinct, boolean asThread, handle ht, java.lang.String modes, ControlFlowOps.ArgumentResolver argResolver)
resolvers
- The Resolver
instances to use to resolve the internal
entry to a Java method, based on the passed parameters.h
- The handle to which the procedure belongs. If null
defaults to THIS-PROCEDURE.cname
- The legacy 4GL name for the function.function
- true
if this is a function call.dynamicFunction
- true
if this is a DYNAMIC-FUNCTION call.superCall
- true
if this is a RUN SUPER or SUPER() call.transactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmt.asThread
- This marks if "AS-THREAD" option is specified with the RUN stmt.ht
- When non-null, it will hold a reference to a resource which manages the new
thread.modes
- A string representation of the modes of each parameter.argResolver
- The argument resolver.unknown value
by default, on error or for
procedures.private static void invokePersistentImpl(handle server, character name, handle persistHandle, handle portHandle, boolean transactionDistinct, java.lang.String modes, java.lang.Object... args)
server
- The server instance on which to run the procedure. This will save the procedure
in the remote persistent procedure list, not on the requester side. May be null.name
- The legacy 4GL name for the procedure.persistHandle
- The handle to which the procedure reference must be saved.
When null
and not ran remotely, just adds the procedure to the
persistent procedure list.portHandle
- A handle variable where to save the web service. May be null.transactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmt.modes
- A string representation of the modes of each parameter.args
- The procedure's arguments.private static void initializeProxy(ControlFlowOps.AsyncCall call)
call
- The async request which currently holds a not-initialized proxy procedure.private static void invokeSingletonOrSingleRun(boolean singleRun, character name, handle hproc, handle server, boolean transactionDistinct)
This just creates a DeferredProgram
configuration, saving the target name and any
remote server configuration specified at the RUN statement.
singleRun
- Flag indicating if we are using SINGLE-RUN (if true
);
false
for SINGLETON.name
- The external program name.hproc
- The handle where to save this deferred resource.server
- A server configuration - may be unknown or null
.transactionDistinct
- Flag indicating if the TRANSACTION-DISTINCT option was used.private static void invokePersistentImpl(AsyncRequestImpl asyncReq, handle server, character name, handle persistHandle, handle portHandle, boolean transactionDistinct, java.lang.String modes, java.lang.Object... args)
asyncReq
- When not-null, an AsyncRequestImpl
instance for the associated async
request.server
- The server instance on which to run the procedure. This will save the procedure
in the remote persistent procedure list, not on the requester side. May be null.name
- The legacy 4GL name for the procedure.persistHandle
- The handle to which the procedure reference must be saved.
When null
and not ran remotely, just adds the procedure to the
persistent procedure list.portHandle
- A handle variable where to save the web service. May be null.transactionDistinct
- This marks if "TRANSACTION DISTINCT" option is specified with the RUN ... ON stmt.modes
- A string representation of the modes of each parameter.args
- The procedure's arguments.private static boolean validArguments(ControlFlowOps.WorkArea wa, java.lang.String name, ControlFlowOps.InternalEntryCaller caller, boolean function, java.lang.String modes, java.lang.Object... args)
Note that the content of the args
array can be changed. An item will be changed if
any of following occurs:
wa
- The context-local state in ControlFlowOps.WorkArea
.name
- The legacy program name.caller
- The caller used to validate the arguments.function
- true
if this is a function call.modes
- A string representation of the modes of each parameter.args
- The argument list.true
if the arguments are valid.private static boolean validArgumentsInt(ControlFlowOps.WorkArea wa, java.lang.String name, ControlFlowOps.InternalEntryCaller caller, boolean function, java.lang.String modes, java.lang.Object... args)
Note that the content of the args
array can be changed. An item will be changed if
any of following occurs:
wa
- The context-local state in ControlFlowOps.WorkArea
.name
- The legacy program name.caller
- The caller used to validate the arguments.function
- true
if this is a function call.modes
- A string representation of the modes of each parameter.args
- The argument list.true
if the arguments are valid.private static boolean validHandle(ControlFlowOps.WorkArea wa, handle h, java.lang.String name, boolean explicit, boolean function, boolean dynamicFunction)
wa
- The context-local state in ControlFlowOps.WorkArea
.h
- The handle to which the procedure belongs. If null
defaults to THIS-PROCEDURE.name
- The legacy 4GL name for the function.explicit
- true
if the passed handle was explicitly set (for
RUN ... IN or FUNCTION ... IN handle cases.function
- true
if this is a function call.dynamicFunction
- true
if this is a DYNAMIC-FUNCTION call.true
if the handle is valid for function or
procedure invocation.private static boolean validServer(handle hServer, handle hProc, character name)
hServer
- The handle to validate as an appserver.hProc
- A procedure handle for IN handle cases.name
- The target 4GL legacy name.true
if the given handle is valid.private static void invokeFailure(java.lang.String target) throws StopConditionException
target
- The procedure that cannot be found.StopConditionException
private static void invalidHandle(character name) throws ErrorConditionException
name
- The RUN statement target.ErrorConditionException
private static void invokeError(ControlFlowOps.InternalEntryCaller caller, java.lang.String name, java.lang.Exception deferred)
RuntimeException
, as the function or procedure
invocation has raised an exception.caller
- ControlFlowOps.InternalEntryCaller
caller instance used to invoke the
function or procedure. May be null.name
- The legacy 4GL name passed to the function or procedure call
statement.deferred
- The deferred error.private static void runAsThread(handle ht, java.lang.Runnable worker)
ht
- When non-null, it will save a resource which can manage the related thread doing
this work.worker
- The work to be executed.private static ControlFlowOps.InternalEntryCaller overrideNativeCall(java.lang.String libname, java.lang.String pname, java.lang.String iename, InternalEntry ie)
libname
- The library name where this native procedure should be found.pname
- The legacy name of the external procedure from which this API is being called.iename
- The internal-entry name being called which is usually the same as the entry
point name in the library except where an ordinal is being used.ie
- The already resolved internal entry.ControlFlowOps.InternalEntryCaller
instance, if this call can be overridden.private static void cleanupPending(ControlFlowOps.WorkArea wa)