Issue #1916 overrode getDataTimes() to boost efficiency

Change-Id: Ic9b3c6ddd2885f3fdef56910cb1e829387d48872

Former-commit-id: 8e34962ce6 [formerly df2823edea] [formerly 834d36e1a9] [formerly 8e34962ce6 [formerly df2823edea] [formerly 834d36e1a9] [formerly f2b383d4d6 [formerly 834d36e1a9 [formerly cd6133708f29ea162ae3fe5456a2d8463e60dce3]]]]
Former-commit-id: f2b383d4d6
Former-commit-id: 1d0479b97f [formerly d4273c8b41] [formerly 5ccda62a353eef9ec22c9bbfe3fc406c3e88822d [formerly 181b717cf2]]
Former-commit-id: 56ee1d0b2905e90fe13208268a0e39855221cd57 [formerly 245fcec165]
Former-commit-id: 93868c334c
This commit is contained in:
Nate Jensen 2013-04-17 14:54:48 -05:00
parent 76907bd13d
commit 1573745970

View file

@ -21,7 +21,9 @@ package com.raytheon.uf.viz.cwat;
import java.nio.ShortBuffer;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import org.opengis.referencing.FactoryException;
import org.opengis.referencing.crs.CoordinateReferenceSystem;
@ -68,6 +70,8 @@ import com.vividsolutions.jts.geom.Coordinate;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* 16JUN2009 2037 dhladky Initial Creation.
* Apr 17, 2013 1916 njensen Overrode getDataTimes()
*
*
* </pre>
*
@ -78,39 +82,33 @@ import com.vividsolutions.jts.geom.Coordinate;
public class CWATResource extends
AbstractVizResource<CWATResourceData, MapDescriptor> implements
IResourceDataChanged {
private static final transient IUFStatusHandler statusHandler = UFStatus
.getHandler(CWATResource.class);
public String icao;
protected CWATRecord record;
public String fieldName;
private Map<DataTime, GriddedImageDisplay2> griddedDisplayMap;
public String fieldUnitString;
protected DataTime displayedDataTime;
public CWATRecord record;
private HashMap<DataTime, GriddedImageDisplay2> griddedDisplayMap;
public DataTime displayedDataTime;
public DataTime previousDataTime;
protected DataTime previousDataTime;
private String colormapfile = null;
/* The font used */
public IFont font = null;
protected IFont font = null;
private float cwatmax = 0.0f;
private float cwatmin = 0.0f;
boolean init = true;
private boolean init = true;
public CWATResource(CWATResourceData data, LoadProperties props) {
super(data, props);
data.addChangeListener(this);
this.dataTimes = new ArrayList<DataTime>();
griddedDisplayMap = new HashMap<DataTime, GriddedImageDisplay2>();
}
@ -146,7 +144,10 @@ public class CWATResource extends
for (PluginDataObject pdo : pdos) {
try {
CWATRecord cwat = (CWATRecord) pdo;
resourceData.dataObjectMap.put(cwat.getDataTime(), cwat);
synchronized (resourceData.dataObjectMap) {
resourceData.dataObjectMap
.put(cwat.getDataTime(), cwat);
}
record = cwat;
} catch (Exception e) {
statusHandler.handle(Priority.PROBLEM,
@ -303,7 +304,9 @@ public class CWATResource extends
@Override
public void remove(DataTime dataTime) {
this.dataTimes.remove(dataTime);
synchronized (resourceData.dataObjectMap) {
resourceData.dataObjectMap.remove(dataTime);
}
GriddedImageDisplay2 display = this.griddedDisplayMap.remove(dataTime);
if (display != null) {
display.dispose();
@ -322,4 +325,14 @@ public class CWATResource extends
match.setParameterName(paramList);
return match;
}
@Override
public DataTime[] getDataTimes() {
DataTime[] times = new DataTime[0];
synchronized (resourceData.dataObjectMap) {
times = this.resourceData.dataObjectMap.keySet().toArray(times);
}
Arrays.sort(times);
return times;
}
}