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.LastInvokeDetails
The cached details of an invocation callsite.
|
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 CentralLogger |
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 |
cacheInvocation(ControlFlowOps.WorkArea wa,
ControlFlowOps.InternalEntryCaller caller,
InvokeConfig cfg,
java.lang.Object thisCaller,
java.lang.Object[] args)
Cache the invocation target for a callsite.
|
(package private) static java.lang.Class<?> |
calculateType(java.lang.Object arg)
Given an instance passed as an argument to a method call, calculate its actual type, for cases such when
the value is wrapped in field or property reference, etc.
|
private static java.lang.Exception |
checkInvocationException(java.lang.reflect.InvocationTargetException exc)
Check the exception cause in the chain of the exception returned from a reflection call, if it contains
any FWD condition exceptions.
|
private static BaseDataType |
checkInvokeResult(java.lang.Object res,
java.lang.String name,
boolean function,
boolean dynamicFunction)
Check the invocation result for a DYNAMIC-FUNCTION or FUNCTION call.
|
static void |
cleanupPending()
Cleanup all pending resources initialized by the external program default constructor, as the call
failed.
|
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,
InternalEntry dtor)
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<? extends _BaseObject_> cls,
java.lang.Object referent,
java.lang.String name)
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.reflect.Method[] executes,
java.lang.String modes,
boolean bypassConstructor,
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.
|
static void |
invalidateCallSiteCache()
Invalidate the entire
cache. |
static void |
invalidateCallSiteCache(java.lang.Object referent)
Invalidate the
cache for the specified instance. |
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).
|
static BaseDataType |
invoke(java.lang.Class cls,
WrappedResource resource,
InvokeConfig cfg)
Using the current invoke configuration, perform the call.
|
(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.
|
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 |
prepareArgs(java.lang.String modes,
java.lang.Object[] args)
Transform any
DataSetParameter or TableParameter arguments at invokeLegacyMethod(boolean, java.lang.Object, java.lang.String, java.lang.String, java.lang.String, java.lang.Object[])
or initializeLegacyClass(java.lang.Class<? extends com.goldencode.p2j.oo.lang._BaseObject_>, java.lang.Object, java.lang.String), to their mode'ed versions, based on the INPUT, OUTPUT and
INPUT-OUTPUT modes. |
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.
|
static void |
resetReturnValueSetInRootScope()
Reset the
ControlFlowOps.WorkArea.returnValueSetInRootScope flag. |
(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.
|
static InternalEntry |
resolveLegacyEntry(boolean isPoly,
java.lang.Class<?> type,
java.lang.String name,
java.lang.String method,
boolean isStatic,
java.lang.String modes,
java.lang.Object... origArgs)
Resolve the specified legacy method.
|
private static InternalEntry |
resolveLegacyEntry(ControlFlowOps.WorkArea wa,
boolean isPoly,
boolean firstType,
boolean isStatic,
java.lang.Class<?> type,
java.lang.String name,
java.lang.String method,
java.lang.String modes,
java.util.List<InternalEntry> overloads,
java.lang.Object... origArgs)
Given a list of overloaded methods, resolve the target matching the passed arguments.
|
private static InternalEntry |
resolveLegacyEntry(ControlFlowOps.WorkArea wa,
boolean isPoly,
boolean firstType,
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 BaseDataType |
wrapAppServerCall(java.util.concurrent.Callable<BaseDataType> serverCall,
handle serverHandle)
Saves the current list of client types and sets the new values from the server connect type.
|
private static final CentralLogger 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 resetReturnValueSetInRootScope()
ControlFlowOps.WorkArea.returnValueSetInRootScope flag.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 void invalidateCallSiteCache()
cache.public static void invalidateCallSiteCache(java.lang.Object referent)
cache for the specified instance.referent - The instance to remove.public static BaseDataType invoke(InvokeConfig cfg)
cfg - The configuration to invoke.unknown value by default, on error or for procedures.public static BaseDataType invoke(java.lang.Class cls, WrappedResource resource, InvokeConfig cfg)
cls - The return type in case of function calls.resource - When not-null, this is an FWD internal call, associated with a callback for a resource.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.public static InternalEntry resolveLegacyEntry(boolean isPoly, java.lang.Class<?> type, java.lang.String name, java.lang.String method, boolean isStatic, java.lang.String modes, java.lang.Object... origArgs)
isPoly - Flag indicating if the call is for a non-dynamic POLY call.type - The legacy class where to look.name - The legacy class name.method - The legacy method name.isStatic - Flag indicating if we are looking for a static method.modes - The argument's modes. May be null.origArgs - The arguments.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, InternalEntry dtor)
referent - The legacy object.dtor - The destructor.static boolean initializeLegacyClass(java.lang.Class<? extends _BaseObject_> cls, java.lang.Object referent, java.lang.String name)
cls - The legacy class.name - The legacy class 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.reflect.Method[] executes,
java.lang.String modes,
boolean bypassConstructor,
java.lang.Object... args)
referent - The object instance.name - The instantiating legacy class name.executes - The list of 'execute' initialization methods.modes - The parameter modes for the constructor method.bypassConstructor - Avoid executing the constructor method during initialization if true.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.public 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 isPoly, boolean firstType, 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.isPoly - Flag indicating if the call is for a non-dynamic POLY call.firstType - Flag indicating if we are looking in the first type (this is not for a super-type).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.private static InternalEntry resolveLegacyEntry(ControlFlowOps.WorkArea wa, boolean isPoly, boolean firstType, boolean isStatic, java.lang.Class<?> type, java.lang.String name, java.lang.String method, java.lang.String modes, java.util.List<InternalEntry> overloads, java.lang.Object... origArgs)
wa - The context-local state in ControlFlowOps.WorkArea.isPoly - Flag indicating if the call is for a non-dynamic POLY call.firstType - Flag indicating if we are looking in the first type (this is not for a super-type).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.overloads - The list of method overloads.origArgs - The arguments.static java.lang.Class<?> calculateType(java.lang.Object arg)
arg - The argument.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 BaseDataType wrapAppServerCall(java.util.concurrent.Callable<BaseDataType> serverCall, handle serverHandle) throws java.lang.Exception
serverCall - The appserver call.serverHandle - The server handle.java.lang.Exception - Exception thrown by the callable.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.StopConditionExceptionprivate static void invalidHandle(character name) throws ErrorConditionException
name - The RUN statement target.ErrorConditionExceptionprivate 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.public static void cleanupPending()
private static void cleanupPending(ControlFlowOps.WorkArea wa)
private static BaseDataType checkInvokeResult(java.lang.Object res, java.lang.String name, boolean function, boolean dynamicFunction)
res - The returned value.name - The function's name.function - Flag identifying the call as a function call.dynamicFunction - Flag identifying the call as a DYNAMIC-FUNCTION call.private static java.lang.Exception checkInvocationException(java.lang.reflect.InvocationTargetException exc)
exc - The exception to check.ConditionException.ConditionExceptionErrorConditionExceptionRetryUnwindExceptionprivate static void cacheInvocation(ControlFlowOps.WorkArea wa, ControlFlowOps.InternalEntryCaller caller, InvokeConfig cfg, java.lang.Object thisCaller, java.lang.Object[] args)
The details about this invocation will be saved into a ControlFlowOps.LastInvokeDetails instance, and cached
in the ControlFlowOps.WorkArea.callSiteCache, for the specified thisCaller (which can be either
a WrappedResource or an external program instance) and call-site.
wa - The ControlFlowOps.WorkArea instance.caller - The caller for this invocation.cfg - The invoke configuration.thisCaller - The resource or referent performing this call, where the target will be cached.args - The arguments for this call.private static void prepareArgs(java.lang.String modes,
java.lang.Object[] args)
DataSetParameter or TableParameter arguments at invokeLegacyMethod(boolean, java.lang.Object, java.lang.String, java.lang.String, java.lang.String, java.lang.Object[])
or initializeLegacyClass(java.lang.Class<? extends com.goldencode.p2j.oo.lang._BaseObject_>, java.lang.Object, java.lang.String), to their mode'ed versions, based on the INPUT, OUTPUT and
INPUT-OUTPUT modes.modes - The caller's modes.args - The caller's arguments.