
jtopenlite.com.ibm.jtopenlite.components.ListObjectsImpl 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: ListObjectsImpl.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.components;
import com.ibm.jtopenlite.*;
import com.ibm.jtopenlite.command.*;
import com.ibm.jtopenlite.command.program.object.*;
import com.ibm.jtopenlite.command.program.openlist.OpenListHandler;
import java.io.*;
class ListObjectsImpl implements OpenListOfObjectsFormatListener, OpenListOfObjectsSelectionListener
{
private static final int[] KEYS = new int[] { 202, 203 }; // Extended object attribute, text description
private final OpenListOfObjectsFormat format_ = new OpenListOfObjectsFormat();
private final OpenListOfObjects objectList_ = new OpenListOfObjects(format_, 8, 1, null, null, null, null, null, this, KEYS);
private final OpenListHandler handler_ = new OpenListHandler(objectList_, format_, this);
private ObjectInfo[] objects_;
private int counter_ = -1;
private final char[] charBuffer_ = new char[50];
public ListObjectsImpl()
{
}
public void openComplete()
{
}
public void totalRecordsInList(int total)
{
objects_ = new ObjectInfo[total];
counter_ = -1;
}
public boolean stopProcessing()
{
return false;
}
public ObjectInfo[] getObjects(final CommandConnection conn, String name, String library, String type) throws IOException
{
objectList_.setObjectName(name);
objectList_.setObjectLibrary(library);
objectList_.setObjectType(type);
objects_ = null;
counter_ = -1;
handler_.process(conn, 2800);
return objects_;
}
////////////////////////////////////////
//
// Selection methods.
//
////////////////////////////////////////
public boolean isSelected()
{
return false;
}
public int getNumberOfStatuses()
{
return 1;
}
public String getStatus(int index)
{
return "A"; // Omit objects we do not have authority to.
}
/* public int getCallLevel()
{
return 0;
}
public int getNumberOfObjectAuthorities()
{
return 1;
}
public int getNumberOfLibraryAuthorities()
{
return 0;
}
public String getObjectAuthority(int index)
{
return "*OBJEXIST";
}
public String getLibraryAuthority(int index)
{
return null;
}
*/
////////////////////////////////////////
//
// List entry format methods.
//
////////////////////////////////////////
public void newObjectEntry(String objectName, String objectLibrary, String objectType,
String informationStatus, int numFields)
{
objects_[++counter_] = new ObjectInfo(objectName, objectLibrary, objectType, informationStatus);
}
public void newObjectFieldData(int lengthOfFieldInfo, int key, String type, int dataLength, int dataOffset, byte[] data)
{
switch (key)
{
case 202:
String attribute = isBlank(data, dataOffset) ? blankAttribute_ : Conv.ebcdicByteArrayToString(data, dataOffset, dataLength, charBuffer_);
objects_[counter_].setAttribute(attribute);
break;
case 203:
String description = Conv.ebcdicByteArrayToString(data, dataOffset, dataLength, charBuffer_);
objects_[counter_].setTextDescription(description);
break;
}
}
private static final String blankAttribute_ = " ";
private boolean isBlank(final byte[] data, final int numRead)
{
int stop = numRead+10;
for (int i=numRead; i
© 2015 - 2025 Weber Informatics LLC | Privacy Policy