/* * (c) 1998-2016 University Corporation for Atmospheric Research/Unidata */ package thredds.server.ncss.view.gridaspoint; import thredds.server.ncss.format.SupportedFormat; import ucar.nc2.NetcdfFileWriter; import ucar.nc2.util.DiskCache2; import java.io.OutputStream; /** * Controls which writer is used for Grid As Point requests. * * @author caron * @since 10/5/13 */ public class PointDataWriterFactory { static public PointDataWriter factory(SupportedFormat wantFormat, OutputStream outputStream, DiskCache2 diskCache) { if (wantFormat == SupportedFormat.XML_FILE || wantFormat == SupportedFormat.XML_STREAM) { return XMLPointDataWriter.factory(outputStream); } if (wantFormat == SupportedFormat.NETCDF3) { return NetCDFPointDataWriter.factory(NetcdfFileWriter.Version.netcdf3, outputStream, diskCache); } if (wantFormat == SupportedFormat.NETCDF4) { return NetCDFPointDataWriter.factory(NetcdfFileWriter.Version.netcdf4, outputStream, diskCache); } if (wantFormat == SupportedFormat.CSV_FILE || wantFormat == SupportedFormat.CSV_STREAM) { return CSVPointDataWriter.factory(outputStream); } if (wantFormat == SupportedFormat.GEOCSV_FILE || wantFormat == SupportedFormat.GEOCSV_STREAM) { return GeoCsvWriter.factory(outputStream); } throw new IllegalStateException("PointDataWriter does not support " + wantFormat); } }