public Document makeStationCollectionDocument ( LatLonRect bb , String [ ] names ) throws IOException { List < DsgFeatureCollection > list = fdp . getPointFeatureCollectionList ( ) ; DsgFeatureCollection fc = list . get ( 0 ) ; // LOOK maybe should pass in the dsg? if ( ! ( fc instanceof StationTimeSeriesFeatureCollection ) ) { throw new UnsupportedOperationException ( fc . getClass ( ) . getName ( ) + " not a StationTimeSeriesFeatureCollection" ) ; } StationTimeSeriesFeatureCollection sobs = ( StationTimeSeriesFeatureCollection ) fc ; Element rootElem = new Element ( "stationCollection" ) ; Document doc = new Document ( rootElem ) ; List < StationFeature > stations ; if ( bb != null ) stations = sobs . getStationFeatures ( bb ) ; else if ( names != null ) stations = sobs . getStationFeatures ( Arrays . asList ( names ) ) ; else stations = sobs . getStationFeatures ( ) ; for ( Station s : stations ) { Element sElem = new Element ( "station" ) ; sElem . setAttribute ( "name" , s . getName ( ) ) ; if ( s . getWmoId ( ) != null ) sElem . setAttribute ( "wmo_id" , s . getWmoId ( ) ) ; if ( ( s . getDescription ( ) != null ) && ( s . getDescription ( ) . length ( ) > 0 ) ) sElem . addContent ( new Element ( "description" ) . addContent ( s . getDescription ( ) ) ) ; sElem . addContent ( new Element ( "longitude" ) . addContent ( Double . toString ( s . getLongitude ( ) ) ) ) ; sElem . addContent ( new Element ( "latitide" ) . addContent ( Double . toString ( s . getLatitude ( ) ) ) ) ; if ( ! Double . isNaN ( s . getAltitude ( ) ) ) sElem . addContent ( new Element ( "altitude" ) . addContent ( Double . toString ( s . getAltitude ( ) ) ) ) ; rootElem . addContent ( sElem ) ; } return doc ; }
Create an XML document for the stations in this dataset possible subsetted by bb . Must be a station dataset .