|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--com.ibm.as400.data.ProgramCallDocument
XML Document based program call.
The ProgramCallDocument
class uses a Program Call Markup Language (PCML) to
call AS/400 programs.
PCML is an XML language for describing the input and output parameters
to the AS/400 program.
This class parses a PCML document and allows the application to call
AS/400 programs described in the PCML document.
java com.ibm.as400.data.ProgramCallDocument -serialize pcml document nameOptions:
.pcml.ser
.
Constructor Summary | |
ProgramCallDocument()
Constructs a ProgramCallDocument
|
|
ProgramCallDocument(AS400 sys,
java.lang.String docName)
Constructs a ProgramCallDocument . |
|
ProgramCallDocument(AS400 sys,
java.lang.String docName,
java.lang.ClassLoader loader)
Constructs a ProgramCallDocument . |
Method Summary | |
boolean |
callProgram(java.lang.String name)
Calls the named program. |
java.lang.Object |
clone()
Clones the ProgramCallDocument and the objects contained in it
|
Descriptor |
getDescriptor()
Returns a Descriptor for the current pcml document. |
static Descriptor |
getDescriptor(java.lang.String docName)
Returns a Descriptor for the specified pcml document. |
static Descriptor |
getDescriptor(java.lang.String docName,
java.lang.ClassLoader loader)
Returns a Descriptor for the specified pcml document. |
int |
getErrno(java.lang.String name)
Returns an "errno" value for the named service program element. |
int |
getIntReturnValue(java.lang.String name)
Returns an int return value for the named service program element. |
int |
getIntValue(java.lang.String name)
Returns an int value for the named element. |
int |
getIntValue(java.lang.String name,
int[] indices)
Returns an int value for the named element given indices to the data element. |
AS400Message[] |
getMessageList(java.lang.String name)
Returns the list of AS/400 messages returned from running the program. |
int |
getOutputsize(java.lang.String name)
Returns the number of bytes reserved for output for the named element. |
int |
getOutputsize(java.lang.String name,
int[] indices)
Returns the number of bytes reserved for output for the named element and indices. |
java.lang.String |
getStringValue(java.lang.String name,
int type)
Returns a String value for the named element. |
java.lang.String |
getStringValue(java.lang.String name,
int[] indices,
int type)
Returns a String value for the named element given indices to the data element. |
AS400 |
getSystem()
Gets the AS/400 on which programs are to be called. |
boolean |
getThreadsafeOverride(java.lang.String program)
Gets the value of the override of the threadsafe attribute of a program element. |
java.lang.Object |
getValue(java.lang.String name)
Returns the Java object value for the named element. |
java.lang.Object |
getValue(java.lang.String name,
int[] indices)
Returns the Java object value for the named element given indices to the data element. |
static void |
main(java.lang.String[] args)
Provides a command line interface to ProgramCallDocument . |
void |
serialize()
Serializes the ProgramCallDocument. |
void |
setDocument(java.lang.String docName)
Sets the PCML document resource. |
void |
setDocument(java.lang.String docName,
java.lang.ClassLoader loader)
Sets the PCML document resource. |
void |
setIntValue(java.lang.String name,
int value)
Sets the Java object value for the named element using a int input. |
void |
setIntValue(java.lang.String name,
int[] indices,
int value)
Sets the Java object value for the named element using an int input value given indices to the data element. |
void |
setPath(java.lang.String program,
java.lang.String path)
Allows for dynamically specifying the program path. |
void |
setStringValue(java.lang.String name,
int[] indices,
java.lang.String value,
int type)
Sets the Java object value for the named element using a String input value given indices to the data element. |
void |
setStringValue(java.lang.String name,
java.lang.String value,
int type)
Sets the Java object value for the named element using a String input. |
void |
setSystem(AS400 system)
Sets the AS/400 on which to call programs. |
void |
setThreadsafeOverride(java.lang.String program,
boolean threadsafe)
Allows the overriding of the threadsafe attribute of a program element. |
void |
setValue(java.lang.String name,
int[] indices,
java.lang.Object value)
Sets the Java object value for the named element given indices to the data element. |
void |
setValue(java.lang.String name,
java.lang.Object value)
Sets the Java object value for the named element. |
Methods inherited from class java.lang.Object |
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public ProgramCallDocument(AS400 sys, java.lang.String docName) throws PcmlException
ProgramCallDocument
.
The PCML document resource will be loaded from the classpath.
The classpath will first be searched for a serialized resource.
If a serialized resource is not found, the classpath will be
searched for a PCML source file.sys
- The AS400 on which to run the program.docName
- The document resource name of the PCML document for the programs to be called.
The resource name can be a package qualified name. For example, "com.myCompany.myPackage.myPcml"PcmlException
- when the specified PCML document cannot be foundAS400
public ProgramCallDocument(AS400 sys, java.lang.String docName, java.lang.ClassLoader loader) throws PcmlException
ProgramCallDocument
.
The PCML document resource will be loaded from the classpath.
The classpath will first be searched for a serialized resource.
If a serialized resource is not found, the classpath will be
searched for a PCML source file.sys
- The AS400 on which to run the program.docName
- The document resource name of the PCML document for the programs to be called.
The resource name can be a package qualified name. For example, "com.myCompany.myPackage.myPcml"loader
- The ClassLoader that will be used when loading the specified document resource.PcmlException
- when the specified PCML document cannot be foundAS400
public ProgramCallDocument() throws PcmlException
ProgramCallDocument
The setSystem and setDocument methods must be called prior to using the object.
PcmlException
- when the specified PCML document cannot be foundsetSystem(com.ibm.as400.access.AS400)
,
setDocument(java.lang.String)
,
AS400
Method Detail |
public java.lang.Object clone()
ProgramCallDocument
and the objects contained in it
The setSystem and setDocument methods must be called prior to using the object.
clone
in class java.lang.Object
setSystem(com.ibm.as400.access.AS400)
,
setDocument(java.lang.String)
,
AS400
public static void main(java.lang.String[] args)
ProgramCallDocument
. See the class description.public boolean callProgram(java.lang.String name) throws PcmlException
name
- The name of the <program> element in the PCML document.PcmlException
- If an error occurs.public int getErrno(java.lang.String name) throws PcmlException
The named program element must be defined as service program entrypoint. The value returned is the "errno" value resulting from the most recent call to the program. If the program has not been called, zero is returned.
name
- The name of the <program> element in the PCML document.PcmlException
- If an error occurs.public static Descriptor getDescriptor(java.lang.String docName) throws PcmlException
Descriptor
for the specified pcml document.
The PCML document resource will be loaded from the classpath.
The classpath will first be searched for a serialized resource.
If a serialized resource is not found, the classpath will be
searched for a PCML source file.docName
- The document resource name of the PCML document for which the Descriptor is returned.
The resource name can be a package qualified name. For example, "com.myCompany.myPackage.myPcml"PcmlException
- when the specified PCML document cannot be foundDescriptor
public static Descriptor getDescriptor(java.lang.String docName, java.lang.ClassLoader loader) throws PcmlException
Descriptor
for the specified pcml document.
The PCML document resource will be loaded from the classpath.
The classpath will first be searched for a serialized resource.
If a serialized resource is not found, the classpath will be
searched for a PCML source file.docName
- The document resource name of the PCML document for which the Descriptor is returned.
The resource name can be a package qualified name. For example, "com.myCompany.myPackage.myPcml"loader
- The ClassLoader that will be used when loading the specified document resource.PcmlException
- when the specified PCML document cannot be foundDescriptor
public Descriptor getDescriptor()
Descriptor
for the current pcml document.Descriptor
public int getIntReturnValue(java.lang.String name) throws PcmlException
The named program element must be defined as service program entrypoint. The value returned is the integer return value from the most recent call to the program. If the program has not been called, zero is returned.
name
- The name of the <program> element in the PCML document.PcmlException
- If an error occurs.public int getIntValue(java.lang.String name) throws PcmlException
If the named element is String or a Number output value of a program, the value will be converted to an int.
name
- The name of the <data> element in the PCML document.PcmlException
- If an error occurs.public int getIntValue(java.lang.String name, int[] indices) throws PcmlException
If the named element is String or a Number output value of a program, the value will be converted to an int.
name
- The name of the <data> element in the PCML document.PcmlException
- If an error occurs.public java.lang.String getStringValue(java.lang.String name, int type) throws PcmlException
This method is used when the string type cannot be determined until run-time. In those cases, the PCML document cannot be used to indicate the string type so this method is used to get the value using the string type that is specified.
If the named element is String or a Number output value of a program, the value will be converted to a String.
name
- The name of the <data> element in the PCML document.type
- The bidi string type, as defined by the CDRA (Character
Data Representataion Architecture).PcmlException
- If an error occurs.BidiStringType
public java.lang.String getStringValue(java.lang.String name, int[] indices, int type) throws PcmlException
This method is used when the string type cannot be determined until run-time. In those cases, the PCML document cannot be used to indicate the string type so this method is used to get the value using the string type that is specified.
If the named element is String or a Number output value of a program, the value will be converted to a String.
name
- The name of the <data> element in the PCML document.indices
- An array of indices for setting the value of an element in an array.type
- The bidi string type, as defined by the CDRA (Character
Data Representataion Architecture).PcmlException
- If an error occurs.BidiStringType
public AS400Message[] getMessageList(java.lang.String name) throws PcmlException
name
- The name of the <program> element in the PCML document.PcmlException
- If an error occurs.public int getOutputsize(java.lang.String name) throws PcmlException
name
- The name of the <data> or <struct> element in the PCML document.PcmlException
- If an error occurs.public int getOutputsize(java.lang.String name, int[] indices) throws PcmlException
name
- The name of the <data> or <struct> element in the PCML document.indices
- An array of indices for accessing the output size of an element in an array.PcmlException
- If an error occurs.public java.lang.Object getValue(java.lang.String name) throws PcmlException
If the named element is an output value of a program, the value will be converted from AS/400 data to a Java Object.
The type of object returned depends on the description in the PCML document.
PCML Description | Object Returned |
---|---|
type=char | String |
type=byte | byte[] |
type=int | Short |
type=int | Integer |
type=int | Integer |
type=int | Long |
type=int | Long |
type=packed | BigDecimal |
type=zoned | BigDecimal |
type=float | Float |
type=float | Double |
name
- The name of the <data> element in the PCML document.PcmlException
- If an error occurs.public java.lang.Object getValue(java.lang.String name, int[] indices) throws PcmlException
If the named element is an output value of a program, the value will be converted from AS/400 data to a Java Object.
The type of object returned depends on the description in the PCML document.
PCML Description | Object Returned |
---|---|
type=char | String |
type=byte | byte[] |
type=int | Short |
type=int | Integer |
type=int | Integer |
type=int | Long |
type=int | Long |
type=packed | BigDecimal |
type=zoned | BigDecimal |
type=float | Float |
type=float | Double |
name
- The name of the <data> element in the PCML document.indices
- An array of indices for accessing the value of an element in an array.PcmlException
- If an error occurs.public AS400 getSystem()
setSystem(com.ibm.as400.access.AS400)
,
AS400
public void serialize() throws PcmlException
docName.pcml.serwhere docName.pcml.ser is the name of the document used to construct this object.
PcmlException
- If an error occurs.public void setIntValue(java.lang.String name, int value) throws PcmlException
The named element must be able to be set using a Integer object.
name
- The name of the <data> element in the PCML document.value
- The int value for the named element.PcmlException
- If an error occurs.public void setIntValue(java.lang.String name, int[] indices, int value) throws PcmlException
The named element must be able to be set using a Integer object.
name
- The name of the <data> element in the PCML document.indices
- An array of indices for setting the value of an element in an array.value
- The int value for the named element.PcmlException
- If an error occurs.public void setStringValue(java.lang.String name, java.lang.String value, int type) throws PcmlException
This method is used when the string type cannot be determined until run-time. In those cases, the PCML document cannot be used to indicate the string type so this method is used to set the value and the string type of the input value.
name
- The name of the <data> element in the PCML document.value
- The int value for the named element.type
- The bidi string type, as defined by the CDRA (Character
Data Representataion Architecture).PcmlException
- If an error occurs.BidiStringType
public void setStringValue(java.lang.String name, int[] indices, java.lang.String value, int type) throws PcmlException
This method is used when the string type cannot be determined until run-time. In those cases, the PCML document cannot be used to indicate the string type so this method is used to set the value and the string type of the input value.
name
- The name of the <data> element in the PCML document.indices
- An array of indices for setting the value of an element in an array.value
- The int value for the named element.type
- The bidi string type, as defined by the CDRA (Character
Data Representataion Architecture).PcmlException
- If an error occurs.BidiStringType
public void setDocument(java.lang.String docName) throws PcmlException
docName
- The document resource name of the PCML document for the programs to be called.
The resource name can be a package qualified name. For example, "com.myCompany.myPackage.myPcml"PcmlException
- when the specified PCML document cannot be foundpublic void setDocument(java.lang.String docName, java.lang.ClassLoader loader) throws PcmlException
docName
- The document resource name of the PCML document for the programs to be called.
The resource name can be a package qualified name. For example, "com.myCompany.myPackage.myPcml"loader
- The ClassLoader that will be used when loading the specified document resource.PcmlException
- when the specified PCML document cannot be foundpublic void setSystem(AS400 system)
system
- The AS/400 on which to call programs.public void setValue(java.lang.String name, java.lang.Object value) throws PcmlException
If the input value provided is not an instance of the
correct Java class for the defined data type, it will be converted
to the correct Java class. For example, an element defined as "type=int length=2 precision=15
",
will be converted to a Java Short object. In this case the value specified must be an instance of Number or String.
If the named element is an input value to a program, the value will
be converted to AS/400 data when callProgram()
is called.
name
- The name of the <data> element in the PCML document.value
- The java object value for the named element. The type of Object passed must be
the correct type for the element definition or a String that can be converted to the correct type.PcmlException
- If an error occurs.public void setValue(java.lang.String name, int[] indices, java.lang.Object value) throws PcmlException
If the input value provided is not an instance of the
correct Java class for the defined data type, it will be converted
to the correct Java class. For example, an element defined as "type=int length=2 precision=15
",
will be converted to a Java Short object. In this case the value specified must be an instance of Number or String.
If the named element is an input value to a program, the value will
be converted to AS/400 data when callProgram()
is called.
name
- The name of the <data> element in the PCML document.indices
- An array of indices for setting the value of an element in an array.value
- The java object value for the named element. The type of Object passed must be
the correct type for the element definition or a String that can be converted to the correct type.PcmlException
- If an error occurs.public void setPath(java.lang.String program, java.lang.String path) throws PcmlException
program
- The name of the <program> element in the PCML document.path
- A String containing the path to the program objectto be run on the server.PcmlException
- If an error occurs.public void setThreadsafeOverride(java.lang.String program, boolean threadsafe) throws PcmlException
program
- The name of the <program> element in the PCML document.threadsafe
- A boolean indicating whether the named program element should be considered
thread safe (true) or not (false).PcmlException
- If an error occurs.public boolean getThreadsafeOverride(java.lang.String program) throws PcmlException
program
- The name of the <program> element in the PCML document.PcmlException
- If an error occurs.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |