/////////////////////////////////////////////////////////////////////////////////////////////////// // main /////////////////////////////////////////////////////////////////////////////////////////////////// public static void main(String[] args) throws IOException { final FileWriter okWriter = new FileWriter( new File("d:/temp_dev/opendata/servicios.csv")); // fichero al que escribir los datos final FileWriter errWriter = new FileWriter( new File( "d:/temp_dev/opendata/servicios_err.log")); // fichero al que escribir los datos try { okWriter.write(ServiceData.csvHEAD()); // write the header // [1] Construir la query R01MSearchFilterForContent qry = _buildQuery(); log.debug("[SearchQuery]: " + qry.toCriteriaString()); // [2] Inicializar la sesión R01MSearchSession.resultItemStreamForQuery(qry) .map( new Func1<R01MSearchResultItem, ServiceData>() { @Override public ServiceData call(final R01MSearchResultItem item) { try { return _resultItemToServiceData(item); } catch (IOException ioEx) { throw OnErrorThrowable.from(ioEx); } } }) .subscribe( new Observer<ServiceData>() { @Override public void onCompleted() { System.out.println("---->End!"); } @Override public void onNext(final ServiceData serviceData) { _writeRow(okWriter, serviceData); } @Override public void onError(final Throwable th) { _writeError(errWriter, th); } }); } catch (Exception ex) { ex.printStackTrace(System.out); } finally { try { okWriter.close(); errWriter.close(); } catch (IOException ioEx) { ioEx.printStackTrace(System.out); } } }