changeset 1295:fa405a7ac9c5

Make Range immutible/thread-safe Reviewed-by: jerboaa Review-thread: http://icedtea.classpath.org/pipermail/thermostat/2013-October/008593.html
author Omair Majid <omajid@redhat.com>
date Thu, 31 Oct 2013 11:55:57 -0400
parents cf49a3a699bd
children 0ecd20f2a7b7
files client/swing/src/main/java/com/redhat/thermostat/client/swing/components/timeline/TimelineRulerHeader.java common/core/src/main/java/com/redhat/thermostat/common/model/Range.java common/core/src/test/java/com/redhat/thermostat/common/model/LongRangeNormalizerTest.java thread/client-controllers/src/main/java/com/redhat/thermostat/thread/client/controller/impl/ThreadTimelineController.java thread/client-swing/src/main/java/com/redhat/thermostat/thread/client/swing/impl/SwingThreadTimelineView.java
diffstat 5 files changed, 17 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/client/swing/src/main/java/com/redhat/thermostat/client/swing/components/timeline/TimelineRulerHeader.java	Thu Oct 31 16:37:07 2013 +0100
+++ b/client/swing/src/main/java/com/redhat/thermostat/client/swing/components/timeline/TimelineRulerHeader.java	Thu Oct 31 11:55:57 2013 -0400
@@ -89,6 +89,10 @@
         return range;
     }
 
+    public void setRange(Range<Long> range) {
+        this.range = range;
+    }
+
     @Override
     public int getHeight() {
         return DEFAULT_HEIGHT;
@@ -187,5 +191,6 @@
             increment++;
         }
     }
+
 }
 
--- a/common/core/src/main/java/com/redhat/thermostat/common/model/Range.java	Thu Oct 31 16:37:07 2013 +0100
+++ b/common/core/src/main/java/com/redhat/thermostat/common/model/Range.java	Thu Oct 31 11:55:57 2013 -0400
@@ -43,11 +43,13 @@
  * 
  * The units and the meaning of the range are left to the user, including the
  * fact that the range are inclusive or exclusive of the extremes.
+ * <p>
+ * This class is immutable and thread safe.
  */
 public class Range<T extends Number> {
 
-    T min;
-    T max;
+    final T min;
+    final T max;
     
     /**
      * Creates a new Range that span from min to max.
@@ -57,18 +59,10 @@
         this.max = max;
     }
     
-    public void setMax(T max) {
-        this.max = max;
-    }
-    
     public T getMax() {
         return max;
     }
     
-    public void setMin(T min) {
-        this.min = min;
-    }
-    
     public T getMin() {
         return min;
     }
--- a/common/core/src/test/java/com/redhat/thermostat/common/model/LongRangeNormalizerTest.java	Thu Oct 31 16:37:07 2013 +0100
+++ b/common/core/src/test/java/com/redhat/thermostat/common/model/LongRangeNormalizerTest.java	Thu Oct 31 11:55:57 2013 -0400
@@ -81,8 +81,9 @@
                 
         Assert.assertEquals(150, model.getValueNormalized(5));
         
-        range.setMax(100l);
-        range.setMin(0l);
+        range = new Range<>(0l, 100l);
+
+        model = new LongRangeNormalizer(range);
         
         model.setMaxNormalized(1);
         model.setMinNormalized(0);
--- a/thread/client-controllers/src/main/java/com/redhat/thermostat/thread/client/controller/impl/ThreadTimelineController.java	Thu Oct 31 16:37:07 2013 +0100
+++ b/thread/client-controllers/src/main/java/com/redhat/thermostat/thread/client/controller/impl/ThreadTimelineController.java	Thu Oct 31 11:55:57 2013 -0400
@@ -97,10 +97,10 @@
                             timeline.add(info);
 
                             if (range.getMin() > timestamp) {
-                                range.setMin(timestamp);
+                                range = new Range<>(timestamp, range.getMax());
                             }
                             if (range.getMax() < timestamp) {
-                                range.setMax(timestamp);
+                                range = new Range<>(range.getMin(), timestamp);
                             }
                         }
                         timelines.add(timeline);
--- a/thread/client-swing/src/main/java/com/redhat/thermostat/thread/client/swing/impl/SwingThreadTimelineView.java	Thu Oct 31 16:37:07 2013 +0100
+++ b/thread/client-swing/src/main/java/com/redhat/thermostat/thread/client/swing/impl/SwingThreadTimelineView.java	Thu Oct 31 11:55:57 2013 -0400
@@ -146,7 +146,8 @@
         SwingUtilities.invokeLater(new Runnable() {
             @Override
             public void run() {
-                range.setMax(range.getMax() + (int) (2 * header.getUnitIncrementInMillis()));
+                Range<Long> dataTimeRange = new Range<>(range.getMax(),
+                        range.getMax() + (int) (2 * header.getUnitIncrementInMillis()));
                 chartModel.removeAllElements();
                 for (Timeline timeline : timelines) {
                     
@@ -156,8 +157,7 @@
                     
                     chartModel.addElement(timelineComp);
                 }
-                header.getRange().setMin(range.getMin());
-                header.getRange().setMax(range.getMax());
+                header.setRange(range);
                 
                 handleScrollBar();
             }