@Before public void load() throws IOException { cswConfiguration = new YamlMappingConfiguration( Resources.asByteSource(Resources.getResource("mappings/csw-record.yml")).openStream(), new XPathHelper()); cswMapper = new CswToBuilderMapper(cswConfiguration); }
/** * Returns a CharSource of report contents with {@code ReportDownloadOptions}. The ExportFormat * must be string-based, such as {@link * com.google.api.ads.dfp.axis.v201502.ExportFormat#CSV_DUMP}. * * @param options the options to download the report with * @return a new CharSource of report results * @throws IOException if there was an error performing any I/O action, including any SOAP calls * @throws IllegalStateException if the report is not ready to be downloaded * @throws IllegalArgumentException if the {@link ExportFormat} is not a string-based format */ public CharSource getReportAsCharSource(ReportDownloadOptions options) throws IOException { Preconditions.checkArgument( SUPPORTED_CHARSOURCE_EXPORT_FORMATS.contains(options.getExportFormat()), "ExportFormat " + options.getExportFormat() + " cannot be used with CharSource"); ByteSource byteSource = Resources.asByteSource(getDownloadUrl(options)); return (options.getUseGzipCompression() ? new GZippedByteSource(byteSource) : byteSource) .asCharSource(REPORT_CHARSET); }
/** * Downloads a Gzip or plain-text format report XML to output stream indicated by {@code * outputStream}. * * @param exportFormat the export format of the report * @param outputStream the output stream to download the report to * @throws IOException if there was an error performing any I/O action, including any SOAP calls * @throws IllegalStateException if the report is not ready to be downloaded * @deprecated use {@link #getDownloadUrl(ReportDownloadOptions)} */ @Deprecated public void downloadReport(ExportFormat exportFormat, OutputStream outputStream) throws IOException { ReportDownloadOptions options = new ReportDownloadOptions(); options.setExportFormat(exportFormat); options.setUseGzipCompression(true); Resources.asByteSource(getDownloadUrl(options)).copyTo(outputStream); }
@Override public ByteSource find(String name) throws IOException { String path = resolve(name); URL url = getClass().getResource(path); if (url == null) { throw new IOException(name + " not found"); } return Resources.asByteSource(url); }
public static void runExample(DfpServices dfpServices, DfpSession session, long orderId) throws Exception { // Get the ReportService. ReportServiceInterface reportService = dfpServices.get(session, ReportServiceInterface.class); // Create report query. ReportQuery reportQuery = new ReportQuery(); reportQuery.setDimensions(new Dimension[] {Dimension.DATE, Dimension.ORDER_ID}); reportQuery.setColumns( new Column[] { Column.AD_SERVER_IMPRESSIONS, Column.AD_SERVER_CLICKS, Column.AD_SERVER_CTR, Column.AD_SERVER_CPM_AND_CPC_REVENUE }); reportQuery.setDimensionAttributes( new DimensionAttribute[] { DimensionAttribute.ORDER_TRAFFICKER, DimensionAttribute.ORDER_START_DATE_TIME, DimensionAttribute.ORDER_END_DATE_TIME }); // Create statement to filter for an order. StatementBuilder statementBuilder = new StatementBuilder() .where("ORDER_ID = :orderId") .withBindVariableValue("orderId", orderId); // Set the filter statement. reportQuery.setStatement(statementBuilder.toStatement()); // Set the start and end dates or choose a dynamic date range type. reportQuery.setDateRangeType(DateRangeType.CUSTOM_DATE); reportQuery.setStartDate( DateTimes.toDateTime("2013-05-01T00:00:00", "America/New_York").getDate()); reportQuery.setEndDate( DateTimes.toDateTime("2013-05-31T00:00:00", "America/New_York").getDate()); // Create report job. ReportJob reportJob = new ReportJob(); reportJob.setReportQuery(reportQuery); // Run report job. reportJob = reportService.runReportJob(reportJob); // Create report downloader. ReportDownloader reportDownloader = new ReportDownloader(reportService, reportJob.getId()); // Wait for the report to be ready. reportDownloader.waitForReportReady(); // Change to your file location. File file = File.createTempFile("delivery-report-", ".csv.gz"); System.out.printf("Downloading report to %s ...", file.toString()); // Download the report. ReportDownloadOptions options = new ReportDownloadOptions(); options.setExportFormat(ExportFormat.CSV_DUMP); options.setUseGzipCompression(true); URL url = reportDownloader.getDownloadUrl(options); Resources.asByteSource(url).copyTo(Files.asByteSink(file)); System.out.println("done."); }
@SuppressWarnings("CheckReturnValue") // only using super.createSource to create a file @Override public ByteSource createSource(byte[] bytes) throws IOException { super.createSource(bytes); return Resources.asByteSource(getFile().toURI().toURL()); }