Omaha #4124 Implement getAvailableParameters() for satellite retrieval through DAF

Change-Id: I532640b7305ad0f5e7423a35e37abce22866ebad

Former-commit-id: 51466d91a9327b0bcfdeae9d1eadcd06df622da1
This commit is contained in:
Mark Peters 2015-02-17 17:06:45 -06:00
parent 6442e88fe3
commit e383afe23f
3 changed files with 50 additions and 36 deletions

View file

@ -32,7 +32,6 @@ import javax.measure.unit.Unit;
import org.geotools.coverage.grid.GridGeometry2D;
import com.raytheon.uf.common.comm.CommunicationException;
import com.raytheon.uf.common.dataaccess.IDataFactory;
import com.raytheon.uf.common.dataaccess.IDataRequest;
import com.raytheon.uf.common.dataaccess.exception.DataRetrievalException;
import com.raytheon.uf.common.dataaccess.grid.IGridData;
@ -70,6 +69,7 @@ import com.raytheon.uf.common.util.mapping.Mapper;
* Sep 09, 2014 3356 njensen Remove CommunicationException
* Oct 16, 2014 3598 nabowle Accept level identifiers.
* Oct 21, 2014 3755 nabowle Add getAvailable levels and parameters.
* Feb 13, 2015 4124 mapeters Inherits IDataFactory.
*
*
* </pre>
@ -78,8 +78,7 @@ import com.raytheon.uf.common.util.mapping.Mapper;
* @version 1.0
*/
public class GridDataAccessFactory extends AbstractGridDataPluginFactory
implements IDataFactory {
public class GridDataAccessFactory extends AbstractGridDataPluginFactory {
private static final String NAMESPACE = "namespace";

View file

@ -33,7 +33,6 @@ import org.geotools.coverage.grid.GridGeometry2D;
import org.geotools.geometry.jts.ReferencedEnvelope;
import org.opengis.referencing.FactoryException;
import com.raytheon.uf.common.dataaccess.IDataFactory;
import com.raytheon.uf.common.dataaccess.IDataRequest;
import com.raytheon.uf.common.dataaccess.exception.DataRetrievalException;
import com.raytheon.uf.common.dataaccess.exception.EnvelopeProjectionException;
@ -91,14 +90,14 @@ import com.vividsolutions.jts.geom.Envelope;
* optional identifiers to indicate what
* fields are used for the level one and two
* values.
* Feb 13, 2015 4124 mapeters Inherits IDataFactory.
*
* </pre>
*
* @author bsteffen
* @version 1.0
*/
public class RadarGridFactory extends AbstractGridDataPluginFactory implements
IDataFactory {
public class RadarGridFactory extends AbstractGridDataPluginFactory {
private static final String PRODUCT_CODE = "productCode";

View file

@ -30,7 +30,6 @@ import javax.measure.unit.UnitFormat;
import org.geotools.coverage.grid.GridGeometry2D;
import com.raytheon.uf.common.dataaccess.IDataFactory;
import com.raytheon.uf.common.dataaccess.IDataRequest;
import com.raytheon.uf.common.dataaccess.exception.DataRetrievalException;
import com.raytheon.uf.common.dataaccess.impl.AbstractGridDataPluginFactory;
@ -38,7 +37,9 @@ import com.raytheon.uf.common.dataaccess.impl.DefaultGridData;
import com.raytheon.uf.common.dataplugin.PluginDataObject;
import com.raytheon.uf.common.dataplugin.satellite.SatelliteRecord;
import com.raytheon.uf.common.dataplugin.satellite.units.SatelliteUnits;
import com.raytheon.uf.common.dataquery.requests.DbQueryRequest;
import com.raytheon.uf.common.dataquery.requests.RequestConstraint;
import com.raytheon.uf.common.dataquery.responses.DbQueryResponse;
import com.raytheon.uf.common.numeric.source.DataSource;
/**
@ -58,14 +59,14 @@ import com.raytheon.uf.common.numeric.source.DataSource;
* Feb 04, 2014 2672 bsteffen Enable requesting subgrids.
* Jul 30, 2014 3184 njensen Renamed valid identifiers to optional
* Sep 29, 2014 3596 nabowle Always put creatingEntity in attributes.
* Feb 13, 2015 4124 mapeters Overrode getAvailableParameters(), inherits IDataFactory.
*
* </pre>
*
* @author bkowal
* @version 1.0
*/
public class SatelliteGridFactory extends AbstractGridDataPluginFactory
implements IDataFactory {
public class SatelliteGridFactory extends AbstractGridDataPluginFactory {
private static final String FIELD_CREATING_ENTITY = "creatingEntity";
@ -172,4 +173,19 @@ public class SatelliteGridFactory extends AbstractGridDataPluginFactory
return getAvailableLocationNames(request, FIELD_SECTOR_ID);
}
/**
* Get the available parameters.
*/
@Override
public String[] getAvailableParameters(IDataRequest request) {
DbQueryRequest dbQueryRequest = buildDbQueryRequest(request);
dbQueryRequest.setDistinct(Boolean.TRUE);
dbQueryRequest.addRequestField(FIELD_PYHSICAL_ELEMENT);
DbQueryResponse dbQueryResponse = this.executeDbQueryRequest(
dbQueryRequest, request.toString());
return dbQueryResponse.getFieldObjects(FIELD_PYHSICAL_ELEMENT,
String.class);
}
}