jtopenlite.com.ibm.jtopenlite.command.program.message.OpenListOfJobLogMessages Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jt400 Show documentation
Show all versions of jt400 Show documentation
The Open Source version of the IBM Toolbox for Java
///////////////////////////////////////////////////////////////////////////////
//
// JTOpenLite
//
// Filename: OpenListOfJobLogMessages.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.message;
import com.ibm.jtopenlite.*;
import com.ibm.jtopenlite.command.Parameter;
import com.ibm.jtopenlite.command.program.openlist.*;
/**
* QGYOLJBL
* This class fully implements the V5R4 specification of QGYOLJBL.
**/
public class OpenListOfJobLogMessages implements OpenListProgram
{
private static final byte[] ZERO = new byte[4];
private int inputLength_;
private int numberOfRecordsToReturn_;
private OpenListOfJobLogMessagesOLJL0100 formatter_;
private OpenListOfJobLogMessagesOLJL0100Listener formatListener_;
private ListInformation info_;
private OpenListOfJobLogMessagesSelectionListener selectionListener_;
private byte[] tempData_;
public OpenListOfJobLogMessages()
{
}
public OpenListOfJobLogMessages(int lengthOfReceiverVariable, int numberOfRecordsToReturn,
OpenListOfJobLogMessagesOLJL0100 format)
{
inputLength_ = lengthOfReceiverVariable <= 0 ? 1 : lengthOfReceiverVariable;
numberOfRecordsToReturn_ = numberOfRecordsToReturn;
formatter_ = format;
}
public String getProgramName()
{
return "QGYOLJBL";
}
public String getProgramLibrary()
{
return "QGY";
}
public int getNumberOfParameters()
{
return 7;
}
public final byte[] getTempDataBuffer()
{
int maxSize = 0;
for (int i=0; i maxSize) maxSize = len;
len = getParameterInputLength(i);
if (len > maxSize) maxSize = len;
}
if (tempData_ == null || tempData_.length < maxSize)
{
tempData_ = new byte[maxSize];
}
return tempData_;
}
public OpenListOfJobLogMessagesSelectionListener getSelectionListener()
{
return selectionListener_;
}
public void setSelectionListener(OpenListOfJobLogMessagesSelectionListener listener)
{
selectionListener_ = listener;
}
public OpenListOfJobLogMessagesOLJL0100 getFormatter()
{
return formatter_;
}
public void setFormatter(OpenListOfJobLogMessagesOLJL0100 format)
{
formatter_ = format;
}
public OpenListOfJobLogMessagesOLJL0100Listener getFormatListener()
{
return formatListener_;
}
public void setFormatListener(OpenListOfJobLogMessagesOLJL0100Listener listener)
{
formatListener_ = listener;
}
public void newCall()
{
info_ = null;
}
public ListInformation getListInformation()
{
return info_;
}
public int getNumberOfRecordsToReturn()
{
return numberOfRecordsToReturn_;
}
public void setNumberOfRecordsToReturn(int numberOfRecordsToReturn)
{
numberOfRecordsToReturn_ = numberOfRecordsToReturn;
}
public int getParameterInputLength(final int parmIndex)
{
switch (parmIndex)
{
case 0: return 0;
case 1: return 4;
case 2: return 0;
case 3: return 4;
case 4:
int num = 80;
if (selectionListener_ != null)
{
String queue = selectionListener_.getCallMessageQueueName();
num += 4*selectionListener_.getFieldIdentifierCount() +
(queue == null ? 1 : queue.length());
}
return num;
case 5: return 4;
case 6: return 4;
}
return 0;
}
public int getParameterOutputLength(final int parmIndex)
{
switch (parmIndex)
{
case 0: return inputLength_;
case 2: return 80;
case 6: return 4;
}
return 0;
}
public int getParameterType(final int parmIndex)
{
switch (parmIndex)
{
case 0:
case 2:
return Parameter.TYPE_OUTPUT;
case 6:
return Parameter.TYPE_INPUT_OUTPUT;
}
return Parameter.TYPE_INPUT;
}
public byte[] getParameterInputData(final int parmIndex)
{
final byte[] tempData = getTempDataBuffer();
switch (parmIndex)
{
case 1: Conv.intToByteArray(inputLength_, tempData, 0); return tempData;
case 3: Conv.intToByteArray(numberOfRecordsToReturn_, tempData, 0); return tempData;
case 4: // Message selection info.
final String listDirection = selectionListener_ == null ? "*NEXT" : selectionListener_.getListDirection();
final String qualifiedJobName = selectionListener_ == null ? "*" : selectionListener_.getQualifiedJobName();
final byte[] internalJobIdentifier = selectionListener_ == null ? null : selectionListener_.getInternalJobIdentifier();
final int startingMessageKey = selectionListener_ == null ? 0 : selectionListener_.getStartingMessageKey();
final int maximumMessageLength = selectionListener_ == null ? 1024 : selectionListener_.getMaximumMessageLength();
final int maximumMessageHelpLength = selectionListener_ == null ? 1024 : selectionListener_.getMaximumMessageHelpLength();
final int numberOfFieldsToReturn = selectionListener_ == null ? 1 : selectionListener_.getFieldIdentifierCount();
final String callMessageQueueName = selectionListener_ == null ? "*" : selectionListener_.getCallMessageQueueName();
int offsetOfIdentifiersOfFieldsToReturn = 80;
int offsetOfCallMessageQueueName = offsetOfIdentifiersOfFieldsToReturn+(4*numberOfFieldsToReturn);
Conv.stringToBlankPadEBCDICByteArray(listDirection, tempData, 0, 10);
Conv.stringToBlankPadEBCDICByteArray(qualifiedJobName, tempData, 10, 26);
if (internalJobIdentifier == null)
{
for (int i=36; i<52; ++i) tempData[i] = 0x40; // Blanks.
}
else
{
System.arraycopy(internalJobIdentifier, 0, tempData, 36, 16);
}
Conv.intToByteArray(startingMessageKey, tempData, 52);
Conv.intToByteArray(maximumMessageLength, tempData, 56);
Conv.intToByteArray(maximumMessageHelpLength, tempData, 60);
Conv.intToByteArray(offsetOfIdentifiersOfFieldsToReturn, tempData, 64);
Conv.intToByteArray(numberOfFieldsToReturn, tempData, 68);
Conv.intToByteArray(offsetOfCallMessageQueueName, tempData, 72);
Conv.intToByteArray(callMessageQueueName.length(), tempData, 76);
int offset = 80;
for (int i=0; i