private static class ControlFlowOps.NativeProcedureCaller extends ControlFlowOps.InternalEntryCaller
Modifier and Type | Field and Description |
---|---|
private java.lang.String |
libname
The library name where this native procedure belongs.
|
private java.lang.String |
pname
The legacy name of this native procedure.
|
callerInstance, iename, methodName
Constructor and Description |
---|
NativeProcedureCaller(java.lang.String libname,
java.lang.String pname,
java.lang.String iename)
Configure this caller with the given data.
|
Modifier and Type | Method and Description |
---|---|
(package private) java.lang.String |
getClassName()
Get the class name of the external program to which this internal entry belongs.
|
(package private) java.lang.String |
getExternalProgramName()
Get the legacy name of the external program where the execution will take place.
|
(package private) java.lang.String |
getMethodName()
Get the java method name for this internal entry.
|
(package private) java.lang.Object |
invokeImpl(java.lang.String modes,
java.lang.Object... args)
Call the native API with the arguments provided.
|
(package private) ControlFlowOps.ArgValidationErrors |
valid(boolean function,
java.lang.String modes,
int[] extentInfo,
java.lang.Object... param)
For native API calls, the validation is deferred to the actual time of the call since
the 4GL does other parameter checking before the more traditional type and mode
checking.
|
getCallerInstance, getInternalEntryName, getParameterModes, getParameters, getPhandle, getSignature, invoke
private java.lang.String libname
private java.lang.String pname
public NativeProcedureCaller(java.lang.String libname, java.lang.String pname, java.lang.String iename)
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.java.lang.Object invokeImpl(java.lang.String modes, java.lang.Object... args) throws java.lang.Exception
invokeImpl
in class ControlFlowOps.InternalEntryCaller
modes
- An encoded string with the mode of each parameter specified as a
character in the string.args
- The array of procedure parameters.null
since procedures don't have a return value in the
4GL.java.lang.Exception
- If any exceptions are encountered during method invocation.ControlFlowOps.ArgValidationErrors valid(boolean function, java.lang.String modes, int[] extentInfo, java.lang.Object... param)
NativeInvoker.invoke(java.lang.String, java.lang.String, java.lang.String, java.lang.Class<?>[], java.lang.String, java.lang.Object...)
.valid
in class ControlFlowOps.InternalEntryCaller
function
- true
if this is a function call.modes
- The types of parameters: INPUT(I) / OUTPUT (O) / INPUT-OUTPUT (U).extentInfo
- An output parameter array that provides the caller with additional information
about the extent sizes when they don't match. The first item is the size of the
argument (provided extent), the second is the parameter (expected extent).param
- The arguments for this Java method call.ControlFlowOps.ArgValidationErrors.DEFER_VALIDATION
, which disables
validation processing at this time.java.lang.String getMethodName()
getMethodName
in class ControlFlowOps.InternalEntryCaller
java.lang.String getExternalProgramName()
getExternalProgramName
in class ControlFlowOps.InternalEntryCaller
java.lang.String getClassName()
getClassName
in class ControlFlowOps.InternalEntryCaller