/** * _more_ * * @param desc _more_ * @param dqc_location _more_ * @param errlog _more_ * @return _more_ * @throws IOException _more_ */ public static DqcRadarDatasetCollection factory( String desc, String dqc_location, StringBuffer errlog) throws IOException { DqcFactory dqcFactory = new DqcFactory(true); QueryCapability dqc = dqcFactory.readXML(dqc_location + "?returns=dqc"); if (dqc.hasFatalError()) { errlog.append(dqc.getErrorMessages()); return null; } // have a look at what selectors there are before proceeding SelectStation selStation = null; SelectList selTime = null; SelectService selService = null; // SelectGeoRegion selRegion = null; ArrayList selectors = dqc.getSelectors(); for (int i = 0; i < selectors.size(); i++) { Selector s = (Selector) selectors.get(i); if (s instanceof SelectStation) { selStation = (SelectStation) s; } if (s instanceof SelectList) { selTime = (SelectList) s; } if (s instanceof SelectService) { selService = (SelectService) s; } // if (s instanceof SelectGeoRegion) // selRegion = (SelectGeoRegion) s; } // gotta have these if (selService == null) { errlog.append("DqcStationaryRadarDataset must have Service selector"); return null; } if (selStation == null) { errlog.append("DqcStationaryRadarDataset must have Station selector"); return null; } if (selTime == null) { errlog.append("DqcStationaryRadarDataset must have Date selector"); return null; } // if (selRegion == null) { // errlog.append("DqcStationaryRadarDataset must have GeoRegion selector"); // return null; // } // decide on which service SelectService.ServiceChoice wantServiceChoice = null; List services = selService.getChoices(); for (int i = 0; i < services.size(); i++) { SelectService.ServiceChoice serviceChoice = (SelectService.ServiceChoice) services.get(i); if (serviceChoice.getService().equals("HTTPServer") && serviceChoice.getDataFormat().equals("text/xml")) { // && serviceChoice.getReturns().equals("data") ) // LOOK kludge wantServiceChoice = serviceChoice; } } if (wantServiceChoice == null) { errlog.append( "DqcStationObsDataset must have HTTPServer Service with DataFormat=text/plain, and returns=data"); return null; } return new DqcRadarDatasetCollection( desc, dqc, selService, wantServiceChoice, selStation, null, selTime); }