jtopenlite.com.ibm.jtopenlite.command.program.journal.RetrieveJournalEntriesSelection Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jt400-jdk9 Show documentation
Show all versions of jt400-jdk9 Show documentation
The Open Source version of the IBM Toolbox for Java
///////////////////////////////////////////////////////////////////////////////
//
// JTOpenLite
//
// Filename: RetrieveJournalEntriesSelectionListener.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-2014 International Business Machines Corporation and
// others. All rights reserved.
//
///////////////////////////////////////////////////////////////////////////////
package com.ibm.jtopenlite.command.program.journal;
import com.ibm.jtopenlite.Conv;
/**
* Sample implementation of RetrieveJournalEntriesSelectionListener.
*
* Note: This implementation does not check the validity of the input parameters.
* Refer to the API documentation
* (http://publib.boulder.ibm.com/infocenter/iseries/v5r4/index.jsp?topic=%2Fapis%2FQJORJRNE.htm)
* for information about the parameters.
*/
public class RetrieveJournalEntriesSelection implements RetrieveJournalEntriesSelectionListener
{
int allocatedSize;
int recordCount;
int[] keys;
byte[][] data;
public RetrieveJournalEntriesSelection() {
allocatedSize = 10;
recordCount = 0;
keys = new int[allocatedSize];
data = new byte[allocatedSize][];
}
/**
* check that entry can be safely added. If not
* expand the storage.
*/
private void beforeAdd() {
if (recordCount == allocatedSize) {
int newAllocatedSize = allocatedSize + 10;
int[] newKeys = new int[newAllocatedSize];
byte[][] newData = new byte[newAllocatedSize][];
for (int i = 0 ; i < recordCount; i++) {
newKeys[i] = keys[i];
newData[i] = data[i];
}
keys = newKeys;
data = newData;
allocatedSize = newAllocatedSize;
}
}
synchronized public void addEntry(int key, int value) {
beforeAdd();
keys[recordCount] = key;
data[recordCount] = Conv.intToByteArray(value);
recordCount++;
}
synchronized public void addEntry(int key, String value) {
beforeAdd();
keys[recordCount] = key;
data[recordCount] = Conv.stringToEBCDICByteArray37(value);
recordCount++;
}
synchronized public void addEntry(int key, byte[] value) {
beforeAdd();
keys[recordCount] = key;
data[recordCount] = value;
recordCount++;
}
synchronized public int getNumberOfVariableLengthRecords() {
return recordCount;
}
synchronized public int getVariableLengthRecordKey(int index) {
return keys[index];
}
synchronized public int getVariableLengthRecordDataLength(int index) {
return data[index].length;
}
synchronized public void setVariableLengthRecordData(int index, byte[] buffer, int offset) {
byte[] fromData = data[index];
System.arraycopy(fromData, 0, buffer, offset, fromData.length);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy