com.ibm.jtopenlite.command.program.openlist

Class OpenListHandler

  • java.lang.Object
    • com.ibm.jtopenlite.command.program.openlist.OpenListHandler


  • public class OpenListHandler
    extends java.lang.Object
    Use this to easily read entries created by an OpenListProgram.

    Example: Get a list of journal objects (*JRN) on the system

     // Start by getting a connection.
     CommandConnection conn = CommandConnection.getConnection("system", "user", "password");
    
     // The formatter converts the raw output bytes from the program call into more useful things.
     OpenListOfObjectsFormat format = new OpenListOfObjectsFormat();
    
     // The format listener gets notified when those useful things are ready.
     OpenListOfObjectsFormatListener listener = new ObjectListOfObjectsListener()
     {
       public void newObjectEntry(String objectNameUsed, String objectLibraryUsed,
                                  String objectTypeUsed, String informationStatus, int numberOfFieldsReturned)
       {
         System.out.println("Journal "+objectNameUsed+" in library "+objectLibraryUser+".");
       }
    
       public void newObjectFieldData(int lengthOfFieldInformation, int keyField, String typeOfData,
                                      int lengthOfData, int offsetToData, byte[] tempDataBuffer)
       {
         if (keyField == 203)
         {
           // Text description.
           System.out.println("Description: "+Conv.ebcdicByteArrayToString(tempDataBuffer, offsetToData, lengthOfData));
         }
         else if (keyField == 605)
         {
           // ASP device name.
           System.out.println("ASP device: "+Conv.ebcdicByteArrayToString(tempDataBuffer, offsetToData, lengthOfData));
         }
       }
    
       // We want all of the entries in the list, so don't stop processing at any time.
       public boolean stopProcessing()
       {
         return false;
       }
    
       public void totalRecordsInList(int total)
       {
         System.out.println("Total objects found: "+total);
       }
    
       public void openComplete()
       {
       }
     };
    
     // The selection listener tells the OpenListOfJobs about other criteria we want to use to filter
     // out objects from the list.
     OpenListOfObjectsSelectionListener selectionListener = new OpenListOfObjectsSelectionListener()
     {
       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.
       }
     };
    
     // These keys retrieve the text description (203) and the ASP device name (605).
     int[] keys = new int[] { 203, 605 };
    
     // Construct the open list program call.
     OpenListOfObjects list = new OpenListOfObjects(format, 1024, 0, null, "*ALL", "*ALL", "*JRN", null, selectionListener, keys);
    
     // Use an OpenListHandler to help us get all of the entries.
     OpenListHandler handler = new OpenListHandler(list, format, listener);
    
     // Kick it off. The handler will call GetListEntries, which in turn will call our formatter with
     // the output data for each entry in the list, which in turn will call our format listener to
     // notify us via newObjectEntry() and newObjectFieldData().
     handler.process(conn, 1000);
    
     // All done.
     conn.close();
     
    • Method Detail

      • process

        public void process(CommandConnection conn,
                   int numRecordsToReturn)
                     throws java.io.IOException
        Calls the OpenListProgram, then loops calling GetListEntries, then finally calls CloseList.
        Parameters:
        conn - The connection to use.
        numRecordsToReturn - The number of records the GetListEntries call should return each time.
        Throws:
        java.io.IOException