Merge "Omaha #4179 Abstract out getAvailableValues()" into omaha_15.1.1

Former-commit-id: feb3e574f4b00be03a957d7d024411aca2c61dd5
This commit is contained in:
Nate Jensen 2015-03-02 08:52:08 -06:00 committed by Gerrit Code Review
commit 8b9bc0e15a
4 changed files with 20 additions and 56 deletions

View file

@ -42,10 +42,8 @@ import com.raytheon.uf.common.dataplugin.gfe.slice.ScalarGridSlice;
import com.raytheon.uf.common.dataplugin.gfe.slice.WeatherGridSlice;
import com.raytheon.uf.common.dataplugin.level.Level;
import com.raytheon.uf.common.dataplugin.level.MasterLevel;
import com.raytheon.uf.common.dataquery.requests.DbQueryRequest;
import com.raytheon.uf.common.dataquery.requests.RequestConstraint;
import com.raytheon.uf.common.dataquery.requests.RequestConstraint.ConstraintType;
import com.raytheon.uf.common.dataquery.responses.DbQueryResponse;
import com.raytheon.uf.common.geospatial.MapUtil;
import com.raytheon.uf.common.geospatial.util.SubGridGeometryCalculator;
import com.raytheon.uf.common.numeric.buffer.ByteBufferWrapper;
@ -76,6 +74,8 @@ import com.raytheon.uf.common.util.StringUtil;
* Feb 10, 2015 2866 nabowle Overwrite subgrid size estimation.
* Feb 26, 2015 4179 mapeters Overrode getAvailableParameters(), added
* getAvailableValues(), inherits IDataFactory.
* Feb 27, 2015 4179 mapeters Promoted getAvailableValues() to
* AbstractDataPluginFactory.
*
* </pre>
*
@ -285,31 +285,14 @@ public class GFEGridFactory extends AbstractGridDataPluginFactory {
@Override
public String[] getAvailableLocationNames(IDataRequest request) {
return getAvailableValues(request, GFEDataAccessUtil.SITE_ID);
return getAvailableValues(request, GFEDataAccessUtil.SITE_ID,
String.class);
}
@Override
public String[] getAvailableParameters(IDataRequest request) {
return getAvailableValues(request, GFEDataAccessUtil.PARM_NAME);
}
/**
* Get the available values of the desired field.
*
* @param request
* @param requestField
* the field whose values are being retrieved
* @return the available values
*/
private String[] getAvailableValues(IDataRequest request,
String requestField) {
DbQueryRequest dbRequest = buildDbQueryRequest(request);
dbRequest.addRequestField(requestField);
dbRequest.setDistinct(true);
DbQueryResponse dbResponse = executeDbQueryRequest(dbRequest,
request.toString());
return dbResponse.getFieldObjects(requestField, String.class);
return getAvailableValues(request, GFEDataAccessUtil.PARM_NAME,
String.class);
}
private GFERecord asGFERecord(Object obj) {

View file

@ -61,7 +61,6 @@ import com.raytheon.uf.common.dataplugin.grid.dataquery.GridQueryAssembler;
import com.raytheon.uf.common.dataplugin.grid.mapping.DatasetIdMapper;
import com.raytheon.uf.common.dataplugin.level.Level;
import com.raytheon.uf.common.dataplugin.level.mapping.LevelMapper;
import com.raytheon.uf.common.dataquery.requests.DbQueryRequest;
import com.raytheon.uf.common.dataquery.requests.RequestConstraint;
import com.raytheon.uf.common.dataquery.requests.RequestConstraint.ConstraintType;
import com.raytheon.uf.common.dataquery.responses.DbQueryResponse;
@ -98,6 +97,7 @@ import com.vividsolutions.jts.geom.GeometryFactory;
* Oct 21, 2014 3755 nabowle Add getAvailable levels and parameters.
* Feb 13, 2015 4124 mapeters Inherits IDataFactory.
* Feb 23, 2015 4016 bsteffen Add support for geometry requests.
* Feb 27, 2015 4179 mapeters Use AbstractDataPluginFactory.getAvailableValues().
*
* </pre>
*
@ -347,7 +347,8 @@ public class GridDataAccessFactory extends AbstractGridDataPluginFactory {
@Override
public String[] getAvailableLocationNames(IDataRequest request) {
return getAvailableLocationNames(request, GridConstants.DATASET_ID);
return getAvailableValues(request, GridConstants.DATASET_ID,
String.class);
}
/**
@ -355,14 +356,7 @@ public class GridDataAccessFactory extends AbstractGridDataPluginFactory {
*/
@Override
public Level[] getAvailableLevels(IDataRequest request) {
DbQueryRequest dbQueryRequest = buildDbQueryRequest(request);
dbQueryRequest.setDistinct(Boolean.TRUE);
dbQueryRequest.addRequestField(GridConstants.LEVEL);
DbQueryResponse dbQueryResponse = this.executeDbQueryRequest(
dbQueryRequest, request.toString());
return dbQueryResponse
.getFieldObjects(GridConstants.LEVEL, Level.class);
return getAvailableValues(request, GridConstants.LEVEL, Level.class);
}
/**
@ -370,13 +364,7 @@ public class GridDataAccessFactory extends AbstractGridDataPluginFactory {
*/
@Override
public String[] getAvailableParameters(IDataRequest request) {
DbQueryRequest dbQueryRequest = buildDbQueryRequest(request);
dbQueryRequest.setDistinct(Boolean.TRUE);
dbQueryRequest.addRequestField(GridConstants.PARAMETER_ABBREVIATION);
DbQueryResponse dbQueryResponse = this.executeDbQueryRequest(
dbQueryRequest, request.toString());
return dbQueryResponse.getFieldObjects(
return getAvailableValues(request,
GridConstants.PARAMETER_ABBREVIATION, String.class);
}
@ -442,8 +430,8 @@ public class GridDataAccessFactory extends AbstractGridDataPluginFactory {
/**
* Get geometry data for a single point.
*/
private IGeometryData getGeometryData(Point point,
GridGeometryKey key, Set<GridRecord> records) {
private IGeometryData getGeometryData(Point point, GridGeometryKey key,
Set<GridRecord> records) {
DefaultGeometryData data = key.toGeometryData();
DirectPosition2D llPoint = findResponsePoint(key.getGridCoverage(),
point.x, point.y);
@ -495,8 +483,8 @@ public class GridDataAccessFactory extends AbstractGridDataPluginFactory {
* DefaultGeometryDatas must be the same as the order of the data returned
* from the provided request.
*/
private static void populateGeometryData(
Set<GridRecord> records, Request request, DefaultGeometryData[] data) {
private static void populateGeometryData(Set<GridRecord> records,
Request request, DefaultGeometryData[] data) {
for (GridRecord record : records) {
try {
Parameter parameter = record.getParameter();

View file

@ -91,6 +91,7 @@ import com.vividsolutions.jts.geom.Envelope;
* fields are used for the level one and two
* values.
* Feb 13, 2015 4124 mapeters Inherits IDataFactory.
* Feb 27, 2015 4179 mapeters Use AbstractDataPluginFactory.getAvailableValues().
*
* </pre>
*
@ -503,7 +504,7 @@ public class RadarGridFactory extends AbstractGridDataPluginFactory {
@Override
public String[] getAvailableLocationNames(IDataRequest request) {
return getAvailableLocationNames(request, ICAO);
return getAvailableValues(request, ICAO, String.class);
}
/**

View file

@ -37,9 +37,7 @@ 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;
/**
@ -60,6 +58,7 @@ import com.raytheon.uf.common.numeric.source.DataSource;
* 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.
* Feb 27, 2015 4179 mapeters Use AbstractDataPluginFactory.getAvailableValues().
*
* </pre>
*
@ -170,7 +169,7 @@ public class SatelliteGridFactory extends AbstractGridDataPluginFactory {
@Override
public String[] getAvailableLocationNames(IDataRequest request) {
return getAvailableLocationNames(request, FIELD_SECTOR_ID);
return getAvailableValues(request, FIELD_SECTOR_ID, String.class);
}
/**
@ -178,14 +177,7 @@ public class SatelliteGridFactory extends AbstractGridDataPluginFactory {
*/
@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);
return getAvailableValues(request, FIELD_PYHSICAL_ELEMENT, String.class);
}
}