From 06b3b8368ddd5a2504e65d17db1caf7b2bd2064f Mon Sep 17 00:00:00 2001 From: Nate Jensen Date: Mon, 30 Jul 2012 15:25:07 -0500 Subject: [PATCH] Issue #882 improved use of SimulatedTime Change-Id: I624427fe42f0d74bc62900216596e724857830fc Former-commit-id: baff86f951554d401f455cbc7777ff59334ad2cc [formerly 6f90bfa61c629dc81576a7d082773b3e01ea9343] [formerly a65e9608fd9e6c09a430c6b6dc23955fe60dc95e] [formerly baff86f951554d401f455cbc7777ff59334ad2cc [formerly 6f90bfa61c629dc81576a7d082773b3e01ea9343] [formerly a65e9608fd9e6c09a430c6b6dc23955fe60dc95e] [formerly 4a2841b2872080f607b214e81ecbc4ea2591824f [formerly a65e9608fd9e6c09a430c6b6dc23955fe60dc95e [formerly 0deb4ff6eb3dc1aa794916b84a6530b5d77a8b25]]]] Former-commit-id: 4a2841b2872080f607b214e81ecbc4ea2591824f Former-commit-id: 6d8ac0455e86ebe0b96d388b320b6ff944537df9 [formerly 7d478ac74c236931558c252cc519fe257fa301e9] [formerly 3ab4b622030a864dcf04c61605009347c3550e9a [formerly 8fa0eb70db2b6ac99aa608d64bad50798760b366]] Former-commit-id: bc2d3c00a3e2d4d029b3e992acb5ae8618d96464 [formerly 04a7e5a8c0f3cec9168cea8af58354835b5d1d01] Former-commit-id: e1321b8bc91d4dc961504cb9039ce2b69eab8c50 --- .../com/raytheon/uf/viz/monitor/Monitor.java | 22 +- .../raytheon/viz/alerts/jobs/AutoUpdater.java | 99 ++++----- .../raytheon/viz/alerts/jobs/MenuUpdater.java | 37 ++-- .../monitor/EtaBufMonitorObserver.java | 31 ++- .../aviation/monitor/EtaMonitorObserver.java | 30 ++- .../monitor/GfsLampMonitorObserver.java | 30 ++- .../aviation/monitor/GfsMonitorObserver.java | 30 ++- .../grid/data/GribRequestableDataFactory.java | 12 +- .../raytheon/viz/grid/inv/GridUpdater.java | 193 +++++++++--------- .../raytheon/viz/grid/inv/RadarUpdater.java | 117 +++++------ .../pointdata/util/PointDataInventory.java | 45 ++-- .../dataquery/requests/TimeQueryRequest.java | 4 +- .../database/handlers/TimeQueryHandler.java | 24 +-- .../viz/ui/perspectives/NcAutoUpdater.java | 6 - 14 files changed, 296 insertions(+), 384 deletions(-) diff --git a/cave/com.raytheon.uf.viz.monitor/src/com/raytheon/uf/viz/monitor/Monitor.java b/cave/com.raytheon.uf.viz.monitor/src/com/raytheon/uf/viz/monitor/Monitor.java index 4c25a669ec..55a40fe607 100644 --- a/cave/com.raytheon.uf.viz.monitor/src/com/raytheon/uf/viz/monitor/Monitor.java +++ b/cave/com.raytheon.uf.viz.monitor/src/com/raytheon/uf/viz/monitor/Monitor.java @@ -24,8 +24,6 @@ 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; @@ -69,18 +67,14 @@ public abstract class Monitor implements IMonitor, IMonitorThresholdListener, private ArrayList monitorListeners = new ArrayList(); @Override - public void alertArrived(Collection 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); - } - } - } - } + public void alertArrived(Collection alertMessages) { + // knock down messages we don't want + for (AlertMessage msg : alertMessages) { + if (filterProductMessage(msg)) { + processProductMessage(msg); + } + } + } @Override public void notificationArrived(NotificationMessage[] notifyMessages) { diff --git a/cave/com.raytheon.viz.alerts/src/com/raytheon/viz/alerts/jobs/AutoUpdater.java b/cave/com.raytheon.viz.alerts/src/com/raytheon/viz/alerts/jobs/AutoUpdater.java index 99a3d35e0d..4179aa7cf4 100644 --- a/cave/com.raytheon.viz.alerts/src/com/raytheon/viz/alerts/jobs/AutoUpdater.java +++ b/cave/com.raytheon.viz.alerts/src/com/raytheon/viz/alerts/jobs/AutoUpdater.java @@ -33,8 +33,6 @@ 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; @@ -115,70 +113,63 @@ public class AutoUpdater implements IAlertObserver { for (AlertMessage message : alertMessages) { Map 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> rscList = DataUpdateTree - .getInstance().searchTree(attribs); - // System.out.println("AutoUpdater found: " + rscList); + try { + // System.out.println("extract took: " + (tZ1 - tZ0)); + java.util.List> rscList = DataUpdateTree + .getInstance().searchTree(attribs); + // System.out.println("AutoUpdater found: " + rscList); - if (rscList != null && rscList.size() > 0) { + if (rscList != null && rscList.size() > 0) { - for (AbstractVizResource r1 : rscList) { - IDescriptor md = r1.getDescriptor(); - AbstractResourceData resourceData = r1 - .getResourceData(); - if (!(resourceData instanceof AbstractRequestableResourceData) - || resourceData.isFrozen()) - continue; + for (AbstractVizResource r1 : rscList) { + IDescriptor md = r1.getDescriptor(); + AbstractResourceData resourceData = r1 + .getResourceData(); + if (!(resourceData instanceof AbstractRequestableResourceData) + || resourceData.isFrozen()) + continue; - AbstractRequestableResourceData reqResourceData = (AbstractRequestableResourceData) resourceData; - AbstractAlertMessageParser parserToUse = null; - if ((parserToUse = reqResourceData.getAlertParser()) == null) { - parserToUse = defaultParser; + AbstractRequestableResourceData reqResourceData = (AbstractRequestableResourceData) resourceData; + AbstractAlertMessageParser parserToUse = null; + if ((parserToUse = reqResourceData.getAlertParser()) == null) { + parserToUse = defaultParser; + } + Object objectToSend = parserToUse.parseAlertMessage( + message, reqResourceData); + + if (objectToSend != null) { + if (md.getTimeMatcher() != null) { + md.getTimeMatcher().redoTimeMatching(r1); } - Object objectToSend = parserToUse - .parseAlertMessage(message, reqResourceData); + displayList.add(md); - if (objectToSend != null) { - if (md.getTimeMatcher() != null) { - md.getTimeMatcher().redoTimeMatching(r1); - } - displayList.add(md); - - List list = pdoSendMap - .get(reqResourceData); - if (list == null) { - list = new ArrayList(); - pdoSendMap.put(reqResourceData, list); - } - list.add(objectToSend); - - if (list.size() > 100) { - // update with objects - Class componentType = list.get(0) - .getClass(); - reqResourceData.update(list - .toArray((Object[]) Array - .newInstance(componentType, - list.size()))); - list.clear(); - } + List list = pdoSendMap.get(reqResourceData); + if (list == null) { + list = new ArrayList(); + pdoSendMap.put(reqResourceData, list); } + list.add(objectToSend); + if (list.size() > 100) { + // update with objects + Class componentType = list.get(0).getClass(); + reqResourceData.update(list + .toArray((Object[]) Array.newInstance( + componentType, list.size()))); + list.clear(); + } } } - } catch (final Throwable e) { - if (errors < MAX_ERRORS) { - statusHandler.handle(Priority.PROBLEM, - "Error performing autoupdate", e); - } - errors++; } + + } catch (final Throwable e) { + if (errors < MAX_ERRORS) { + statusHandler.handle(Priority.PROBLEM, + "Error performing autoupdate", e); + } + errors++; } } diff --git a/cave/com.raytheon.viz.alerts/src/com/raytheon/viz/alerts/jobs/MenuUpdater.java b/cave/com.raytheon.viz.alerts/src/com/raytheon/viz/alerts/jobs/MenuUpdater.java index 72bf22be81..ea7c8f1c22 100644 --- a/cave/com.raytheon.viz.alerts/src/com/raytheon/viz/alerts/jobs/MenuUpdater.java +++ b/cave/com.raytheon.viz.alerts/src/com/raytheon/viz/alerts/jobs/MenuUpdater.java @@ -26,7 +26,6 @@ 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,29 +65,25 @@ public class MenuUpdater implements IAlertObserver { Map attribs = new HashMap( message.decodedAlert); DataTime dataTimeStr = (DataTime) attribs.get("dataTime"); - - if (dataTimeStr.getRefTime().before( - SimulatedTime.getSystemTime().getTime())) { - if (dataTimeStr != null) { - // Update the date catalog - List> dataTimeList = URICatalog - .getInstance().searchTree(attribs); + if (dataTimeStr != null) { + // Update the date catalog + List> dataTimeList = URICatalog + .getInstance().searchTree(attribs); - // If we found listeners, update them - if (dataTimeList != null) { - DataTime dataTime = dataTimeStr.clone(); + // If we found listeners, update them + if (dataTimeList != null) { + DataTime dataTime = dataTimeStr.clone(); - for (List refreshList : dataTimeList) { - for (IURIRefreshCallback callback : refreshList) { - if (callback != null) { - callback.updateTime(dataTime); - } - } - } - } - } - } + for (List refreshList : dataTimeList) { + for (IURIRefreshCallback callback : refreshList) { + if (callback != null) { + callback.updateTime(dataTime); + } + } + } + } + } } } diff --git a/cave/com.raytheon.viz.aviation/src/com/raytheon/viz/aviation/monitor/EtaBufMonitorObserver.java b/cave/com.raytheon.viz.aviation/src/com/raytheon/viz/aviation/monitor/EtaBufMonitorObserver.java index c81df84ed2..afbeeb3ca0 100644 --- a/cave/com.raytheon.viz.aviation/src/com/raytheon/viz/aviation/monitor/EtaBufMonitorObserver.java +++ b/cave/com.raytheon.viz.aviation/src/com/raytheon/viz/aviation/monitor/EtaBufMonitorObserver.java @@ -22,8 +22,6 @@ 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; @@ -66,23 +64,18 @@ public class EtaBufMonitorObserver extends MonitorObserver implements public void alertArrived(Collection alertMessages) { ArrayList siteIDs = new ArrayList(); - 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)) { - for (TafSiteComp tsc : dialog.getTafSiteComps()) { - if (tsc.getStationName().equals(siteID)) { - siteIDs.add(siteID); - break; - } - } - } - } - } + for (AlertMessage alert : alertMessages) { + String siteID = (String) alert.decodedAlert + .get("location.stationId"); + if (!siteIDs.contains(siteID)) { + for (TafSiteComp tsc : dialog.getTafSiteComps()) { + if (tsc.getStationName().equals(siteID)) { + siteIDs.add(siteID); + break; + } + } + } + } if (siteIDs.size() > 0) { for (ViewerTab tab : dialog.getViewerTabList()) { diff --git a/cave/com.raytheon.viz.aviation/src/com/raytheon/viz/aviation/monitor/EtaMonitorObserver.java b/cave/com.raytheon.viz.aviation/src/com/raytheon/viz/aviation/monitor/EtaMonitorObserver.java index 52a5fa7c56..17d34bb216 100644 --- a/cave/com.raytheon.viz.aviation/src/com/raytheon/viz/aviation/monitor/EtaMonitorObserver.java +++ b/cave/com.raytheon.viz.aviation/src/com/raytheon/viz/aviation/monitor/EtaMonitorObserver.java @@ -22,8 +22,6 @@ 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,22 +64,18 @@ public class EtaMonitorObserver extends MonitorObserver implements public void alertArrived(Collection alertMessages) { ArrayList siteIDs = new ArrayList(); - 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)) { - for (TafSiteComp tsc : dialog.getTafSiteComps()) { - if (tsc.getStationName().equals(siteID)) { - siteIDs.add(siteID); - break; - } - } - } - } - } + for (AlertMessage alert : alertMessages) { + String siteID = (String) alert.decodedAlert + .get("location.stationId"); + if (!siteIDs.contains(siteID)) { + for (TafSiteComp tsc : dialog.getTafSiteComps()) { + if (tsc.getStationName().equals(siteID)) { + siteIDs.add(siteID); + break; + } + } + } + } if (siteIDs.size() > 0) { for (ViewerTab tab : dialog.getViewerTabList()) { diff --git a/cave/com.raytheon.viz.aviation/src/com/raytheon/viz/aviation/monitor/GfsLampMonitorObserver.java b/cave/com.raytheon.viz.aviation/src/com/raytheon/viz/aviation/monitor/GfsLampMonitorObserver.java index ce052636fe..e700106b58 100644 --- a/cave/com.raytheon.viz.aviation/src/com/raytheon/viz/aviation/monitor/GfsLampMonitorObserver.java +++ b/cave/com.raytheon.viz.aviation/src/com/raytheon/viz/aviation/monitor/GfsLampMonitorObserver.java @@ -22,8 +22,6 @@ 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; @@ -67,22 +65,18 @@ public class GfsLampMonitorObserver extends MonitorObserver implements public void alertArrived(Collection alertMessages) { ArrayList siteIDs = new ArrayList(); - 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)) { - for (TafSiteComp tsc : dialog.getTafSiteComps()) { - if (tsc.getStationName().equals(siteID)) { - siteIDs.add(siteID); - break; - } - } - } - } - } + for (AlertMessage alert : alertMessages) { + String siteID = (String) alert.decodedAlert + .get("location.stationId"); + if (!siteIDs.contains(siteID)) { + for (TafSiteComp tsc : dialog.getTafSiteComps()) { + if (tsc.getStationName().equals(siteID)) { + siteIDs.add(siteID); + break; + } + } + } + } if (siteIDs.size() > 0) { for (ViewerTab tab : dialog.getViewerTabList()) { diff --git a/cave/com.raytheon.viz.aviation/src/com/raytheon/viz/aviation/monitor/GfsMonitorObserver.java b/cave/com.raytheon.viz.aviation/src/com/raytheon/viz/aviation/monitor/GfsMonitorObserver.java index d3a610631a..ae282d24b9 100644 --- a/cave/com.raytheon.viz.aviation/src/com/raytheon/viz/aviation/monitor/GfsMonitorObserver.java +++ b/cave/com.raytheon.viz.aviation/src/com/raytheon/viz/aviation/monitor/GfsMonitorObserver.java @@ -22,8 +22,6 @@ 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,22 +64,18 @@ public class GfsMonitorObserver extends MonitorObserver implements public void alertArrived(Collection alertMessages) { ArrayList siteIDs = new ArrayList(); - 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)) { - for (TafSiteComp tsc : dialog.getTafSiteComps()) { - if (tsc.getStationName().equals(siteID)) { - siteIDs.add(siteID); - break; - } - } - } - } - } + for (AlertMessage alert : alertMessages) { + String siteID = (String) alert.decodedAlert + .get("location.stationId"); + if (!siteIDs.contains(siteID)) { + for (TafSiteComp tsc : dialog.getTafSiteComps()) { + if (tsc.getStationName().equals(siteID)) { + siteIDs.add(siteID); + break; + } + } + } + } if (siteIDs.size() > 0) { for (ViewerTab tab : dialog.getViewerTabList()) { diff --git a/cave/com.raytheon.viz.grid/src/com/raytheon/viz/grid/data/GribRequestableDataFactory.java b/cave/com.raytheon.viz.grid/src/com/raytheon/viz/grid/data/GribRequestableDataFactory.java index ad003770de..23ad64a817 100644 --- a/cave/com.raytheon.viz.grid/src/com/raytheon/viz/grid/data/GribRequestableDataFactory.java +++ b/cave/com.raytheon.viz.grid/src/com/raytheon/viz/grid/data/GribRequestableDataFactory.java @@ -24,8 +24,6 @@ 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; @@ -87,11 +85,7 @@ public class GribRequestableDataFactory implements IAlertObserver { @Override public void alertArrived(Collection alertMessages) { for (AlertMessage mess : alertMessages) { - DataTime dataTime = (DataTime) mess.decodedAlert.get("dataTime"); - if (dataTime.getRefTime().before( - SimulatedTime.getSystemTime().getTime())) { - requestableDataMap.remove(mess.dataURI); - } - } - } + requestableDataMap.remove(mess.dataURI); + } + } } diff --git a/cave/com.raytheon.viz.grid/src/com/raytheon/viz/grid/inv/GridUpdater.java b/cave/com.raytheon.viz.grid/src/com/raytheon/viz/grid/inv/GridUpdater.java index 1540e5b14d..c0d2e4ca24 100644 --- a/cave/com.raytheon.viz.grid/src/com/raytheon/viz/grid/inv/GridUpdater.java +++ b/cave/com.raytheon.viz.grid/src/com/raytheon/viz/grid/inv/GridUpdater.java @@ -39,7 +39,6 @@ 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; @@ -207,107 +206,99 @@ public class GridUpdater implements IAlertObserver { * .core.alerts.AlertMessage[]) */ @Override - public synchronized void alertArrived(Collection alertMessages) { - Set datauris = new HashSet(); - for (AlertMessage alert : alertMessages) { - DataTime dataTime = (DataTime) alert.decodedAlert.get("dataTime"); - if (dataTime.getRefTime().before( - SimulatedTime.getSystemTime().getTime())) { + public synchronized void alertArrived(Collection alertMessages) { + Set datauris = new HashSet(); + for (AlertMessage alert : alertMessages) { + if (myUpdates.remove(alert.dataURI)) { + // This updater triggered this alert, if it processes it now + // we + // could do this forever + continue; + } + GribMapKey updateKey = new GribMapKey(alert.decodedAlert); + GribTimeCache.getInstance().clearTimes(updateKey); + LevelNode lNode = null; + try { + Level level = LevelFactory.getInstance().getLevel( + updateKey.masterLevel, updateKey.levelone, + updateKey.leveltwo); + lNode = inventory.getNode(updateKey.modelName, + updateKey.parameter, level); + } catch (CommunicationException e) { + statusHandler.handle(Priority.PROBLEM, e.getLocalizedMessage(), + e); + } - if (myUpdates.remove(alert.dataURI)) { - // This updater triggered this alert, if it processes it now - // we - // could do this forever - continue; - } - GribMapKey updateKey = new GribMapKey(alert.decodedAlert); - GribTimeCache.getInstance().clearTimes(updateKey); - LevelNode lNode = null; - try { - Level level = LevelFactory.getInstance().getLevel( - updateKey.masterLevel, updateKey.levelone, - updateKey.leveltwo); - lNode = inventory.getNode(updateKey.modelName, - updateKey.parameter, level); - } catch (CommunicationException e) { - statusHandler.handle(Priority.PROBLEM, - e.getLocalizedMessage(), e); - } - - if (lNode == null) { - inventory.reinitTree(); - // System.out.println(alert.dataURI); - // System.out.println("LevelId=" + level.getId()); - } else if (!(lNode instanceof GribRequestableLevelNode)) { - if (lNode instanceof OrLevelNode) { - 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) - // .getModelName()); - } - } else { - inventory.reinitTree(); - // System.out.println(alert.dataURI); - // System.out.println(lNode.getClass()); - } - } - Set set = updateMap.get(updateKey); - if (set == null) { - continue; - } - for (UpdateValue value : set) { - GribRecord fakeRec = new GribRecord(); - fakeRec.setPluginName("grib"); - Object obj = alert.decodedAlert.get("dataTime"); - if (!(obj instanceof DataTime)) { - throw new IllegalArgumentException( - "Error processing Alerts: " - + obj.toString() - + " cannot be cast to a DataTime because it is a " - + obj.getClass().getSimpleName()); - } - DataTime time = (DataTime) obj; - fakeRec.setDataTime(new DataTime(time.getRefTime(), time - .getFcstTime() - value.timeOffset)); - GribModel modelInfo = new GribModel(); - modelInfo.setModelName(value.node.getModelName()); - modelInfo.setParameterAbbreviation(value.node.getDesc() - .getAbbreviation()); - modelInfo.setLevel(value.node.getLevel()); - if (value.node instanceof GatherLevelNode) { - modelInfo.setPerturbationNumber(null); - } else { - modelInfo - .setPerturbationNumber((Integer) alert.decodedAlert - .get(GridInventory.PERT_QUERY)); - } - // do I need to set this? - modelInfo.setTypeEnsemble(null); - fakeRec.setModelInfo(modelInfo); - try { - fakeRec.constructDataURI(); - datauris.add(fakeRec.getDataURI()); - } catch (PluginException e) { - statusHandler - .handle(Priority.PROBLEM, - "Unable to generate updates for derived product", - e); - } - } - } else { - System.out.println("Grid after SIMULATED TIME: "+dataTime); - } - } - myUpdates.addAll(datauris); - ProductAlertObserver.processDerivedAlerts(datauris); - } + if (lNode == null) { + inventory.reinitTree(); + // System.out.println(alert.dataURI); + // System.out.println("LevelId=" + level.getId()); + } else if (!(lNode instanceof GribRequestableLevelNode)) { + if (lNode instanceof OrLevelNode) { + 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) + // .getModelName()); + } + } else { + inventory.reinitTree(); + // System.out.println(alert.dataURI); + // System.out.println(lNode.getClass()); + } + } + Set set = updateMap.get(updateKey); + if (set == null) { + continue; + } + for (UpdateValue value : set) { + GribRecord fakeRec = new GribRecord(); + fakeRec.setPluginName("grib"); + Object obj = alert.decodedAlert.get("dataTime"); + if (!(obj instanceof DataTime)) { + throw new IllegalArgumentException( + "Error processing Alerts: " + + obj.toString() + + " cannot be cast to a DataTime because it is a " + + obj.getClass().getSimpleName()); + } + DataTime time = (DataTime) obj; + fakeRec.setDataTime(new DataTime(time.getRefTime(), time + .getFcstTime() - value.timeOffset)); + GribModel modelInfo = new GribModel(); + modelInfo.setModelName(value.node.getModelName()); + modelInfo.setParameterAbbreviation(value.node.getDesc() + .getAbbreviation()); + modelInfo.setLevel(value.node.getLevel()); + if (value.node instanceof GatherLevelNode) { + modelInfo.setPerturbationNumber(null); + } else { + modelInfo + .setPerturbationNumber((Integer) alert.decodedAlert + .get(GridInventory.PERT_QUERY)); + } + // do I need to set this? + modelInfo.setTypeEnsemble(null); + fakeRec.setModelInfo(modelInfo); + try { + fakeRec.constructDataURI(); + datauris.add(fakeRec.getDataURI()); + } catch (PluginException e) { + statusHandler + .handle(Priority.PROBLEM, + "Unable to generate updates for derived product", + e); + } + } + } + myUpdates.addAll(datauris); + ProductAlertObserver.processDerivedAlerts(datauris); + } /** * diff --git a/cave/com.raytheon.viz.grid/src/com/raytheon/viz/grid/inv/RadarUpdater.java b/cave/com.raytheon.viz.grid/src/com/raytheon/viz/grid/inv/RadarUpdater.java index 09ea6727df..2544f574d4 100644 --- a/cave/com.raytheon.viz.grid/src/com/raytheon/viz/grid/inv/RadarUpdater.java +++ b/cave/com.raytheon.viz.grid/src/com/raytheon/viz/grid/inv/RadarUpdater.java @@ -20,7 +20,6 @@ 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,68 +128,60 @@ public class RadarUpdater implements IAlertObserver { return; } Set datauris = new HashSet(); - for (AlertMessage alertMessage : alertMessages) { - 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; - } - globalTimes = null; - Object obj = alertMessage.decodedAlert - .get(RadarAdapter.PRODUCT_CODE_QUERY); - if (obj == null || !(obj instanceof Integer)) { - continue; - } - Integer productCode = (Integer) obj; - String paramAbbrev = RadarProductCodeMapping.getInstance() - .getParameterAbbrev(productCode); - if (paramAbbrev == null) { - continue; - } - obj = alertMessage.decodedAlert.get("dataTime"); - if (obj == null || !(obj instanceof DataTime)) { - continue; - } - DataTime time = (DataTime) obj; - obj = alertMessage.decodedAlert.get(RadarAdapter.TILT_QUERY); - if (obj == null || !(obj instanceof Double)) { - continue; - } - Double elevationAngle = (Double) obj; - cache.remove(new CacheKey(productCode, elevationAngle)); - Level level = null; - try { - level = LevelFactory.getInstance() - .getLevel(RadarAdapter.CUBE_MASTER_LEVEL_NAME, - elevationAngle); - } catch (CommunicationException e1) { - statusHandler.handle(Priority.PROBLEM, - e1.getLocalizedMessage(), e1); - } - GribRecord fakeRec = new GribRecord(); - fakeRec.setPluginName("grib"); - fakeRec.setDataTime(time); - GribModel modelInfo = new GribModel(); - modelInfo.setModelName(RadarAdapter.RADAR_SOURCE); - modelInfo.setParameterAbbreviation(paramAbbrev); - modelInfo.setLevel(level); - modelInfo.setTypeEnsemble(null); - fakeRec.setModelInfo(modelInfo); - try { - fakeRec.constructDataURI(); - datauris.add(fakeRec.getDataURI()); - } catch (PluginException e) { - statusHandler - .handle(Priority.PROBLEM, - "Unable to generate updates for derived product", - e); - } - } + for (AlertMessage alertMessage : alertMessages) { + String icao = alertMessage.decodedAlert + .get(RadarAdapter.ICAO_QUERY).toString(); + if (icao == null + || !icao.equalsIgnoreCase(configuredRadar.getRdaId())) { + continue; + } + globalTimes = null; + Object obj = alertMessage.decodedAlert + .get(RadarAdapter.PRODUCT_CODE_QUERY); + if (obj == null || !(obj instanceof Integer)) { + continue; + } + Integer productCode = (Integer) obj; + String paramAbbrev = RadarProductCodeMapping.getInstance() + .getParameterAbbrev(productCode); + if (paramAbbrev == null) { + continue; + } + obj = alertMessage.decodedAlert.get("dataTime"); + if (obj == null || !(obj instanceof DataTime)) { + continue; + } + DataTime time = (DataTime) obj; + obj = alertMessage.decodedAlert.get(RadarAdapter.TILT_QUERY); + if (obj == null || !(obj instanceof Double)) { + continue; + } + Double elevationAngle = (Double) obj; + cache.remove(new CacheKey(productCode, elevationAngle)); + Level level = null; + try { + level = LevelFactory.getInstance().getLevel( + RadarAdapter.CUBE_MASTER_LEVEL_NAME, elevationAngle); + } catch (CommunicationException e1) { + statusHandler.handle(Priority.PROBLEM, + e1.getLocalizedMessage(), e1); + } + GribRecord fakeRec = new GribRecord(); + fakeRec.setPluginName("grib"); + fakeRec.setDataTime(time); + GribModel modelInfo = new GribModel(); + modelInfo.setModelName(RadarAdapter.RADAR_SOURCE); + modelInfo.setParameterAbbreviation(paramAbbrev); + modelInfo.setLevel(level); + modelInfo.setTypeEnsemble(null); + fakeRec.setModelInfo(modelInfo); + try { + fakeRec.constructDataURI(); + datauris.add(fakeRec.getDataURI()); + } catch (PluginException e) { + statusHandler.handle(Priority.PROBLEM, + "Unable to generate updates for derived product", e); + } } ProductAlertObserver.processDerivedAlerts(datauris); } diff --git a/cave/com.raytheon.viz.pointdata/src/com/raytheon/viz/pointdata/util/PointDataInventory.java b/cave/com.raytheon.viz.pointdata/src/com/raytheon/viz/pointdata/util/PointDataInventory.java index a9478fa6fa..8b99479f3e 100644 --- a/cave/com.raytheon.viz.pointdata/src/com/raytheon/viz/pointdata/util/PointDataInventory.java +++ b/cave/com.raytheon.viz.pointdata/src/com/raytheon/viz/pointdata/util/PointDataInventory.java @@ -31,8 +31,6 @@ 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,30 +101,25 @@ public class PointDataInventory extends AbstractPointDataInventory implements } @Override - public void alertArrived(Collection 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; - String typeKey = getTypeKey(pluginName); - if (!PLUGIN_NAME.equals(typeKey)) { - source += message.decodedAlert.get(typeKey).toString(); - } + public void alertArrived(Collection alertMessages) { + for (AlertMessage message : alertMessages) { + String pluginName = message.decodedAlert.get(PLUGIN_NAME) + .toString(); + String source = pluginName; + String typeKey = getTypeKey(pluginName); + if (!PLUGIN_NAME.equals(typeKey)) { + source += message.decodedAlert.get(typeKey).toString(); + } - if (getAllSources() != null - && !getAllSources().contains(source)) { - try { - initTree(derParLibrary); - } catch (VizException e) { - statusHandler.handle(Priority.PROBLEM, - e.getLocalizedMessage(), e); - } - } - } - } - } + if (getAllSources() != null && !getAllSources().contains(source)) { + try { + initTree(derParLibrary); + } catch (VizException e) { + statusHandler.handle(Priority.PROBLEM, + e.getLocalizedMessage(), e); + } + } + } + } } diff --git a/edexOsgi/com.raytheon.uf.common.dataquery/src/com/raytheon/uf/common/dataquery/requests/TimeQueryRequest.java b/edexOsgi/com.raytheon.uf.common.dataquery/src/com/raytheon/uf/common/dataquery/requests/TimeQueryRequest.java index 71d8f8c070..1ac4d62243 100644 --- a/edexOsgi/com.raytheon.uf.common.dataquery/src/com/raytheon/uf/common/dataquery/requests/TimeQueryRequest.java +++ b/edexOsgi/com.raytheon.uf.common.dataquery/src/com/raytheon/uf/common/dataquery/requests/TimeQueryRequest.java @@ -50,7 +50,9 @@ import com.raytheon.uf.common.time.SimulatedTime; public class TimeQueryRequest implements IServerRequest { public TimeQueryRequest() { - this.simDate = SimulatedTime.getSystemTime().getTime(); + if (!SimulatedTime.getSystemTime().isRealTime()) { + this.simDate = SimulatedTime.getSystemTime().getTime(); + } } @DynamicSerializeElement diff --git a/edexOsgi/com.raytheon.uf.edex.database/src/com/raytheon/uf/edex/database/handlers/TimeQueryHandler.java b/edexOsgi/com.raytheon.uf.edex.database/src/com/raytheon/uf/edex/database/handlers/TimeQueryHandler.java index f04fd745a4..50c6ea480c 100644 --- a/edexOsgi/com.raytheon.uf.edex.database/src/com/raytheon/uf/edex/database/handlers/TimeQueryHandler.java +++ b/edexOsgi/com.raytheon.uf.edex.database/src/com/raytheon/uf/edex/database/handlers/TimeQueryHandler.java @@ -94,16 +94,19 @@ public class TimeQueryHandler implements IRequestHandler { // getting all times DatabaseQuery query = buildQuery(classname, map, true); List latestTime = runQuery(dao, query); - RequestConstraint timeRC = new RequestConstraint(null, - ConstraintType.LESS_THAN); - map.put(REF_TIME, timeRC); + if (!map.containsKey(REF_TIME)) { + RequestConstraint timeRC = new RequestConstraint(null, + ConstraintType.LESS_THAN); + map.put(REF_TIME, timeRC); + } times = new ArrayList(50); while (latestTime != null && latestTime.size() != 0) { DataTime normalTime = binOffset.getNormalizedTime(latestTime .get(0)); times.add(normalTime); Date date = binOffset.getTimeRange(normalTime).getStart(); - timeRC.setConstraintValue(new DataTime(date).toString()); + map.get(REF_TIME).setConstraintValue( + new DataTime(date).toString()); query = buildQuery(classname, map, true); latestTime = runQuery(dao, query); } @@ -112,17 +115,6 @@ public class TimeQueryHandler implements IRequestHandler { request.isMaxQuery()); times = runQuery(dao, query); } - - // second check for some complex plugin requests that get by the simDate check in the query - ArrayList removes = new ArrayList(); - for (DataTime time: times) { - if (time.getRefTime().after(request.getSimDate())) { - removes.add(time); - } - } - if (removes.size() > 0) { - times.removeAll(removes); - } return times; } @@ -157,7 +149,7 @@ public class TimeQueryHandler implements IRequestHandler { constraint.getConstraintType().getOperand(), classname); } - //System.out.println("TimeQuery: " + query.createHQLQuery()); + // System.out.println("TimeQuery: " + query.createHQLQuery()); return query; } diff --git a/ncep/gov.noaa.nws.ncep.viz.ui.perspectives/src/gov/noaa/nws/ncep/viz/ui/perspectives/NcAutoUpdater.java b/ncep/gov.noaa.nws.ncep.viz.ui.perspectives/src/gov/noaa/nws/ncep/viz/ui/perspectives/NcAutoUpdater.java index 470d2f1507..4aca04aa1e 100644 --- a/ncep/gov.noaa.nws.ncep.viz.ui.perspectives/src/gov/noaa/nws/ncep/viz/ui/perspectives/NcAutoUpdater.java +++ b/ncep/gov.noaa.nws.ncep.viz.ui.perspectives/src/gov/noaa/nws/ncep/viz/ui/perspectives/NcAutoUpdater.java @@ -31,8 +31,6 @@ 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; @@ -82,9 +80,6 @@ public class NcAutoUpdater implements IAlertObserver { Object objectToSend = null; Map attribs = new HashMap( 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() @@ -95,7 +90,6 @@ public class NcAutoUpdater implements IAlertObserver { attribs.put("dataURI", message.dataURI); objectToSend = Loader.loadData(attribs); } - } return objectToSend; } };