src.com.ibm.as400.access.JavaProgram Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jt400-jdk8 Show documentation
Show all versions of jt400-jdk8 Show documentation
The Open Source version of the IBM Toolbox for Java
The newest version!
///////////////////////////////////////////////////////////////////////////////
//
// JTOpen (IBM Toolbox for Java - OSS version)
//
// Filename: JavaProgram.java
//
// The source code contained herein is licensed under the IBM Public License
// Version 1.0, which has been approved by the Open Source Initiative.
// Copyright (C) 1997-2003 International Business Machines Corporation and
// others. All rights reserved.
//
///////////////////////////////////////////////////////////////////////////////
package com.ibm.as400.access;
import java.io.IOException;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Calendar;
import java.util.Date;
/**
Represents an IBM i Java program. This class is supported
only when connecting to systems running IBM i V5R1 or higher, and is not supported beyond IBM i 7.1.
In the context of this discussion, a "Java program" is the IBM i executable object that is created when the CRTJVAPGM (Create Java Program) CL command is run against a class, JAR, or ZIP file.
Using the JavaProgram class, you can obtain the following information about an IBM i Java program:
- Adopted authority profile
- File change date
- File owner
- Java program creation date
- Release program was created for
- Licensed Internal Code options
- Number of attached java programs
- Number of classes
- Number of classes with current java programs
- Number of classes without current java programs
- Number of classes with errors
- Optimization level
- Path used
- Performance Collection Enabled flag
- Performance Collection type
- Profiling data status
- Size of attached java programs
- Use adopted authority
An Example using the JavaProgram class:
// Create a JavaProgram object to refer to a specific Java program.
AS400 system = new AS400("MYSYSTEM", "MYUSERID", "MYPASSWORD");
JavaProgram javaProgram = new JavaProgram(system, "/home/mydir/HelloWorld.class");
// Get the optimization.
int optimization = javaProgram.getOptimizationLevel();
// Get the file owner.
String owner = javaProgram.getFileOwner();
**/
public class JavaProgram implements Serializable
{
static final long serialVersionUID = -209990140140936884L;
private boolean loaded_ = false; // Have we retrieved values from the system yet?
private AS400 system_;
private String path_;
private String fileOwner_;
private Date fileChangeDate_;
private Date javaProgramCreationDate_;
private int numberOfAttachedPrograms_;
private int numberOfClassesWithJavaPrograms_;
private int numberOfClassesWithoutPrograms_;
private int numberOfClassesWithErrors_;
private int numberOfClasses_;
private int optimizationLevel_;
private String performanceCollectionEnabledFlag_;
private String performanceCollectionType_;
private boolean useAdoptedAuthority_;
private String adoptedAuthorityProfile_;
private int sizeOfAttachedPrograms_;
private String javaProgramVersion_;
private String profilingDataStatus_;
private String LICoptions_;
/**
Constant indicating that the profile to use when the use adopted authority field is set is *USER.
**/
public static final String ADOPTED_AUTHORITY_PROFILE_USER = "*USER";
/**
Constant indicating that the profile to use when the use adopted authority field is set is *OWNER.
**/
public static final String ADOPTED_AUTHORITY_PROFILE_OWNER = "*OWNER";
/**
Constant indicating the type of performance collection is *ENTRYEXIT.
**/
public static final String PERFORMANCE_COLLECTION_TYPE_ENTRYEXIT = "*ENTRYEXIT";
/**
Constant indicating the type of performance collection is *FULL.
**/
public static final String PERFORMANCE_COLLECTION_TYPE_FULL = "*FULL";
/**
Constant indicating that profile data collection is not enabled for the the Java program(s).
**/
public static final String PROFILING_DATA_STATUS_NOCOL = "*NOCOL";
/**
Constant indicating that profile data collection is enabled for the attached Java program(s).
**/
public static final String PROFILING_DATA_STATUS_COL = "*COL";
/**
Constant indicating that profile data has been applied to the attached Java program(s).
**/
public static final String PROFILING_DATA_STATUS_APY = "*APY";
/**
Creates a JavaProgram
**/
public JavaProgram()
{
}
/**
Creates a JavaProgram
@param system The system.
@param path The path. This can specify any class, jar, or zip file.
**/
public JavaProgram(AS400 system, String path)
{
setSystem(system);
setPath(path);
}
private void checkVRM()
throws UnsupportedOperationException
{
try
{
// See if the system VRM is higher than IBM i 7.1.
if (getSystem() != null && getSystem().getVRM() > 0x00070100) {
Trace.log(Trace.ERROR, "JavaProgram is not supported beyond IBM i 7.1.");
throw new UnsupportedOperationException("JavaProgram");
}
}
catch (UnsupportedOperationException e) { throw e; }
catch (Exception e) {
if (Trace.isTraceOn())
Trace.log(Trace.ERROR, "Error when checking system VRM.", e);
UnsupportedOperationException throwException = new UnsupportedOperationException(e.getMessage());
try {
throwException.initCause(e);
} catch (Throwable t) {}
throw throwException;
}
}
/**
Returns the name of the system.
@return system name
**/
public AS400 getSystem()
{
return system_;
}
/**
Returns the path to a class, jar, or zip file used to create the Java program.
@return path
**/
public String getPath()
{
return path_;
}
/**
Returns the profile to use when the "Use Adopted Authority" field is set.
@return the profile to use. Possible values are:
- {@link #ADOPTED_AUTHORITY_PROFILE_USER ADOPTED_AUTHORITY_PROFILE_USER}
- {@link #ADOPTED_AUTHORITY_PROFILE_OWNER ADOPTED_AUTHORITY_PROFILE_OWNER}
* @throws AS400Exception If an error occurs.
* @throws AS400SecurityException If a security or authority error occurs.
* @throws ErrorCompletingRequestException If an error occurs before the request is completed.
* @throws InterruptedException If this thread is interrupted.
* @throws IOException If an error occurs while communicating with the system.
* @throws ObjectDoesNotExistException If the object does not exist.
**/
public String getAdoptedAuthorityProfile()
throws AS400Exception,
AS400SecurityException,
ErrorCompletingRequestException,
InterruptedException,
IOException,
ObjectDoesNotExistException
{
if (!loaded_) refresh();
if(adoptedAuthorityProfile_.equals("0"))
return ADOPTED_AUTHORITY_PROFILE_USER;
else
return ADOPTED_AUTHORITY_PROFILE_OWNER;
}
/**
Returns the date and time the file was last modified or changed.
@return the last-changed date and time
* @throws AS400Exception If an error occurs.
* @throws AS400SecurityException If a security or authority error occurs.
* @throws ErrorCompletingRequestException If an error occurs before the request is completed.
* @throws InterruptedException If this thread is interrupted.
* @throws IOException If an error occurs while communicating with the system.
* @throws ObjectDoesNotExistException If the object does not exist.
**/
public Date getFileChangeDate()
throws AS400Exception,
AS400SecurityException,
ErrorCompletingRequestException,
InterruptedException,
IOException,
ObjectDoesNotExistException
{
if(!loaded_) refresh();
return (Date)fileChangeDate_.clone();
}
/**
Returns the name of the owner of the file.
The string is in job CCSID
@return the file owner
* @throws AS400Exception If an error occurs.
* @throws AS400SecurityException If a security or authority error occurs.
* @throws ErrorCompletingRequestException If an error occurs before the request is completed.
* @throws InterruptedException If this thread is interrupted.
* @throws IOException If an error occurs while communicating with the system.
* @throws ObjectDoesNotExistException If the object does not exist.
**/
public String getFileOwner()
throws AS400Exception,
AS400SecurityException,
ErrorCompletingRequestException,
InterruptedException,
IOException,
ObjectDoesNotExistException
{
if(!loaded_) refresh();
return fileOwner_;
}
/**
Returns the date and time the Java program was created for the file.
@return the creation date
* @throws AS400Exception If an error occurs.
* @throws AS400SecurityException If a security or authority error occurs.
* @throws ErrorCompletingRequestException If an error occurs before the request is completed.
* @throws InterruptedException If this thread is interrupted.
* @throws IOException If an error occurs while communicating with the system.
* @throws ObjectDoesNotExistException If the object does not exist.
**/
public Date getJavaProgramCreationDate()
throws AS400Exception,
AS400SecurityException,
ErrorCompletingRequestException,
InterruptedException,
IOException,
ObjectDoesNotExistException
{
if(!loaded_) refresh();
return (Date)javaProgramCreationDate_.clone();
}
/**
Returns the IBM i version the Java program was created for.
@return the version
* @throws AS400Exception If an error occurs.
* @throws AS400SecurityException If a security or authority error occurs.
* @throws ErrorCompletingRequestException If an error occurs before the request is completed.
* @throws InterruptedException If this thread is interrupted.
* @throws IOException If an error occurs while communicating with the system.
* @throws ObjectDoesNotExistException If the object does not exist.
**/
public String getJavaProgramVersion()
throws AS400Exception,
AS400SecurityException,
ErrorCompletingRequestException,
InterruptedException,
IOException,
ObjectDoesNotExistException
{
if(!loaded_) refresh();
return javaProgramVersion_;
}
/**
Returns the number of classes.
@return the number of classes.
* @throws AS400Exception If an error occurs.
* @throws AS400SecurityException If a security or authority error occurs.
* @throws ErrorCompletingRequestException If an error occurs before the request is completed.
* @throws InterruptedException If this thread is interrupted.
* @throws IOException If an error occurs while communicating with the system.
* @throws ObjectDoesNotExistException If the object does not exist.
**/
public int getNumberOfClasses()
throws AS400Exception,
AS400SecurityException,
ErrorCompletingRequestException,
InterruptedException,
IOException,
ObjectDoesNotExistException
{
if(!loaded_) refresh();
return numberOfClasses_;
}
/**
Returns the number of classes with representations up-to-date in the attached Java programs.
@return the number of classes with current java programs.
* @throws AS400Exception If an error occurs.
* @throws AS400SecurityException If a security or authority error occurs.
* @throws ErrorCompletingRequestException If an error occurs before the request is completed.
* @throws InterruptedException If this thread is interrupted.
* @throws IOException If an error occurs while communicating with the system.
* @throws ObjectDoesNotExistException If the object does not exist.
**/
public int getNumberOfClassesWithCurrentJavaPrograms()
throws AS400Exception,
AS400SecurityException,
ErrorCompletingRequestException,
InterruptedException,
IOException,
ObjectDoesNotExistException
{
if(!loaded_) refresh();
return numberOfClassesWithJavaPrograms_;
}
/**
Returns the number of classes containing errors.
@return the number of classes with errors.
* @throws AS400Exception If an error occurs.
* @throws AS400SecurityException If a security or authority error occurs.
* @throws ErrorCompletingRequestException If an error occurs before the request is completed.
* @throws InterruptedException If this thread is interrupted.
* @throws IOException If an error occurs while communicating with the system.
* @throws ObjectDoesNotExistException If the object does not exist.
**/
public int getNumberOfClassesWithErrors()
throws AS400Exception,
AS400SecurityException,
ErrorCompletingRequestException,
InterruptedException,
IOException,
ObjectDoesNotExistException
{
if(!loaded_) refresh();
return numberOfClassesWithErrors_;
}
/**
Returns the number of classes with representations out-of-date.
@return the number of classes without current java programs.
* @throws AS400Exception If an error occurs.
* @throws AS400SecurityException If a security or authority error occurs.
* @throws ErrorCompletingRequestException If an error occurs before the request is completed.
* @throws InterruptedException If this thread is interrupted.
* @throws IOException If an error occurs while communicating with the system.
* @throws ObjectDoesNotExistException If the object does not exist.
**/
public int getNumberOfClassesWithoutCurrentJavaPrograms()
throws AS400Exception,
AS400SecurityException,
ErrorCompletingRequestException,
InterruptedException,
IOException,
ObjectDoesNotExistException
{
if(!loaded_) refresh();
return numberOfClassesWithoutPrograms_;
}
/**
Returns the number of Java prgroams attached to the .class or .jar/sip file.
@return the number of programs
* @throws AS400Exception If an error occurs.
* @throws AS400SecurityException If a security or authority error occurs.
* @throws ErrorCompletingRequestException If an error occurs before the request is completed.
* @throws InterruptedException If this thread is interrupted.
* @throws IOException If an error occurs while communicating with the system.
* @throws ObjectDoesNotExistException If the object does not exist.
**/
public int getNumberOfAttachedPrograms()
throws AS400Exception,
AS400SecurityException,
ErrorCompletingRequestException,
InterruptedException,
IOException,
ObjectDoesNotExistException
{
if(!loaded_) refresh();
return numberOfAttachedPrograms_;
}
/**
Returns the optimization level used to create the java program.
@return the optimization level. Possible values are:
- 0
- 10
- 20
- 30
- 40
* @throws AS400Exception If an error occurs.
* @throws AS400SecurityException If a security or authority error occurs.
* @throws ErrorCompletingRequestException If an error occurs before the request is completed.
* @throws InterruptedException If this thread is interrupted.
* @throws IOException If an error occurs while communicating with the system.
* @throws ObjectDoesNotExistException If the object does not exist.
**/
public int getOptimizationLevel()
throws AS400Exception,
AS400SecurityException,
ErrorCompletingRequestException,
InterruptedException,
IOException,
ObjectDoesNotExistException
{
if(!loaded_) refresh();
return optimizationLevel_;
}
/**
Returns whether or not performance collection is enabled.
@return the performance collection enabled flag. Possible values are:
- 0 - "NONE
- 1 - on
* @throws AS400Exception If an error occurs.
* @throws AS400SecurityException If a security or authority error occurs.
* @throws ErrorCompletingRequestException If an error occurs before the request is completed.
* @throws InterruptedException If this thread is interrupted.
* @throws IOException If an error occurs while communicating with the system.
* @throws ObjectDoesNotExistException If the object does not exist.
**/
public String getPerformanceCollectionEnabledFlag()
throws AS400Exception,
AS400SecurityException,
ErrorCompletingRequestException,
InterruptedException,
IOException,
ObjectDoesNotExistException
{
if(!loaded_) refresh();
return performanceCollectionEnabledFlag_;
}
/**
Returns the type of performance collection if the performance collection flag is set.
@return the type of performance collection. Possible values are:
- {@link #PERFORMANCE_COLLECTION_TYPE_ENTRYEXIT PERFORMANCE_COLLECTION_TYPE_ENTRYEXIT}
- {@link #PERFORMANCE_COLLECTION_TYPE_FULL PERFORMANCE_COLLECTION_TYPE_FULL}
* @throws AS400Exception If an error occurs.
* @throws AS400SecurityException If a security or authority error occurs.
* @throws ErrorCompletingRequestException If an error occurs before the request is completed.
* @throws InterruptedException If this thread is interrupted.
* @throws IOException If an error occurs while communicating with the system.
* @throws ObjectDoesNotExistException If the object does not exist.
**/
public String getPerformanceCollectionType()
throws AS400Exception,
AS400SecurityException,
ErrorCompletingRequestException,
InterruptedException,
IOException,
ObjectDoesNotExistException
{
if(!loaded_) refresh();
if(performanceCollectionType_.equals("0"))
return PERFORMANCE_COLLECTION_TYPE_ENTRYEXIT;
else
return PERFORMANCE_COLLECTION_TYPE_FULL;
}
/**
Returns whether or not the used adopted authority is set.
@return true if the use adopted authority is set, false otherwise
* @throws AS400Exception If an error occurs.
* @throws AS400SecurityException If a security or authority error occurs.
* @throws ErrorCompletingRequestException If an error occurs before the request is completed.
* @throws InterruptedException If this thread is interrupted.
* @throws IOException If an error occurs while communicating with the system.
* @throws ObjectDoesNotExistException If the object does not exist.
**/
public boolean isUseAdoptedAuthority()
throws AS400Exception,
AS400SecurityException,
ErrorCompletingRequestException,
InterruptedException,
IOException,
ObjectDoesNotExistException
{
if(!loaded_) refresh();
return useAdoptedAuthority_;
}
/**
Returns the size in kilobytes of all the attached java programs.
@return the size
* @throws AS400Exception If an error occurs.
* @throws AS400SecurityException If a security or authority error occurs.
* @throws ErrorCompletingRequestException If an error occurs before the request is completed.
* @throws InterruptedException If this thread is interrupted.
* @throws IOException If an error occurs while communicating with the system.
* @throws ObjectDoesNotExistException If the object does not exist.
**/
public int getSizeOfAttachedJavaPrograms()
throws AS400Exception,
AS400SecurityException,
ErrorCompletingRequestException,
InterruptedException,
IOException,
ObjectDoesNotExistException
{
if(!loaded_) refresh();
return sizeOfAttachedPrograms_;
}
/**
Returns whether profiling data is enabled or applied.
@return whether profiling data is enabled or applied. Possible values are:
- {@link #PROFILING_DATA_STATUS_NOCOL PROFILING_DATA_STATUS_NOCOL}
- {@link #PROFILING_DATA_STATUS_COL PROFILING_DATA_STATUS_COL}
- {@link #PROFILING_DATA_STATUS_APY PROFILING_DATA_STATUS_APY}
* @throws AS400Exception If an error occurs.
* @throws AS400SecurityException If a security or authority error occurs.
* @throws ErrorCompletingRequestException If an error occurs before the request is completed.
* @throws InterruptedException If this thread is interrupted.
* @throws IOException If an error occurs while communicating with the system.
* @throws ObjectDoesNotExistException If the object does not exist.
**/
public String getProfilingDataStatus()
throws AS400Exception,
AS400SecurityException,
ErrorCompletingRequestException,
InterruptedException,
IOException,
ObjectDoesNotExistException
{
if(!loaded_) refresh();
if(profilingDataStatus_.equals("0"))
return PROFILING_DATA_STATUS_NOCOL;
else if(profilingDataStatus_.equals("1"))
return PROFILING_DATA_STATUS_COL;
else
return PROFILING_DATA_STATUS_APY;
}
/**
Returns the LIC options string specified when the java program was last modified.
@return the LIC options.
* @throws AS400Exception If an error occurs.
* @throws AS400SecurityException If a security or authority error occurs.
* @throws ErrorCompletingRequestException If an error occurs before the request is completed.
* @throws InterruptedException If this thread is interrupted.
* @throws IOException If an error occurs while communicating with the system.
* @throws ObjectDoesNotExistException If the object does not exist.
**/
public String getLICOptions()
throws AS400Exception,
AS400SecurityException,
ErrorCompletingRequestException,
InterruptedException,
IOException,
ObjectDoesNotExistException
{
if(!loaded_) refresh();
return LICoptions_;
}
/**
Refreshes all the values for this PTF by retrieving them from the system.
* @throws AS400Exception If an error occurs.
* @throws AS400SecurityException If a security or authority error occurs.
* @throws ConnectionDroppedException If the connection is dropped.
* @throws ErrorCompletingRequestException If an error occurs before the request is completed.
* @throws InterruptedException If this thread is interrupted.
* @throws ObjectDoesNotExistException If the object does not exist.
* @throws IOException If an error occurs while communicating with the system.
* @throws UnsupportedEncodingException If the Character Encoding is not supported.
**/
public void refresh()
throws AS400Exception,
AS400SecurityException,
ConnectionDroppedException,
ErrorCompletingRequestException,
InterruptedException,
ObjectDoesNotExistException,
IOException,
UnsupportedEncodingException
{
checkVRM();
int ccsid = system_.getCcsid();
ConvTable conv = ConvTable.getTable(ccsid, null);
int len=4096;
ProgramParameter[] parms = new ProgramParameter[15];
parms[0] = new ProgramParameter(len); // receiver variable
parms[1] = new ProgramParameter(BinaryConverter.intToByteArray(len)); // length of receiver variable
parms[2] = new ProgramParameter(conv.stringToByteArray("RJPI0100")); // format name
parms[3] = new ProgramParameter(0); //Class list receiver variable
parms[4] = new ProgramParameter(BinaryConverter.intToByteArray(0)); //Length of class list receiver variable
parms[5] = new ProgramParameter(conv.stringToByteArray("RJPC0100")); //format of class list receiver variable
parms[6] = new ProgramParameter(conv.stringToByteArray(path_)); //path name
parms[7] = new ProgramParameter(BinaryConverter.intToByteArray(path_.length())); //length of path name
parms[8] = new ProgramParameter(conv.stringToByteArray(" ")); //classpath
parms[9] = new ProgramParameter(BinaryConverter.intToByteArray(0)); //length of classpath
parms[10] = new ProgramParameter(0); //classpath used receiver variable
parms[11] = new ProgramParameter(BinaryConverter.intToByteArray(0)); //length of classpath used receiver variable
parms[12] = new ProgramParameter(BinaryConverter.intToByteArray(1)); //status of calsses to return in the class list
parms[13] = new ProgramParameter(conv.stringToByteArray("*PGM")); //JDK version
parms[14] = new ProgramParameter(BinaryConverter.intToByteArray(0)); // error code
ProgramCall pc = new ProgramCall(system_, "/QSYS.LIB/QJVAMAT.PGM", parms);
// Assumption of thread-safety defaults to false, or to the value of the "threadSafe" system property (if it has been set).
//pc.setThreadSafe(false);
if (!pc.run())
{
throw new AS400Exception(pc.getMessageList());
}
byte[] output = parms[0].getOutputData();
//int bytesReturned = BinaryConverter.byteArrayToInt(output, 0);
//int bytesAvailable = BinaryConverter.byteArrayToInt(output, 4);
fileOwner_ = conv.byteArrayToString(output, 8, 10);
String d = conv.byteArrayToString(output, 18, 13);
// Parse the "file change" date
if (d.trim().length() == 13)
{
Calendar cal = AS400Calendar.getGregorianInstance();
cal.clear();
cal.set(Integer.parseInt(d.substring(0,3)) + 1900, // year
Integer.parseInt(d.substring(3,5))-1, // month is zero-based
Integer.parseInt(d.substring(5,7)), // day
Integer.parseInt(d.substring(7,9)), // hour
Integer.parseInt(d.substring(9,11)), // minute
Integer.parseInt(d.substring(11,13))); // second
fileChangeDate_ = cal.getTime();
}
else
{
fileChangeDate_ = null;
}
d = conv.byteArrayToString(output, 31, 13);
//Parse the "Java program creation" date
if (d.trim().length() == 13)
{
Calendar cal = AS400Calendar.getGregorianInstance();
cal.clear();
cal.set(Integer.parseInt(d.substring(0,3)) + 1900, // year
Integer.parseInt(d.substring(3,5))-1, // month is zero-based
Integer.parseInt(d.substring(5,7)), // day
Integer.parseInt(d.substring(7,9)), // hour
Integer.parseInt(d.substring(9,11)), // minute
Integer.parseInt(d.substring(11,13))); // second
javaProgramCreationDate_ = cal.getTime();
}
else
{
javaProgramCreationDate_ = null;
}
numberOfAttachedPrograms_ = BinaryConverter.byteArrayToInt(output, 44);
numberOfClassesWithJavaPrograms_ = BinaryConverter.byteArrayToInt(output, 48);
numberOfClassesWithoutPrograms_ = BinaryConverter.byteArrayToInt(output, 52);
numberOfClassesWithErrors_ = BinaryConverter.byteArrayToInt(output, 56);
numberOfClasses_ = BinaryConverter.byteArrayToInt(output, 60);
optimizationLevel_ = BinaryConverter.byteArrayToInt(output, 64);
performanceCollectionEnabledFlag_ = conv.byteArrayToString(output, 68, 1);
performanceCollectionType_ = conv.byteArrayToString(output, 69, 1);
String useAdopAuthority = conv.byteArrayToString(output, 70, 1);
adoptedAuthorityProfile_ = conv.byteArrayToString(output, 71, 1);
sizeOfAttachedPrograms_ = BinaryConverter.byteArrayToInt(output, 72);
String version = Integer.toString( (output[76] & 0xff ) + 0x100, 16 /* radix */ ) .substring( 1 ); //get version
String release = Integer.toString( (output[77] & 0xff ) + 0x100, 16 /* radix */ ) .substring( 1 ); //get release and modification
javaProgramVersion_ = getVersion((version + release).toCharArray());
profilingDataStatus_ = Byte.toString(output[78]);
int offsetToLICOptions = BinaryConverter.byteArrayToInt(output, 80);
int lengthOfLIC = BinaryConverter.byteArrayToInt(output, 84);
int lengthOfAvailableLIC = BinaryConverter.byteArrayToInt(output, 88);
LICoptions_ = conv.byteArrayToString(output, offsetToLICOptions, lengthOfLIC);
if(useAdopAuthority.equals("0"))
useAdoptedAuthority_ = false;
else
useAdoptedAuthority_ = true;
loaded_= true;
}
/**
Gets the IBM i version.
**/
private String getVersion(char[] version)
{
String v = "V";
String r = "R";
String m = "M";
if(version[0] != '0')
v += version[0];
v += version[1];
r += version[2];
m += version[3];
return v+r+m;
}
/**
Sets the name of the system to search for a Java Program.
@param system The system
**/
public void setSystem(AS400 system)
{
if(loaded_)
throw new ExtendedIllegalStateException("propertiesFrozen", ExtendedIllegalStateException.PROPERTY_NOT_CHANGED);
if(system == null)
throw new NullPointerException("system");
system_ = system;
}
/**
Sets the qualified path name to use.
@param path - the qualified path name.
**/
public void setPath(String path)
{
if(loaded_)
throw new ExtendedIllegalStateException("propertiesFrozen", ExtendedIllegalStateException.PROPERTY_NOT_CHANGED);
if (path == null)
throw new NullPointerException("path");
path_ = path;
}
}