All Downloads are FREE. Search and download functionalities are using the official Maven repository.

src.com.ibm.as400.access.SpooledFile Maven / Gradle / Ivy

The newest version!
///////////////////////////////////////////////////////////////////////////////
//                                                                             
// JTOpen (IBM Toolbox for Java - OSS version)                              
//                                                                             
// Filename: SpooledFile.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-2000 International Business Machines Corporation and     
// others. All rights reserved.                                                
//                                                                             
///////////////////////////////////////////////////////////////////////////////

package com.ibm.as400.access;

import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.UnsupportedEncodingException;

/**
 * Represents a spooled file.
 * You can use an instance of this class to manipulate an individual
 * spooled file (hold, release, delete, send, read, and so on).
 * To create new spooled files on the system, use the
 * {@link SpooledFileOutputStream SpooledFileOutputStream} class.
 *
 * See Spooled File Attributes for
 * valid attributes.
 *
 * @see PrintObjectInputStream
 * @see PrintObjectPageInputStream
 * @see PrintObjectTransformedInputStream
 **/

public class SpooledFile extends PrintObject
implements java.io.Serializable
{
    static final long serialVersionUID = 4L;

    transient boolean fMsgRetrieved_  = false;

    // constructor used internally (not externalized since it takes
    // an ID code point
    SpooledFile(AS400 system, NPCPIDSplF id, NPCPAttribute attrs)
    {
       super(system, id, attrs, NPConstants.SPOOLED_FILE);
    }


    // We have decide that spooled files are too transient to be JavaBeans.


    /**
     * Constructs a SpooledFile object. It uses the specified system and
     * spooled file attributes that identify it on that system.
     *
     * @param system The system on which this spooled file exists.
     * @param name The name of the spooled file.
     * @param number The number of the spooled file.
     * @param jobName The name of the job that created the spooled file.
     * @param jobUser The user who created the spooled file.
     * @param jobNumber The number of the job that created the spooled file.
     *
     **/
    public SpooledFile(AS400 system,
                       String name,
                       int    number,
                       String jobName,
                       String jobUser,
                       String jobNumber)
    {
        super(system,
              new NPCPIDSplF(name,
                             number,
                             jobName,
                             jobUser,
                             jobNumber),
              null,
              NPConstants.SPOOLED_FILE);

        // base class constructor checks for null system.
        if (name == null)
        {
            Trace.log(Trace.ERROR, "Parameter 'name' is null.");
            throw new NullPointerException("name");
        }

        if (number < -1)    // (changed from 1 to -1 to allow 0(=*ONLY) and -1(=*LAST))
        {
            Trace.log(Trace.ERROR, "Parameter 'number' is less than -1.");
            throw new ExtendedIllegalArgumentException(
                "number(" + number + ")",
                ExtendedIllegalArgumentException.PARAMETER_VALUE_NOT_VALID);
        }

        if (jobName == null)
        {
            Trace.log(Trace.ERROR, "Parameter 'jobName' is null.");
            throw new NullPointerException("jobName");
        }

        if (jobUser == null)
        {
            Trace.log(Trace.ERROR, "Parameter 'jobUser' is null.");
            throw new NullPointerException("jobUser");
        }

        if (jobNumber == null)
        {
            Trace.log(Trace.ERROR, "Parameter 'jobNumber' is null.");
            throw new NullPointerException("jobNumber");
        }
    }
    
    // Alternate constructor for spooled files detached from jobs
    /**
     * Constructs a SpooledFile object. It uses the specified system and
     * spooled file attributes that identify it on that system.
     *
     * @param system The system on which this spooled file exists.
     * @param name The name of the spooled file.
     * @param number The number of the spooled file.
     * @param jobName The name of the job that created the spooled file.
     * @param jobUser The user who created the spooled file.
     * @param jobNumber The number of the job that created the spooled file.
     * @param jobSysName The name of the system where the spooled file was created.
     * @param createDate The date the spooled file was created on the system.
     * 
* The date is encoded in a character string with the following format, * CYYMMDD where: *
    *
  • C is the Century, where 0 indicates years 19xx and 1 indicates years 20xx *
  • YY is the Year *
  • MM is the Month *
  • DD is the Day *
* @param createTime The time the spooled file was created on the system. *
* The time is encoded in a character string with the following format, * HHMMSS where: *
    *
  • HH - Hour *
  • MM - Minutes *
  • SS - Seconds *
**/ public SpooledFile(AS400 system, String name, int number, String jobName, String jobUser, String jobNumber, String jobSysName, String createDate, String createTime) { super(system, new NPCPIDSplF(name, number, jobName, jobUser, jobNumber, jobSysName, createDate, createTime), null, NPConstants.SPOOLED_FILE); // base class constructor checks for null system. if (name == null) { Trace.log(Trace.ERROR, "Parameter 'name' is null."); throw new NullPointerException("name"); } if (number < -1) // (changed from 1 to -1 to allow 0(=*ONLY) and -1(=*LAST)) { Trace.log(Trace.ERROR, "Parameter 'number' is less than -1."); throw new ExtendedIllegalArgumentException( "number(" + number + ")", ExtendedIllegalArgumentException.PARAMETER_VALUE_NOT_VALID); } if (jobName == null) { Trace.log(Trace.ERROR, "Parameter 'jobName' is null."); throw new NullPointerException("jobName"); } if (jobUser == null) { Trace.log(Trace.ERROR, "Parameter 'jobUser' is null."); throw new NullPointerException("jobUser"); } if (jobNumber == null) { Trace.log(Trace.ERROR, "Parameter 'jobNumber' is null."); throw new NullPointerException("jobNumber"); } if (jobSysName == null) { Trace.log(Trace.ERROR, "Parameter 'jobSysName' is null."); throw new NullPointerException("jobSysName"); } if (createDate == null) { Trace.log(Trace.ERROR, "Parameter 'createDate' is null."); throw new NullPointerException("createDate"); } if (createTime == null) { Trace.log(Trace.ERROR, "Parameter 'createTime' is null."); throw new NullPointerException("createTime"); } } /** Replies to the message that caused the spooled file to wait. * * @param reply The string that contains the reply for the message. * The default reply can be obtained by calling * the getMessage() method, and then calling the * getDefaultReply() method on the message object that is returned. * Other possible replies are given in the message help, * which can also be retrieved from the message object returned * on the getMessage() method. * * @exception AS400Exception If the system returns an error message. * @exception AS400SecurityException If a security or authority error occurs. * @exception ErrorCompletingRequestException If an error occurs before the request is * completed. * @exception IOException If an error occurs while communicating with the system. * @exception InterruptedException If this thread is interrupted. * @exception RequestNotSupportedException If the requested function is not supported because the * system is not at the correct level. **/ public void answerMessage(String reply) throws AS400Exception, AS400SecurityException, ErrorCompletingRequestException, IOException, InterruptedException, RequestNotSupportedException { if (impl_ == null) chooseImpl(); ((SpooledFileImpl) impl_).answerMessage(reply); // update the spooled file attributes attrs = impl_.getAttrValue(); fMsgRetrieved_ = ((SpooledFileImpl) impl_).getFMsgRetrieved(); } /** * Chooses the implementation **/ void chooseImpl() throws IOException, AS400SecurityException { // We need to get the system to connect to... AS400 system = getSystem(); if (system == null) { Trace.log( Trace.ERROR, "Attempt to use SpooledFile before setting system." ); throw new ExtendedIllegalStateException("system", ExtendedIllegalStateException.PROPERTY_NOT_SET); } impl_ = (SpooledFileImpl) system.loadImpl2("com.ibm.as400.access.SpooledFileImplRemote", "com.ibm.as400.access.SpooledFileImplProxy"); // The connectService(AS400.PRINT) is done in setImpl() // in the Printobject class. super.setImpl(); } /** * Creates a copy of the spooled file this (SpooledFile) object represents. The * new spooled file is created on the same output queue and on the same system * as the original spooled file. A reference to the new spooled file is returned. * @return SpooledFile * * @exception AS400Exception If the system returns an error message. * @exception AS400SecurityException If a security or authority error occurs. * @exception ErrorCompletingRequestException If an error occurs before the request is completed. * @exception IOException If an error occurs while communicating with the system. * @exception InterruptedException If this thread is interrupted. * @exception RequestNotSupportedException If the requested function is not supported because the * system is not at the correct level. **/ public SpooledFile copy() throws AS400Exception, AS400SecurityException, ErrorCompletingRequestException, IOException, InterruptedException, RequestNotSupportedException { String name = getStringAttribute(ATTR_OUTPUT_QUEUE); OutputQueue outq = new OutputQueue(getSystem(), name); SpooledFile sf = copy(outq); return sf; } /** * Creates a copy of the spooled file this object represents. The * new spooled file is created on the specified output queue. * A reference to the new spooled file is returned. * * @param outputQueue The output queue location to create the new version of the * original spooled file. The spooled file will be created to the first * position on this output queue. The output queue and this spooled * file must reside on the same system. * @return SpooledFile * * @exception AS400Exception If the system returns an error message. * @exception AS400SecurityException If a security or authority error occurs. * @exception ErrorCompletingRequestException If an error occurs before the request is completed. * @exception IOException If an error occurs while communicating with the system. * @exception InterruptedException If this thread is interrupted. * @exception RequestNotSupportedException If the requested function is not supported because the * system is not at the correct level. **/ public SpooledFile copy(OutputQueue outputQueue) throws AS400Exception, AS400SecurityException, ErrorCompletingRequestException, IOException, InterruptedException, RequestNotSupportedException { // choose implementations if (impl_ == null) { chooseImpl(); } if (outputQueue.getImpl() == null) { outputQueue.chooseImpl(); } NPCPIDSplF spID = ((SpooledFileImpl) impl_).copy((OutputQueueImpl)outputQueue.getImpl()); try { spID.setConverter((new Converter(getSystem().getCcsid(), getSystem())).impl); } catch (UnsupportedEncodingException e) { if (Trace.isTraceErrorOn()) { Trace.log(Trace.ERROR, "Error initializing converter for spooled file."); } } SpooledFile sf = new SpooledFile(getSystem(), spID, null); return sf; } /** * Deletes the spooled file on the system. * * @exception AS400Exception If the system returns an error message. * @exception AS400SecurityException If a security or authority error occurs. * @exception ErrorCompletingRequestException If an error occurs before the request is completed. * @exception IOException If an error occurs while communicating with the system. * @exception InterruptedException If this thread is interrupted. **/ public void delete() throws AS400Exception, AS400SecurityException, ErrorCompletingRequestException, IOException, InterruptedException { if (impl_ == null) chooseImpl(); ((SpooledFileImpl) impl_).delete(); } /** * Returns an input stream that can be used to read the contents of the * spooled file. * This method will fail with an AS400Exception if the spooled file is * still being created (ATTR_SPLFSTATUS is *OPEN). * Note that the bytes are returned untransformed, that is, as they are * stored on the server. To transform the bytes into other forms, use * {@link #getPageInputStream getPageInputStream} or * {@link #getTransformedInputStream getTransformedInputStream}. * * @return The input stream object that can be used to read the contents * of this spooled file. * @exception AS400Exception If system returns an error message. * @exception AS400SecurityException If a security or authority error occurs. * @exception ErrorCompletingRequestException If an error occurs before the request is completed. * @exception IOException If an error occurs while communicating with the system. * @exception InterruptedException If this thread is interrupted. * @exception RequestNotSupportedException If the requested function is not supported * because the system is not at the * correct level. * @see #getPageInputStream * @see #getTransformedInputStream **/ public PrintObjectInputStream getInputStream() throws AS400Exception, AS400SecurityException, ErrorCompletingRequestException, IOException, InterruptedException, RequestNotSupportedException { PrintObjectInputStream is = new PrintObjectInputStream(this, null); return is; } /** * Returns an input stream that can be used to read the contents of the * spooled file. * This method will fail with an AS400Exception if the spooled file is * still being created (ATTR_SPLFSTATUS is *OPEN). * Note that the bytes are returned untransformed, that is, as they are * stored on the server. To transform the bytes into other forms, use * {@link #getPageInputStream getPageInputStream} or * {@link #getTransformedInputStream getTransformedInputStream}. * @param ppl print parameter list * * @return The input stream object that can be used to read the contents * of this spooled file. * @exception AS400Exception If system returns an error message. * @exception AS400SecurityException If a security or authority error occurs. * @exception ErrorCompletingRequestException If an error occurs before the request is completed. * @exception IOException If an error occurs while communicating with the system. * @exception InterruptedException If this thread is interrupted. * @exception RequestNotSupportedException If the requested function is not supported * because the system is not at the * correct level. * @see #getPageInputStream * @see #getTransformedInputStream **/ public PrintObjectInputStream getInputStream(PrintParameterList ppl) throws AS400Exception, AS400SecurityException, ErrorCompletingRequestException, IOException, InterruptedException, RequestNotSupportedException { PrintObjectInputStream is = new PrintObjectInputStream(this, ppl); return(is); } /** * @param acifB * @return PrintObjectInputStream * @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 IOException If an error occurs while communicating with the system. * @throws InterruptedException If this thread is interrupted. * @throws RequestNotSupportedException If the request is not supported. * @deprecated Use getAFPInputStream() instead. * @see #getAFPInputStream **/ public PrintObjectInputStream getInputACIFMergedStream(boolean acifB) throws AS400Exception, AS400SecurityException, ErrorCompletingRequestException, IOException, InterruptedException, RequestNotSupportedException { String acifS; // possible open options that we could use - // acifB == true then process ACIF merged data // else normal processing if (acifB){ acifS = "Y"; } else acifS = "N"; PrintObjectInputStream is = new PrintObjectInputStream(this, null, acifS); return is; } /** * Returns an input stream that can be used to read the contents of an * AFP spooled file. The external resources referenced by the original * AFP spooled file will be included in this input stream. If you don't want * the external resources included use * {@link #getInputStream getInputStream} or * {@link #getPageInputStream getPageInputStream}. * This method will fail with an AS400Exception if the spooled file is * still being created (ATTR_SPLFSTATUS is *OPEN) or if the spooled file * doesn't contain AFDS data ie. ATTR_PRTDEVTYPE is not *AFPDS. * * @return The input stream object that can be used to read the contents * of this spooled file. * @exception AS400Exception If the system returns an error message. * @exception AS400SecurityException If a security or authority error occurs. * @exception ErrorCompletingRequestException If an error occurs before the request is completed. * @exception IOException If an error occurs while communicating with the system. * @exception InterruptedException If this thread is interrupted. * @exception RequestNotSupportedException If the requested function is not supported * because the system operating system is not * at the correct level. * @see #getInputStream * @see #getPageInputStream **/ public PrintObjectInputStream getAFPInputStream() throws AS400Exception, AS400SecurityException, ErrorCompletingRequestException, IOException, InterruptedException, RequestNotSupportedException { PrintObjectInputStream is = new PrintObjectInputStream(this, null, "Y"); return is; } /** * Returns the name of the job that created the spooled file. * @return The job name. **/ public String getJobName() { NPCPID IDCodePoint = getIDCodePoint(); if( IDCodePoint == null ) { return EMPTY_STRING; // "" } else { return IDCodePoint.getStringValue(ATTR_JOBNAME); } } /** * Returns the number of the job that created the spooled file. * @return The job number. **/ public String getJobNumber() { NPCPID IDCodePoint = getIDCodePoint(); if( IDCodePoint == null ) { return EMPTY_STRING; // "" } else { return IDCodePoint.getStringValue(ATTR_JOBNUMBER); } } /** * Returns the ID of the user that created the spooled file. * @return The user ID. **/ public String getJobUser() { NPCPID IDCodePoint = getIDCodePoint(); if( IDCodePoint == null ) { return EMPTY_STRING; // "" } else { return IDCodePoint.getStringValue(ATTR_JOBUSER); } } // The next three attributes are added to provide the // decoupled spooled file identity. /** * Returns the name of the system where the spooled file was created. * @return The name of the system where the spooled file was created. **/ public String getJobSysName() { String jobSysName = EMPTY_STRING; NPCPID IDCodePoint = getIDCodePoint(); if (IDCodePoint == null) { return(jobSysName); } else { jobSysName = IDCodePoint.getStringValue(ATTR_JOBSYSTEM); if (jobSysName == null) { try { jobSysName = this.getStringAttribute(ATTR_JOBSYSTEM); } catch (Exception e) { // ignore exceptions, splf may not have this attr. jobSysName = EMPTY_STRING; } } return(jobSysName); } } /** * Returns the date of the spooled file creation. * The date is encoded in the CYYMMDD format. * @return The date (CYYMMDD) of the spooled file creation. **/ public String getCreateDate() { String createDate = EMPTY_STRING; NPCPID IDCodePoint = getIDCodePoint(); if (IDCodePoint == null) { return(createDate); } else { createDate = IDCodePoint.getStringValue(ATTR_DATE); if (createDate == null) { try { createDate = this.getStringAttribute(ATTR_DATE); } catch (Exception e) { // ignore exceptions, splf may not have this attr. createDate = EMPTY_STRING; } } return(createDate); } } /** * Returns the time of spooled file creation. * The time is encoded in the HHMMSS format. * @return The time (HHMMSS) of the spooled file creation. **/ public String getCreateTime() { String createTime = EMPTY_STRING; NPCPID IDCodePoint = getIDCodePoint(); if (IDCodePoint == null) { return(createTime); } else { createTime = IDCodePoint.getStringValue(ATTR_TIME); if (createTime == null) { try { createTime = this.getStringAttribute(ATTR_TIME); } catch (Exception e) { // ignore exceptions, splf may not have this attr. createTime = EMPTY_STRING; } } return(createTime); } } /** * Returns the message that is associated with this spooled file. * A spooled file has a message associated with it if its * ATTR_SPLFSTATUS attribute returns *MESSAGE. * * @return The AS400Message object that contains the message text, * type, severity, id, date, time, and default reply. * @exception AS400Exception If the system returns an error message. * @exception AS400SecurityException If a security or authority error occurs. * @exception ErrorCompletingRequestException If an error occurs before the request is completed. * @exception IOException If an error occurs while communicating with the system. * @exception InterruptedException If this thread is interrupted. **/ public AS400Message getMessage() throws AS400Exception, AS400SecurityException, ErrorCompletingRequestException, IOException, InterruptedException { if (impl_ == null) chooseImpl(); AS400Message msg = ((SpooledFileImpl) impl_).getMessage(); fMsgRetrieved_ = ((SpooledFileImpl) impl_).getFMsgRetrieved(); return msg; } /** * Returns the name of the spooled file. * @return The name of the spooled file. **/ public String getName() { NPCPID IDCodePoint = getIDCodePoint(); if( IDCodePoint == null ) { return EMPTY_STRING; // "" } else { return IDCodePoint.getStringValue(ATTR_SPOOLFILE); } } /** * Returns the number of the spooled file. * @return The number of the spooled file. **/ public int getNumber() { NPCPID IDCodePoint = getIDCodePoint(); if( IDCodePoint == null ) { return 0; } else { return IDCodePoint.getIntValue(ATTR_SPLFNUM).intValue(); } } /** * Returns a page input stream that can be used to read the contents of the * spooled file, one page at a time. *
* See Example using PrintObjectPageInputStream *
* @param pageStreamOptions A print parameter list that contains * parameters for generating the page input stream.
* The following attributes are optional: *
    *
  • ATTR_MFGTYPE - Specifies the manufacturer type and model. *
  • ATTR_WORKSTATION_CUST_OBJECT - Specifies the integrated file system name of * the workstation customization object to be * used. The workstation customizing object * associated with the manufacturer, type, and * model is the default. *
  • ATTR_PAPER_SOURCE_1 - Specifies the paper size of drawer 1. *
  • ATTR_PAPER_SOURCE_2 - Specifies the paper size of drawer 2. *
  • ATTR_VIEWING_FIDELITY - Specifies the fidelity used to process pages. * *
* * @return A page input stream object that can be used to read the contents * of this spooled file, one page at a time. * @exception AS400Exception If the system returns an error message. * @exception AS400SecurityException If a security or authority error occurs. * @exception ErrorCompletingRequestException If an error occurs before the request is completed, or the spooled file format is not supported. * @exception IOException If an error occurs while communicating with the system. * @exception InterruptedException If this thread is interrupted. * @exception RequestNotSupportedException If the requested function is not supported * because the system operating system is not * at the correct level. **/ public PrintObjectPageInputStream getPageInputStream(PrintParameterList pageStreamOptions) throws AS400Exception, AS400SecurityException, ErrorCompletingRequestException, IOException, InterruptedException, RequestNotSupportedException { PrintObjectPageInputStream is = new PrintObjectPageInputStream(this, pageStreamOptions); return is; } /** * Returns a transformed input stream that can be used to read the contents of the * spooled file. *
* See Example using PrintObjectTransformedInputStream *
* @param transformOptions A print parameter list that contains * parameters for generating the transformed input stream.
* The following attribute MUST be set: *
    *
  • ATTR_MFGTYPE - Specifies the manufacturer, type, and model. *
* The following attributes are optional: *
    *
  • ATTR_WORKSTATION_CUST_OBJECT - Specifies the integrated file system name of * the workstation customization object to be * used. The workstation customizing object * associated with the manufacturer, type, and * model is the default. *
  • ATTR_PAPER_SOURCE_1 - Specifies the paper size of drawer 1. *
  • ATTR_PAPER_SOURCE_2 - Specifies the paper size of drawer 2. * *
* * @return The transformed input stream object that can be used to read the contents * of the transformed spooled file. * @exception AS400Exception If the system returns an error message. * @exception AS400SecurityException If a security or authority error occurs. * @exception ErrorCompletingRequestException If an error occurs before the request is completed, * or the spooled file format is not supported. * @exception IOException If an error occurs while communicating with the system. * @exception InterruptedException If this thread is interrupted. * @exception RequestNotSupportedException If the requested function is not supported * because the system operating system is not * at the correct level. **/ public PrintObjectTransformedInputStream getTransformedInputStream(PrintParameterList transformOptions) throws AS400Exception, AS400SecurityException, ErrorCompletingRequestException, IOException, InterruptedException, RequestNotSupportedException { PrintObjectTransformedInputStream is = new PrintObjectTransformedInputStream(this, transformOptions); return is; } /** * Holds the spooled file. * @param holdType When to hold the spooled file. * May be any of the following values: *
    *
  • *IMMED - The spooled file is held immediately. *
  • *PAGEEND - The spooled file is held at the end of the current page. *
* holdType may be null. If holdType is not specified, the default is * *IMMED. * * @exception AS400Exception If the system returns an error message. * @exception AS400SecurityException If a security or authority error occurs. * @exception ErrorCompletingRequestException If an error occurs before the request is completed. * @exception IOException If an error occurs while communicating with the system. * @exception InterruptedException If this thread is interrupted. * @exception RequestNotSupportedException If the requested function is not supported * because the system operating system is not * at the correct level. **/ public void hold(String holdType) throws AS400Exception, AS400SecurityException, ErrorCompletingRequestException, IOException, InterruptedException, RequestNotSupportedException { if (impl_ == null) chooseImpl(); ((SpooledFileImpl) impl_).hold(holdType); // update the spooled file attributes attrs = impl_.getAttrValue(); } /** * Moves the spooled file to another output queue or to another * position on the same output queue. * * @param targetSpooledFile The spooled file to move this * spooled file after. The targetSpooledFile and this spooled file * must reside on the same system. * * @exception AS400Exception If the system returns an error message. * @exception AS400SecurityException If a security or authority error occurs. * @exception ErrorCompletingRequestException If an error occurs before the request is completed. * @exception IOException If an error occurs while communicating with the system. * @exception InterruptedException If this thread is interrupted. * @exception RequestNotSupportedException If the requested function is not supported because the * system operating system is not at the correct level. **/ public void move(SpooledFile targetSpooledFile) throws AS400Exception, AS400SecurityException, ErrorCompletingRequestException, IOException, InterruptedException, RequestNotSupportedException { if (impl_ == null) chooseImpl(); if (targetSpooledFile.getImpl() == null) { targetSpooledFile.chooseImpl(); } ((SpooledFileImpl) impl_).move((SpooledFileImpl)targetSpooledFile.getImpl()); //update the spooled file attributes attrs = impl_.getAttrValue(); } /** * Moves the spooled file to another output queue. * * @param targetOutputQueue The output queue to move the * spooled file to. The spooled file will be moved to the first * position on this output queue. The output queue and this spooled * file must reside on the same system. * * @exception AS400Exception If the system returns an error message. * @exception AS400SecurityException If a security or authority error occurs. * @exception ErrorCompletingRequestException If an error occurs before the request is completed. * @exception IOException If an error occurs while communicating with the system. * @exception InterruptedException If this thread is interrupted. * @exception RequestNotSupportedException If the requested function is not supported because the * system operating system is not at the correct level. **/ public void move(OutputQueue targetOutputQueue) throws AS400Exception, AS400SecurityException, ErrorCompletingRequestException, IOException, InterruptedException, RequestNotSupportedException { if (impl_ == null) chooseImpl(); if (targetOutputQueue.getImpl() == null) { targetOutputQueue.chooseImpl(); } ((SpooledFileImpl) impl_).move((OutputQueueImpl)targetOutputQueue.getImpl()); // update the spooled file attributes attrs = impl_.getAttrValue(); } /** * Moves the spooled file to the first position on the output queue. * @exception AS400Exception If the system returns an error message. * @exception AS400SecurityException If a security or authority error occurs. * @exception ErrorCompletingRequestException If an error occurs before the request is completed. * @exception IOException If an error occurs while communicating with the system. * @exception InterruptedException If this thread is interrupted. * @exception RequestNotSupportedException If the requested function is not supported because the * system operating system is not at the correct level. **/ public void moveToTop() throws AS400Exception, AS400SecurityException, ErrorCompletingRequestException, IOException, InterruptedException, RequestNotSupportedException { if (impl_ == null) chooseImpl(); ((SpooledFileImpl) impl_).moveToTop(); // update the spooled file attributes attrs = impl_.getAttrValue(); } /** Restores the state of the object from an input stream. This is used when deserializing an object. @param in The input stream. @exception IOException Thrown if an IO error occurs. @exception ClassNotFoundException Thrown if class is not found. **/ private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { in.defaultReadObject(); fMsgRetrieved_ = false; } /** * Releases a held spooled file on the system. * @exception AS400Exception If the system returns an error message. * @exception AS400SecurityException If a security or authority error occurs. * @exception ErrorCompletingRequestException If an error occurs before the request is completed. * @exception IOException If an error occurs while communicating with the system. * @exception InterruptedException If this thread is interrupted. * @exception RequestNotSupportedException If the requested function is not supported because the * system operating system is not at the correct level. **/ public void release() throws AS400Exception, AS400SecurityException, ErrorCompletingRequestException, IOException, InterruptedException, RequestNotSupportedException { if (impl_ == null) chooseImpl(); ((SpooledFileImpl) impl_).release(); // update the spooled file attributes attrs = impl_.getAttrValue(); } /** * Sends the spooled file to another user on the same system or to * a remote system on the network. The equivalent of the system * Send Network Spooled File * (SNDNETSPLF) command will be issued against the spooled file. * * @param sendOptions A print parameter list that contains the * parameters for the send. The following attributes MUST be set: *
    *
  • ATTR_TOUSERID - Specifies the user ID to send the spooled file to. *
  • ATTR_TOADDRESS - Specifies the remote system to send the spooled file to. *
* The following attributes are optional: *
    *
  • ATTR_DATAFORMAT - Specifies the data format in which to transmit the * spooled file. May be either of *RCDDATA or * *ALLDATA. *RCDDATA is the default. *
  • ATTR_VMMVSCLASS - Specifies the VM/MVS SYSOUT class for distributions * sent to a VM host system or to an MVS host system. * May be A to Z or 0 to 9. A is the default. *
  • ATTR_SENDPTY - Specifies the queueing priority used for this spooled file * when it is being routed through a SNADS network. May be * *NORMAL or *HIGH. *NORMAL is the default. *
* * @exception AS400Exception If the system returns an error message. * @exception AS400SecurityException If a security or authority error occurs. * @exception ErrorCompletingRequestException If an error occurs before the request is completed. * @exception IOException If an error occurs while communicating with the system. * @exception InterruptedException If this thread is interrupted. **/ public void sendNet(PrintParameterList sendOptions) throws AS400Exception, AS400SecurityException, ErrorCompletingRequestException, IOException, InterruptedException { if (impl_ == null) chooseImpl(); ((SpooledFileImpl) impl_).sendNet(sendOptions); } /** * Sends a spooled file to be printed on a remote system. * The equivalent of the Send TCP/IP Spooled File * (SNDTCPSPLF) command will be issued against the spooled file. * This is the system's version of the TCP/IP LPR command. * * @param sendOptions A print parameter list that contains the * parameters for the send. The following attributes MUST be set: *
    *
  • ATTR_RMTSYSTEM - Specifies the remote system to which the print * request will be sent. May be a remote system * name or the special value *INTNETADR. *
  • ATTR_RMTPRTQ - Specifies the name of the destination print queue. *
* The following attributes are optional: *
    *
  • ATTR_DELETESPLF - Specifies whether or not to delete the spooled file * after it has been successfully sent. May be *NO * or *YES. *NO is the default. *
  • ATTR_DESTOPTION - Specifies a destination-dependant option. These options will * be sent to the remote system with the spooled file. *
  • ATTR_DESTINATION - Specifies the type of system to which the spooled file is * being sent. When sending to other IBM i systems, this value * should be *AS/400. May also be *OTHER or *PSF/2. * *OTHER is the default. *
  • ATTR_INTERNETADDR - Specifies the Internet address of the receiving system. *
  • ATTR_MFGTYPE - Specifies the manufacturer, type, and model when transforming print * data from SCS or AFP to ASCII. *
  • ATTR_SCS2ASCII - Specifies whether the print data is to be transformed to * ASCII. May be *NO or *YES. *NO is the default. *
  • ATTR_SEPPAGE - Specifies whether to print the separator page. May be * *NO or *YES. *YES is the default. *
* * @exception AS400Exception If the system returns an error message. * @exception AS400SecurityException If a security or authority error occurs. * @exception ErrorCompletingRequestException If an error occurs before the request is completed. * @exception IOException If an error occurs while communicating with the system. * @exception InterruptedException If this thread is interrupted. **/ public void sendTCP(PrintParameterList sendOptions) throws AS400Exception, AS400SecurityException, ErrorCompletingRequestException, IOException, InterruptedException { if (impl_ == null) chooseImpl(); ((SpooledFileImpl) impl_).sendTCP(sendOptions); } /** * Sets one or more attributes of the object. See * Spooled File Attributes for * a list of valid attributes that can be changed. * * @param attributes A print parameter list that contains the * attributes to be changed. * * @exception AS400Exception If the system returns an error message. * @exception AS400SecurityException If a security or authority error occurs. * @exception ErrorCompletingRequestException If an error occurs before the request is completed. * @exception IOException If an error occurs while communicating with the system * @exception InterruptedException If this thread is interrupted. * @exception RequestNotSupportedException If the requested function is not supported because the * system operating system is not at the correct level. **/ public void setAttributes(PrintParameterList attributes) throws AS400Exception, AS400SecurityException, ErrorCompletingRequestException, IOException, InterruptedException, RequestNotSupportedException { if (attributes == null) { Trace.log(Trace.ERROR, "Parameter 'attributes' is null."); throw new NullPointerException("attributes"); } if (impl_ == null) chooseImpl(); ((SpooledFileImpl) impl_).setAttributes(attributes); // we changed the spooled file attributes on the system, // merge those changed attributes into our current attributes // here. if (attrs == null) { attrs = new NPCPAttribute(); } // update the spooled file attributes attrs = impl_.getAttrValue(); } } // SpooledFile class




© 2015 - 2025 Weber Informatics LLC | Privacy Policy