private String[] getSIUDeviceDetails(String[] deviceNames) {
   Vector<String> deviceDetails = new Vector<String>();
   for (int i = 0; i < deviceInfo_.size(); i++) {
     NCRVendorDependentInformation info = deviceInfo_.get(i);
     for (int j = 0; j < deviceNames.length; j++) {
       if (info.getDeviceName().equals(deviceNames[j])) {
         deviceDetails.add(info.toString());
       }
     }
   }
   String[] values = new String[deviceDetails.size()];
   values = deviceDetails.toArray(values);
   return values;
 }
  private void initialize() {
    Class myClass = getClassObject();
    if (myClass == null) {
      JxfsCollectorLogger.getLogger()
          .writeWarningLog(
              "This informaton is only for NCR devices, so If other vendor Device Service is being used, please ignore this.");
      return;
    }
    Object reference = invokeMethod(myClass, new Object(), "getReference");
    if (reference == null) {
      return;
    }

    Boolean libraryLoaded = (Boolean) invokeMethod(myClass, new Object(), "isLibraryLoaded");
    if (libraryLoaded == null) {
      return;
    }

    if (!libraryLoaded.booleanValue()) {
      String msg =
          LIB_NAME
              + " Library is not loaded successfully, please make sure the library is available in the class path.";
      JxfsCollectorLogger.getLogger()
          .writeErrorLog(msg, new Exception("Native Library not found. " + LIB_NAME));
      return;
    }

    int[] handles = (int[]) invokeMethod(myClass, reference, "JNI_UlyDevListDevices");
    if (handles != null) {
      for (int i = 0; i < handles.length; i++) {
        try {
          Object deviceInfo = invokeMethod(myClass, reference, "JNI_UlyDevQueryDevice", handles[i]);

          String deviceName =
              (String) invokeMethod(deviceInfo.getClass(), deviceInfo, "getDeviceName");
          Integer variant = (Integer) invokeMethod(deviceInfo.getClass(), deviceInfo, "getVariant");
          Integer universalId =
              (Integer) invokeMethod(deviceInfo.getClass(), deviceInfo, "getUniversalId");
          NCRVendorDependentInformation vendorDependentInfo =
              new NCRVendorDependentInformation(deviceName, variant, universalId);
          deviceInfo_.add(vendorDependentInfo);
          JxfsCollectorLogger.getLogger().writeInfoLog(vendorDependentInfo.toString());
        } catch (Exception ex) {
          JxfsCollectorLogger.getLogger()
              .writeErrorLog("Unexpected exception occurred while invoking the methods ", ex);
        }
      }
    }
  }
  private String[] getDeviceDetails(String[] deviceNames) {
    String[] values = new String[1];
    for (int i = 0; i < deviceInfo_.size(); i++) {
      NCRVendorDependentInformation info = deviceInfo_.get(i);
      for (int j = 0; j < deviceNames.length; j++) {
        if (info.getDeviceName().equals(deviceNames[j])) {
          values[0] = info.toString();
        }
      }
    }

    if (values[0] == null) {
      for (int i = 0; i < deviceInfo_.size(); i++) {
        NCRVendorDependentInformation info = deviceInfo_.get(i);
        for (int j = 0; j < deviceNames.length; j++) {
          if (info.getDeviceName().startsWith(deviceNames[j])) {
            values[0] = info.toString();
          }
        }
      }
    }
    return values;
  }