Issue #15 Re-wrote SimDate integration for menus, alert observers after

merge headache.

Former-commit-id: 5b7ecea866 [formerly 647b7ac154dbdaf945231b231f491bbca86d2a24]
Former-commit-id: 1b7473572f
This commit is contained in:
Dave Hladky 2012-04-30 13:43:34 -05:00
parent 0ff2041959
commit 42a12fa7a5
19 changed files with 462 additions and 346 deletions

View file

@ -42,6 +42,7 @@ import com.raytheon.uf.common.pointdata.PointDataDescription.Type;
import com.raytheon.uf.common.pointdata.PointDataView;
import com.raytheon.uf.common.time.BinOffset;
import com.raytheon.uf.common.time.DataTime;
import com.raytheon.uf.common.time.SimulatedTime;
import com.raytheon.uf.viz.core.catalog.DirectDbQuery;
import com.raytheon.uf.viz.core.catalog.LayerProperty;
import com.raytheon.uf.viz.core.datastructure.IDataCubeAdapter;
@ -127,6 +128,7 @@ public class CoopPrecipDataCubeAdapter implements IDataCubeAdapter {
List<List<DataTime>> results = new ArrayList<List<DataTime>>(
requests.size());
for (TimeQueryRequest request : requests) {
request.setSimDate(SimulatedTime.getSystemTime().getTime());
DataTime[] result = timeQuery(request.getQueryTerms(),
request.isMaxQuery(), request.getBinOffset());
if (result != null) {

View file

@ -31,6 +31,7 @@ import com.raytheon.uf.common.datastorage.Request;
import com.raytheon.uf.common.datastorage.records.IDataRecord;
import com.raytheon.uf.common.pointdata.PointDataContainer;
import com.raytheon.uf.common.time.DataTime;
import com.raytheon.uf.common.time.SimulatedTime;
import com.raytheon.uf.viz.core.catalog.LayerProperty;
import com.raytheon.uf.viz.core.catalog.ScriptCreator;
import com.raytheon.uf.viz.core.comm.Loader;
@ -87,6 +88,11 @@ public class DefaultDataCubeAdapter implements IDataCubeAdapter {
throws VizException {
TimeQueryRequestSet set = new TimeQueryRequestSet();
set.setRequests(requests.toArray(new TimeQueryRequest[0]));
// boundary for time queries
for (TimeQueryRequest req: set.getRequests()) {
req.setSimDate(SimulatedTime.getSystemTime().getTime());
}
@SuppressWarnings("unchecked")
List<List<DataTime>> result = (List<List<DataTime>>) ThriftClient
.sendRequest(set);

View file

@ -43,6 +43,7 @@ import com.raytheon.uf.common.datastorage.Request;
import com.raytheon.uf.common.datastorage.records.IDataRecord;
import com.raytheon.uf.common.pointdata.PointDataContainer;
import com.raytheon.uf.common.time.DataTime;
import com.raytheon.uf.common.time.SimulatedTime;
import com.raytheon.uf.viz.core.catalog.LayerProperty;
import com.raytheon.uf.viz.core.datastructure.IDataCubeAdapter;
import com.raytheon.uf.viz.core.datastructure.VizDataCubeException;
@ -108,6 +109,7 @@ public abstract class AbstractDataCubeAdapter implements IDataCubeAdapter {
for (TimeQueryRequest request : requests) {
List<AbstractRequestableLevelNode> requestNodes = evaluateRequestConstraints(request
.getQueryTerms());
request.setSimDate(SimulatedTime.getSystemTime().getTime());
// pull out time queries and bulk submit
for (AbstractRequestableLevelNode requestNode : requestNodes) {
getTimeQuery(request, requestNode, false, queries, cache, null);

View file

@ -24,6 +24,8 @@ import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import com.raytheon.uf.common.time.DataTime;
import com.raytheon.uf.common.time.SimulatedTime;
import com.raytheon.uf.viz.core.VizApp;
import com.raytheon.uf.viz.core.alerts.AlertMessage;
import com.raytheon.uf.viz.core.catalog.DirectDbQuery;
@ -70,11 +72,15 @@ public abstract class Monitor implements IMonitor, IMonitorThresholdListener,
public void alertArrived(Collection<AlertMessage> alertMessages) {
// knock down messages we don't want
for (AlertMessage msg : alertMessages) {
DataTime dataTime = (DataTime) msg.decodedAlert.get("dataTime");
if (dataTime.getRefTime().before(
SimulatedTime.getSystemTime().getTime())) {
if (filterProductMessage(msg)) {
processProductMessage(msg);
}
}
}
}
@Override
public void notificationArrived(NotificationMessage[] notifyMessages) {

View file

@ -33,6 +33,8 @@ import com.raytheon.uf.common.dataplugin.PluginDataObject;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.common.time.DataTime;
import com.raytheon.uf.common.time.SimulatedTime;
import com.raytheon.uf.viz.core.IDisplayPane;
import com.raytheon.uf.viz.core.IDisplayPaneContainer;
import com.raytheon.uf.viz.core.RecordFactory;
@ -113,6 +115,9 @@ public class AutoUpdater implements IAlertObserver {
for (AlertMessage message : alertMessages) {
Map<String, Object> attribs = message.decodedAlert;
DataTime dataTime = (DataTime) attribs.get("dataTime");
if (dataTime.getRefTime().before(
SimulatedTime.getSystemTime().getTime())) {
try {
// System.out.println("extract took: " + (tZ1 - tZ0));
java.util.List<AbstractVizResource<?, ?>> rscList = DataUpdateTree
@ -134,8 +139,8 @@ public class AutoUpdater implements IAlertObserver {
if ((parserToUse = reqResourceData.getAlertParser()) == null) {
parserToUse = defaultParser;
}
Object objectToSend = parserToUse.parseAlertMessage(
message, reqResourceData);
Object objectToSend = parserToUse
.parseAlertMessage(message, reqResourceData);
if (objectToSend != null) {
if (md.getTimeMatcher() != null) {
@ -143,7 +148,8 @@ public class AutoUpdater implements IAlertObserver {
}
displayList.add(md);
List<Object> list = pdoSendMap.get(reqResourceData);
List<Object> list = pdoSendMap
.get(reqResourceData);
if (list == null) {
list = new ArrayList<Object>();
pdoSendMap.put(reqResourceData, list);
@ -152,10 +158,12 @@ public class AutoUpdater implements IAlertObserver {
if (list.size() > 100) {
// update with objects
Class<?> componentType = list.get(0).getClass();
Class<?> componentType = list.get(0)
.getClass();
reqResourceData.update(list
.toArray((Object[]) Array.newInstance(
componentType, list.size())));
.toArray((Object[]) Array
.newInstance(componentType,
list.size())));
list.clear();
}
}
@ -171,7 +179,6 @@ public class AutoUpdater implements IAlertObserver {
}
errors++;
}
}
for (AbstractRequestableResourceData arrd : pdoSendMap.keySet()) {
@ -188,8 +195,8 @@ public class AutoUpdater implements IAlertObserver {
// Now do redo time matching, and refresh displays
for (IDescriptor disp : displayList) {
if (disp != null && disp.getRenderableDisplay() != null) {
IDisplayPaneContainer container = disp.getRenderableDisplay()
.getContainer();
IDisplayPaneContainer container = disp
.getRenderableDisplay().getContainer();
for (IDisplayPane pane : container.getDisplayPanes()) {
IDescriptor desc = pane.getDescriptor();
@ -202,3 +209,4 @@ public class AutoUpdater implements IAlertObserver {
}
}
}
}

View file

@ -26,6 +26,7 @@ import java.util.Map;
import com.raytheon.edex.util.Util;
import com.raytheon.uf.common.time.DataTime;
import com.raytheon.uf.common.time.SimulatedTime;
import com.raytheon.uf.viz.core.alerts.AlertMessage;
import com.raytheon.uf.viz.core.rsc.URICatalog;
import com.raytheon.uf.viz.core.rsc.URICatalog.IURIRefreshCallback;
@ -66,6 +67,9 @@ public class MenuUpdater implements IAlertObserver {
message.decodedAlert);
DataTime dataTimeStr = (DataTime) attribs.get("dataTime");
if (dataTimeStr.getRefTime().before(
SimulatedTime.getSystemTime().getTime())) {
if (dataTimeStr != null) {
// Update the date catalog
List<List<IURIRefreshCallback>> dataTimeList = URICatalog
@ -86,5 +90,6 @@ public class MenuUpdater implements IAlertObserver {
}
}
}
}
}

View file

@ -22,6 +22,8 @@ package com.raytheon.viz.aviation.monitor;
import java.util.ArrayList;
import java.util.Collection;
import com.raytheon.uf.common.time.DataTime;
import com.raytheon.uf.common.time.SimulatedTime;
import com.raytheon.uf.viz.core.alerts.AlertMessage;
import com.raytheon.viz.alerts.IAlertObserver;
import com.raytheon.viz.aviation.guidance.EtaViewer;
@ -65,6 +67,10 @@ public class EtaBufMonitorObserver extends MonitorObserver implements
ArrayList<String> siteIDs = new ArrayList<String>();
for (AlertMessage alert : alertMessages) {
DataTime dataTime = (DataTime) alert.decodedAlert.get("dataTime");
if (dataTime.getRefTime().before(
SimulatedTime.getSystemTime().getTime())) {
String siteID = (String) alert.decodedAlert
.get("location.stationId");
if (!siteIDs.contains(siteID)) {
@ -76,6 +82,7 @@ public class EtaBufMonitorObserver extends MonitorObserver implements
}
}
}
}
if (siteIDs.size() > 0) {
for (ViewerTab tab : dialog.getViewerTabList()) {

View file

@ -22,6 +22,8 @@ package com.raytheon.viz.aviation.monitor;
import java.util.ArrayList;
import java.util.Collection;
import com.raytheon.uf.common.time.DataTime;
import com.raytheon.uf.common.time.SimulatedTime;
import com.raytheon.uf.viz.core.alerts.AlertMessage;
import com.raytheon.viz.alerts.IAlertObserver;
import com.raytheon.viz.aviation.guidance.MosViewer;
@ -65,6 +67,9 @@ public class EtaMonitorObserver extends MonitorObserver implements
ArrayList<String> siteIDs = new ArrayList<String>();
for (AlertMessage alert : alertMessages) {
DataTime dataTime = (DataTime) alert.decodedAlert.get("dataTime");
if (dataTime.getRefTime().before(
SimulatedTime.getSystemTime().getTime())) {
String siteID = (String) alert.decodedAlert
.get("location.stationId");
if (!siteIDs.contains(siteID)) {
@ -76,6 +81,7 @@ public class EtaMonitorObserver extends MonitorObserver implements
}
}
}
}
if (siteIDs.size() > 0) {
for (ViewerTab tab : dialog.getViewerTabList()) {

View file

@ -22,6 +22,8 @@ package com.raytheon.viz.aviation.monitor;
import java.util.ArrayList;
import java.util.Collection;
import com.raytheon.uf.common.time.DataTime;
import com.raytheon.uf.common.time.SimulatedTime;
import com.raytheon.uf.viz.core.alerts.AlertMessage;
import com.raytheon.viz.alerts.IAlertObserver;
import com.raytheon.viz.aviation.guidance.MosViewer;
@ -66,6 +68,9 @@ public class GfsLampMonitorObserver extends MonitorObserver implements
ArrayList<String> siteIDs = new ArrayList<String>();
for (AlertMessage alert : alertMessages) {
DataTime dataTime = (DataTime) alert.decodedAlert.get("dataTime");
if (dataTime.getRefTime().before(
SimulatedTime.getSystemTime().getTime())) {
String siteID = (String) alert.decodedAlert
.get("location.stationId");
if (!siteIDs.contains(siteID)) {
@ -77,6 +82,7 @@ public class GfsLampMonitorObserver extends MonitorObserver implements
}
}
}
}
if (siteIDs.size() > 0) {
for (ViewerTab tab : dialog.getViewerTabList()) {

View file

@ -22,6 +22,8 @@ package com.raytheon.viz.aviation.monitor;
import java.util.ArrayList;
import java.util.Collection;
import com.raytheon.uf.common.time.DataTime;
import com.raytheon.uf.common.time.SimulatedTime;
import com.raytheon.uf.viz.core.alerts.AlertMessage;
import com.raytheon.viz.alerts.IAlertObserver;
import com.raytheon.viz.aviation.guidance.MosViewer;
@ -65,6 +67,9 @@ public class GfsMonitorObserver extends MonitorObserver implements
ArrayList<String> siteIDs = new ArrayList<String>();
for (AlertMessage alert : alertMessages) {
DataTime dataTime = (DataTime) alert.decodedAlert.get("dataTime");
if (dataTime.getRefTime().before(
SimulatedTime.getSystemTime().getTime())) {
String siteID = (String) alert.decodedAlert
.get("location.stationId");
if (!siteIDs.contains(siteID)) {
@ -76,6 +81,7 @@ public class GfsMonitorObserver extends MonitorObserver implements
}
}
}
}
if (siteIDs.size() > 0) {
for (ViewerTab tab : dialog.getViewerTabList()) {

View file

@ -24,6 +24,8 @@ import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import com.raytheon.uf.common.dataplugin.grib.GribRecord;
import com.raytheon.uf.common.time.DataTime;
import com.raytheon.uf.common.time.SimulatedTime;
import com.raytheon.uf.viz.core.alerts.AlertMessage;
import com.raytheon.viz.alerts.IAlertObserver;
import com.raytheon.viz.alerts.observers.ProductAlertObserver;
@ -85,7 +87,11 @@ public class GribRequestableDataFactory implements IAlertObserver {
@Override
public void alertArrived(Collection<AlertMessage> alertMessages) {
for (AlertMessage mess : alertMessages) {
DataTime dataTime = (DataTime) mess.decodedAlert.get("dataTime");
if (dataTime.getRefTime().before(
SimulatedTime.getSystemTime().getTime())) {
requestableDataMap.remove(mess.dataURI);
}
}
}
}

View file

@ -39,6 +39,7 @@ import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.common.time.DataTime;
import com.raytheon.uf.common.time.SimulatedTime;
import com.raytheon.uf.viz.core.alerts.AlertMessage;
import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.uf.viz.derivparam.library.DerivParamMethod;
@ -209,8 +210,13 @@ public class GridUpdater implements IAlertObserver {
public synchronized void alertArrived(Collection<AlertMessage> alertMessages) {
Set<String> datauris = new HashSet<String>();
for (AlertMessage alert : alertMessages) {
DataTime dataTime = (DataTime) alert.decodedAlert.get("dataTime");
if (dataTime.getRefTime().before(
SimulatedTime.getSystemTime().getTime())) {
if (myUpdates.remove(alert.dataURI)) {
// This updater triggered this alert, if it processes it now we
// This updater triggered this alert, if it processes it now
// we
// could do this forever
continue;
}
@ -224,8 +230,8 @@ public class GridUpdater implements IAlertObserver {
lNode = inventory.getNode(updateKey.modelName,
updateKey.parameter, level);
} catch (CommunicationException e) {
statusHandler.handle(Priority.PROBLEM, e.getLocalizedMessage(),
e);
statusHandler.handle(Priority.PROBLEM,
e.getLocalizedMessage(), e);
}
if (lNode == null) {
@ -234,14 +240,16 @@ public class GridUpdater implements IAlertObserver {
// System.out.println("LevelId=" + level.getId());
} else if (!(lNode instanceof GribRequestableLevelNode)) {
if (lNode instanceof OrLevelNode) {
DerivParamMethod method = ((OrLevelNode) lNode).getMethod();
DerivParamMethod method = ((OrLevelNode) lNode)
.getMethod();
// Null means it is an alias model and supplement means
// there exists a true GribNode buried under the or
// node
if (method == null
|| !method.getName().equals("Supplement")) {
inventory.reinitTree();
// System.out.println(((AbstractDerivedLevelNode) lNode)
// System.out.println(((AbstractDerivedLevelNode)
// lNode)
// .getModelName());
}
} else {
@ -292,7 +300,9 @@ public class GridUpdater implements IAlertObserver {
"Unable to generate updates for derived product",
e);
}
}
} else {
System.out.println("Grid after SIMULATED TIME: "+dataTime);
}
}
myUpdates.addAll(datauris);

View file

@ -20,6 +20,7 @@ import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.common.time.DataTime;
import com.raytheon.uf.common.time.SimulatedTime;
import com.raytheon.uf.viz.core.alerts.AlertMessage;
import com.raytheon.viz.alerts.IAlertObserver;
import com.raytheon.viz.alerts.observers.ProductAlertObserver;
@ -129,8 +130,12 @@ public class RadarUpdater implements IAlertObserver {
}
Set<String> datauris = new HashSet<String>();
for (AlertMessage alertMessage : alertMessages) {
String icao = alertMessage.decodedAlert
.get(RadarAdapter.ICAO_QUERY).toString();
DataTime dataTime = (DataTime) alertMessage.decodedAlert
.get("dataTime");
if (dataTime.getRefTime().before(
SimulatedTime.getSystemTime().getTime())) {
String icao = alertMessage.decodedAlert.get(
RadarAdapter.ICAO_QUERY).toString();
if (icao == null
|| !icao.equalsIgnoreCase(configuredRadar.getRdaId())) {
continue;
@ -160,8 +165,9 @@ public class RadarUpdater implements IAlertObserver {
cache.remove(new CacheKey(productCode, elevationAngle));
Level level = null;
try {
level = LevelFactory.getInstance().getLevel(
RadarAdapter.CUBE_MASTER_LEVEL_NAME, elevationAngle);
level = LevelFactory.getInstance()
.getLevel(RadarAdapter.CUBE_MASTER_LEVEL_NAME,
elevationAngle);
} catch (CommunicationException e1) {
statusHandler.handle(Priority.PROBLEM,
e1.getLocalizedMessage(), e1);
@ -179,8 +185,11 @@ public class RadarUpdater implements IAlertObserver {
fakeRec.constructDataURI();
datauris.add(fakeRec.getDataURI());
} catch (PluginException e) {
statusHandler.handle(Priority.PROBLEM,
"Unable to generate updates for derived product", e);
statusHandler
.handle(Priority.PROBLEM,
"Unable to generate updates for derived product",
e);
}
}
}
ProductAlertObserver.processDerivedAlerts(datauris);

View file

@ -41,6 +41,7 @@ import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.common.time.DataTime;
import com.raytheon.uf.common.time.SimulatedTime;
import com.raytheon.uf.viz.core.RecordFactory;
import com.raytheon.uf.viz.core.catalog.LayerProperty;
import com.raytheon.uf.viz.core.catalog.ScriptCreator;
@ -369,6 +370,10 @@ public class PointDataCubeAdapter implements IDataCubeAdapter {
throws VizException {
TimeQueryRequestSet set = new TimeQueryRequestSet();
set.setRequests(requests.toArray(new TimeQueryRequest[0]));
// boundary for time queries
for (TimeQueryRequest req: set.getRequests()) {
req.setSimDate(SimulatedTime.getSystemTime().getTime());
}
@SuppressWarnings("unchecked")
List<List<DataTime>> result = (List<List<DataTime>>) ThriftClient
.sendRequest(set);

View file

@ -31,6 +31,8 @@ import com.raytheon.uf.common.pointdata.GetPointDataTreeRequest;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.common.time.DataTime;
import com.raytheon.uf.common.time.SimulatedTime;
import com.raytheon.uf.viz.core.alerts.AlertMessage;
import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.uf.viz.core.requests.ThriftClient;
@ -103,6 +105,9 @@ public class PointDataInventory extends AbstractPointDataInventory implements
@Override
public void alertArrived(Collection<AlertMessage> alertMessages) {
for (AlertMessage message : alertMessages) {
DataTime dataTime = (DataTime) message.decodedAlert.get("dataTime");
if (dataTime.getRefTime().before(
SimulatedTime.getSystemTime().getTime())) {
String pluginName = message.decodedAlert.get(PLUGIN_NAME)
.toString();
String source = pluginName;
@ -111,7 +116,8 @@ public class PointDataInventory extends AbstractPointDataInventory implements
source += message.decodedAlert.get(typeKey).toString();
}
if (getAllSources() != null && !getAllSources().contains(source)) {
if (getAllSources() != null
&& !getAllSources().contains(source)) {
try {
initTree(derParLibrary);
} catch (VizException e) {
@ -121,5 +127,6 @@ public class PointDataInventory extends AbstractPointDataInventory implements
}
}
}
}
}

View file

@ -40,6 +40,7 @@ import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.common.time.BinOffset;
import com.raytheon.uf.common.time.DataTime;
import com.raytheon.uf.common.time.SimulatedTime;
import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.uf.viz.core.requests.ThriftClient;
import com.raytheon.uf.viz.derivparam.library.DerivedParameterGenerator;
@ -132,10 +133,12 @@ public class RadarDataCubeAdapter extends PointDataCubeAdapter {
time = (DataTime) map.get(dataTimefield);
time.setLevelValue((Double) map.get(LEVEL_FIELD));
}
// Best res requests need this because they span a time period
if (time.getRefTime().before(SimulatedTime.getSystemTime().getTime())) {
results.add(time);
++i;
}
}
if (binOffset != null) {
Set<DataTime> scaledDates = new TreeSet<DataTime>();
@ -170,6 +173,7 @@ public class RadarDataCubeAdapter extends PointDataCubeAdapter {
List<DbQueryRequest> dbRequests = new ArrayList<DbQueryRequest>(
requests.size());
for (TimeQueryRequest request : requests) {
request.setSimDate(SimulatedTime.getSystemTime().getTime());
dbRequests.add(getTimeQueryRequest(request.getQueryTerms(),
request.isMaxQuery()));
}
@ -184,6 +188,9 @@ public class RadarDataCubeAdapter extends PointDataCubeAdapter {
TimeQueryRequest request = requests.get(i);
Collection<DataTime> times = processTimeQueryResponse(response,
request.isMaxQuery(), request.getBinOffset());
result.add(new ArrayList<DataTime>(times));
}
return result;

View file

@ -465,6 +465,7 @@ public class SatelliteDataCubeAdapter implements IDataCubeAdapter {
List<TimeQueryRequest> baseRequests = new ArrayList<TimeQueryRequest>(
requests.size());
for (TimeQueryRequest request : requests) {
request.setSimDate(SimulatedTime.getSystemTime().getTime());
if (!request.getQueryTerms().containsKey("DERIVED")) {
baseRequests.add(request);
} else {

View file

@ -113,6 +113,17 @@ public class TimeQueryHandler implements IRequestHandler<TimeQueryRequest> {
times = runQuery(dao, query);
}
// second check for some complex plugin requests that get by the simDate check in the query
ArrayList<DataTime> removes = new ArrayList<DataTime>();
for (DataTime time: times) {
if (time.getRefTime().after(request.getSimDate())) {
removes.add(time);
}
}
if (removes.size() > 0) {
times.removeAll(removes);
}
return times;
}

View file

@ -31,6 +31,8 @@ import com.raytheon.uf.common.dataplugin.PluginDataObject;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.common.time.DataTime;
import com.raytheon.uf.common.time.SimulatedTime;
import com.raytheon.uf.viz.core.RecordFactory;
import com.raytheon.uf.viz.core.alerts.AbstractAlertMessageParser;
import com.raytheon.uf.viz.core.alerts.AlertMessage;
@ -79,6 +81,9 @@ public class NcAutoUpdater implements IAlertObserver {
Object objectToSend = null;
Map<String, Object> attribs = new HashMap<String, Object>(
message.decodedAlert);
DataTime dataTime = (DataTime) attribs.get("dataTime");
if (dataTime.getRefTime().before(
SimulatedTime.getSystemTime().getTime())) {
String dataURI = message.dataURI;
if (reqResourceData.isUpdatingOnMetadataOnly()) {
PluginDataObject record = RecordFactory.getInstance()
@ -89,6 +94,7 @@ public class NcAutoUpdater implements IAlertObserver {
attribs.put("dataURI", message.dataURI);
objectToSend = Loader.loadData(attribs);
}
}
return objectToSend;
}
};