code: @Override
      public String[] ListDatastreamIDs(String state) {
          Iterator<String> iter = m_obj.datastreamIdIterator();
          ArrayList<String> al = new ArrayList<String>();
          while (iter.hasNext()) {
              String dsId = iter.next();
              if (state == null) {
                  al.add(dsId);
              } else {
                  // below should never return null -- already know id exists,
                  // and am asking for any the latest existing one.
                  Datastream ds = GetDatastream(dsId, null);
                  if (ds.DSState.equals(state)) {
                      al.add(dsId);
                  }
              }
          }
          return al.toArray(EMPTY_STRING_ARRAY);
      }
docs: {@inheritDoc}