jtopenlite.com.ibm.jtopenlite.command.program.print.OpenListOfSpooledFilesFormatOSPL0200 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
///////////////////////////////////////////////////////////////////////////////
//
// JTOpenLite
//
// Filename: OpenListOfSpooledFilesFormatOSPL0200.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) 2011-2012 International Business Machines Corporation and
// others. All rights reserved.
//
///////////////////////////////////////////////////////////////////////////////
package com.ibm.jtopenlite.command.program.print;
import com.ibm.jtopenlite.*;
public class OpenListOfSpooledFilesFormatOSPL0200 implements OpenListOfSpooledFilesFormat
{
private final char[] charBuffer_ = new char[10];
public OpenListOfSpooledFilesFormatOSPL0200()
{
}
public String getName()
{
return "OSPL0200";
}
public int getType()
{
return FORMAT_OSPL0200;
}
public void format(final byte[] data, final int maxLength, final int recordLength, OpenListOfSpooledFilesFormatOSPL0200Listener listener)
{
if (listener == null)
{
return;
}
int numRead = 0;
while (numRead+184 <= maxLength)
{
int current = numRead;
String spooledFileName = Conv.ebcdicByteArrayToString(data, numRead, 10, charBuffer_);
numRead += 10;
String jobName = Conv.ebcdicByteArrayToString(data, numRead, 10, charBuffer_);
numRead += 10;
String jobUser = Conv.ebcdicByteArrayToString(data, numRead, 10, charBuffer_);
numRead += 10;
String jobNumber = Conv.ebcdicByteArrayToString(data, numRead, 6, charBuffer_);
numRead += 6;
int spooledFileNumber = Conv.byteArrayToInt(data, numRead);
numRead += 4;
int totalPages = Conv.byteArrayToInt(data, numRead);
numRead += 4;
int currentPage = Conv.byteArrayToInt(data, numRead);
numRead += 4;
int copiesLeftToPrint = Conv.byteArrayToInt(data, numRead);
numRead += 4;
String outputQueueName = Conv.ebcdicByteArrayToString(data, numRead, 10, charBuffer_);
numRead += 10;
String outputQueueLibrary = Conv.ebcdicByteArrayToString(data, numRead, 10, charBuffer_);
numRead += 10;
String userData = Conv.ebcdicByteArrayToString(data, numRead, 10, charBuffer_);
numRead += 10;
String status = Conv.ebcdicByteArrayToString(data, numRead, 10, charBuffer_);
numRead += 10;
String formType = Conv.ebcdicByteArrayToString(data, numRead, 10, charBuffer_);
numRead += 10;
String priority = Conv.ebcdicByteArrayToString(data, numRead, 2, charBuffer_);
numRead += 2;
byte[] internalJobIdentifier = new byte[16];
System.arraycopy(data, numRead, internalJobIdentifier, 0, 16);
numRead += 16;
byte[] internalSpooledFileIdentifier = new byte[16];
System.arraycopy(data, numRead, internalSpooledFileIdentifier, 0, 16);
numRead += 16;
String deviceType = Conv.ebcdicByteArrayToString(data, numRead, 10, charBuffer_);
numRead += 10;
numRead += 2;
int offsetToExtension = Conv.byteArrayToInt(data, numRead);
numRead += 4;
int lengthOfExtension = Conv.byteArrayToInt(data, numRead);
numRead += 4;
numRead += 4;
String dateOpened = Conv.ebcdicByteArrayToString(data, numRead, 7, charBuffer_);
numRead += 7;
String timeOpened = Conv.ebcdicByteArrayToString(data, numRead, 6, charBuffer_);
numRead += 6;
String printerAssigned = Conv.ebcdicByteArrayToString(data, numRead, 1, charBuffer_);
numRead += 1;
String printerName = Conv.ebcdicByteArrayToString(data, numRead, 10, charBuffer_);
numRead += 10;
numRead += 8;
String jobSystemName = null;
if (offsetToExtension > 0 && lengthOfExtension > 0)
{
numRead += (numRead-current-offsetToExtension);
jobSystemName = Conv.ebcdicByteArrayToString(data, numRead, 8, charBuffer_);
}
listener.newSpooledFileEntry(spooledFileName, jobName, jobUser, jobNumber, spooledFileNumber,
totalPages, currentPage, copiesLeftToPrint,
outputQueueName, outputQueueLibrary, userData,
status, formType, priority,
internalJobIdentifier, internalSpooledFileIdentifier,
deviceType, dateOpened, timeOpened, printerAssigned, printerName,
jobSystemName);
}
}
}