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

jtopenlite.com.ibm.jtopenlite.command.program.message.OpenListOfMessagesLSTM0100 Maven / Gradle / Ivy

There is a newer version: 20.0.7
Show newest version
///////////////////////////////////////////////////////////////////////////////
//
// 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




© 2015 - 2024 Weber Informatics LLC | Privacy Policy