Merge "Issue #2667 reworked abstract data factory timerange query" into development

Former-commit-id: 165da5923fbf9aab4cf0816ea65b88c0a70d7724
This commit is contained in:
Richard Peter 2014-01-23 09:14:07 -06:00 committed by Gerrit Code Review
commit 43b4344e46

View file

@ -56,6 +56,7 @@ import com.raytheon.uf.common.time.TimeRange;
* Nov 26, 2013 2537 bsteffen Fix NPEs for dataTimes and timeRange requests.
* Jan 14, 2014 2667 mnash Change getGridData and getGeometryData methods
* to throw exception by default
* Jan 21, 2014 2667 bclement changed timeRange buildDbQueryRequest method to query against valid times
*
* </pre>
*
@ -67,6 +68,12 @@ public abstract class AbstractDataPluginFactory extends AbstractDataFactory {
protected static final String FIELD_DATATIME = "dataTime";
protected static final String FIELD_VALID_START = FIELD_DATATIME
+ ".validPeriod.start";
protected static final String FIELD_VALID_END = FIELD_DATATIME
+ ".validPeriod.end";
protected static final String DBQUERY_PLUGIN_NAME_KEY = "pluginName";
public DataTime[] getAvailableTimes(IDataRequest request)
@ -241,13 +248,13 @@ public abstract class AbstractDataPluginFactory extends AbstractDataFactory {
DbQueryRequest dbQueryRequest = this.buildDbQueryRequest(request);
/* Add the TimeRange Constraint */
if (timeRange != null) {
RequestConstraint requestConstraint = new RequestConstraint();
requestConstraint.setConstraintType(ConstraintType.BETWEEN);
String[] dateTimeStrings = new String[] {
timeRange.getStart().toString(),
timeRange.getEnd().toString() };
requestConstraint.setBetweenValueList(dateTimeStrings);
dbQueryRequest.addConstraint(FIELD_DATATIME, requestConstraint);
RequestConstraint afterReqStart = new RequestConstraint(timeRange
.getStart().toString(), ConstraintType.GREATER_THAN_EQUALS);
RequestConstraint beforeReqEnd = new RequestConstraint(timeRange
.getEnd().toString(), ConstraintType.LESS_THAN_EQUALS);
dbQueryRequest.addConstraint(FIELD_VALID_START, afterReqStart);
dbQueryRequest.addConstraint(FIELD_VALID_END, beforeReqEnd);
}
return dbQueryRequest;
}