/**
   * tds radar dataset collection factory
   *
   * @param desc _more_
   * @param dsc_location _more_
   * @param errlog _more_
   * @return dataset collection
   * @throws IOException _more_
   */
  public static TDSRadarDatasetCollection factory(
      String desc, String dsc_location, StringBuffer errlog) throws IOException {
    // super();
    SAXBuilder builder;
    Document doc = null;
    XMLEntityResolver jaxp = new XMLEntityResolver(true);
    builder = jaxp.getSAXBuilder();

    try {
      doc = builder.build(dsc_location);
    } catch (JDOMException e) {
      errlog.append(e.toString());
    }

    Element qcElem = doc.getRootElement();
    Namespace ns = qcElem.getNamespace();

    return new TDSRadarDatasetCollection(desc, dsc_location, qcElem, ns, errlog);
  }
  /**
   * retrieve all radar stations in this dataset collection
   *
   * @param stsXML_location _more_
   * @return station hashmap
   * @throws IOException _more_
   */
  public HashMap<String, Station> readRadarStations(String stsXML_location) throws IOException {
    SAXBuilder builder;
    Document doc = null;
    XMLEntityResolver jaxp = new XMLEntityResolver(true);
    builder = jaxp.getSAXBuilder();
    HashMap<String, Station> stations = new HashMap<String, Station>();

    try {
      doc = builder.build(stsXML_location);
    } catch (JDOMException e) {
      e.printStackTrace();
    }

    Element rootElem = doc.getRootElement();
    List<Element> children = rootElem.getChildren();
    for (Element child : children) {
      Station s;
      if (null != (s = readStation(child))) {
        stations.put(s.getName(), s);
      }
    }

    return stations;
  }
  public static void showServerInfo(PrintStream out) {
    out.println("Server Info");
    out.println(
        " getDocumentBuilderFactoryVersion(): "
            + XMLEntityResolver.getDocumentBuilderFactoryVersion());
    out.println();

    Properties sysp = System.getProperties();
    Enumeration e = sysp.propertyNames();
    List<String> list = Collections.list(e);
    Collections.sort(list);

    out.println("System Properties:");
    for (String name : list) {
      String value = System.getProperty(name);
      out.println("  " + name + " = " + value);
    }
    out.println();
  }