jtopenlite.com.ibm.jtopenlite.command.program.message.OpenListOfMessagesLSTM0100 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: OpenListOfMessagesLSTM0100
//
// 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.program.*;
import com.ibm.jtopenlite.command.program.openlist.ListEntryFormat;
import java.util.*;
public class OpenListOfMessagesLSTM0100 implements ListEntryFormat
{
private final char[] c = new char[10];
public OpenListOfMessagesLSTM0100()
{
}
private final byte[] lastMessageIdentifierBytes_ = new byte[7];
private String lastMessageIdentifier_ = " ";
private final byte[] lastMessageFileNameBytes_ = new byte[10];
private String lastMessageFileName_ = " ";
private final byte[] lastMessageFileLibraryBytes_ = new byte[10];
private String lastMessageFileLibrary_ = " ";
private final byte[] lastMessageQueueBytes_ = new byte[10];
private String lastMessageQueue_ = " ";
private final byte[] lastMessageQueueLibraryBytes_ = new byte[10];
private String lastMessageQueueLibrary_ = " ";
private static boolean matches(final byte[] data, final int offset, final byte[] data2)
{
for (int i=0; i messageTypeCache_ = new HashMap();
private String getMessageType(final byte[] data, final int offset)
{
int num = Conv.byteArrayToShort(data, offset);
hashObject_.setHash(num);
String messageType = (String)messageTypeCache_.get(hashObject_);
if (messageType == null)
{
HashObject obj = new HashObject();
obj.setHash(num);
messageType = Conv.ebcdicByteArrayToString(data, offset, 2, c);
messageTypeCache_.put(obj, messageType);
}
return messageType;
}
public void format(final byte[] data, final int maxLength, final int recordLength, OpenListOfMessagesLSTM0100Listener listener)
{
if (listener == null)
{
return;
}
int offset = 0;
int offsetToTheNextEntry = 1;
while (offset < maxLength && offsetToTheNextEntry > 0)
{
offsetToTheNextEntry = Conv.byteArrayToInt(data, offset);
int offsetToFieldsReturned = Conv.byteArrayToInt(data, offset+4);
int numberOfFieldsReturned = Conv.byteArrayToInt(data, offset+8);
int messageSeverity = Conv.byteArrayToInt(data, offset+12);
//String messageIdentifier = Conv.ebcdicByteArrayToString(data, offset+16, 7, c);
getMessageIdentifier(data, offset+16);
String messageIdentifier = lastMessageIdentifier_;
//String messageType = Conv.ebcdicByteArrayToString(data, offset+23, 2, c);
String messageType = getMessageType(data, offset+23);
int messageKey = Conv.byteArrayToInt(data, offset+25);
//String messageFileName = Conv.ebcdicByteArrayToString(data, offset+29, 10, c);
getMessageFileName(data, offset+29);
String messageFileName = lastMessageFileName_;
//String messageFileLibrary = Conv.ebcdicByteArrayToString(data, offset+39, 10, c);
getMessageFileLibrary(data, offset+39);
String messageFileLibrary = lastMessageFileLibrary_;
//String messageQueue = Conv.ebcdicByteArrayToString(data, offset+49, 10, c);
getMessageQueue(data, offset+49);
String messageQueue = lastMessageQueue_;
//String messageQueueLibrary = Conv.ebcdicByteArrayToString(data, offset+59, 10, c);
getMessageQueueLibrary(data, offset+59);
String messageQueueLibrary = lastMessageQueueLibrary_;
String dateSent = Conv.ebcdicByteArrayToString(data, offset+69, 7, c);
String timeSent = Conv.ebcdicByteArrayToString(data, offset+76, 6, c);
String microseconds = Conv.ebcdicByteArrayToString(data, offset+82, 6, c);
listener.newMessageEntry(numberOfFieldsReturned, messageSeverity,
messageIdentifier, messageType, messageKey, messageFileName,
messageFileLibrary, messageQueue, messageQueueLibrary, dateSent,
timeSent, microseconds);
offset = offsetToFieldsReturned;
for (int i=0; i