예제 #1
0
  /**
   * Creates a RegistryEntry reading the given ResultSet
   *
   * @return the RegistryEntry
   * @param rs the resultSet
   * @throws java.sql.SQLException if an error occurs
   */
  private RegistryEntry resultSetToRegistryEntry(ResultSet rs) throws SQLException {

    RegistryEntry entry = new RegistryEntry();

    entry.setId(rs.getLong(1));
    entry.setPeriod(rs.getLong(2));
    entry.setActive("Y".equalsIgnoreCase(rs.getString(3)));
    entry.setTaskBeanFile(rs.getString(4));
    entry.setLastUpdate(rs.getLong(5));

    String s = rs.getString(6);
    if (s == null || s.length() == 0) {
      entry.setStatus(RegistryEntryStatus.UNKNOWN);
    }
    if ("N".equals(s)) {
      entry.setStatus(RegistryEntryStatus.NEW);
    } else if ("U".equals(s)) {
      entry.setStatus(RegistryEntryStatus.UPDATED);
    } else if ("D".equals(s)) {
      entry.setStatus(RegistryEntryStatus.DELETED);
    } else {
      entry.setStatus(RegistryEntryStatus.UNKNOWN);
    }

    short numberOfExtraProperties = queryDesc.getNumberOfExtraColumns();
    String[] extraProperties = queryDesc.getExtraProperties();

    if (numberOfExtraProperties > 0) {
      Map<String, Object> extraPropertiesMap = new LinkedHashMap<String, Object>();
      for (short j = 0; j < numberOfExtraProperties; j++) {
        extraPropertiesMap.put(extraProperties[j], rs.getObject(7 + j));
      }
      entry.setProperties(extraPropertiesMap);
    }

    return entry;
  }