From d4911f84d304a30d9f93a8648f2b770a0ab78518 Mon Sep 17 00:00:00 2001
From: Tor-Einar Skog <tor-einar.skog@bioforsk.no>
Date: Fri, 20 Sep 2013 14:21:26 +0200
Subject: [PATCH] Improvements in DateMap and WeatherUtil Added warningStatus
 property of Result

---
 .../java/no/bioforsk/vips/entity/Result.java  | 10 +++++++++
 .../no/bioforsk/vips/entity/ResultImpl.java   | 21 ++++++++++++++++++-
 .../java/no/bioforsk/vips/util/DateMap.java   | 15 +++++++++++++
 .../no/bioforsk/vips/util/WeatherUtil.java    |  2 --
 4 files changed, 45 insertions(+), 3 deletions(-)

diff --git a/src/main/java/no/bioforsk/vips/entity/Result.java b/src/main/java/no/bioforsk/vips/entity/Result.java
index da5e8b7..5f9a3da 100644
--- a/src/main/java/no/bioforsk/vips/entity/Result.java
+++ b/src/main/java/no/bioforsk/vips/entity/Result.java
@@ -10,6 +10,13 @@ import java.util.Set;
  * @author Tor-Einar Skog <tor-einar.skog@hyper.no>
  */
 public interface Result extends Comparable{
+    
+    public final static Integer WARNING_STATUS_NO_WARNING = 0;
+    public final static Integer WARNING_STATUS_NO_WARNING_MISSING_DATA = 1;
+    public final static Integer WARNING_STATUS_NO_RISK = 2;
+    public final static Integer WARNING_STATUS_MINOR_RISK = 3;
+    public final static Integer WARNING_STATUS_HIGH_RISK = 4;
+
     /* Time for which these results are valid */
     public void setResultValidTime(Date time);
     public Date getResultValidTime();
@@ -22,4 +29,7 @@ public interface Result extends Comparable{
     public void setValue(String key, String value);
     public String getValue(String key);
     public Map<String,String> getAllValues();
+    
+    public void setWarningStatus(Integer warningStatus);
+    public Integer getWarningStatus();
 }
diff --git a/src/main/java/no/bioforsk/vips/entity/ResultImpl.java b/src/main/java/no/bioforsk/vips/entity/ResultImpl.java
index dbb783d..970ab96 100644
--- a/src/main/java/no/bioforsk/vips/entity/ResultImpl.java
+++ b/src/main/java/no/bioforsk/vips/entity/ResultImpl.java
@@ -7,40 +7,48 @@ import java.util.Set;
 
 /**
  * Represents a result
- * @copyright 2013 {@link http://www.bioforsk.no Bioforsk}
+ * @copyright 2013 <a href="http://www.bioforsk.no">Bioforsk</a>
  * @author Tor-Einar Skog <tor-einar.skog@bioforsk.no>
  */
 public class ResultImpl implements Result{
     private Date resultValidTime;
     private Set<String> keys;
     private HashMap<String, String> values;
+    private Integer warningStatus;
 
+    @Override
     public void setResultValidTime(Date time) {
         this.resultValidTime = time;
     }
 
+    @Override
     public Date getResultValidTime() {
         return this.resultValidTime;
     }
 
+    @Override
     public void setKeys(Set<String> keys) {
         this.keys = keys;
     }
 
+    @Override
     public Set<String> getKeys() {
         return this.values.keySet();
     }
 
+    @Override
     public void setValue(String key, String value) {
         if(this.values == null)
             this.values = new HashMap();
         this.values.put(key, value);
     }
 
+    @Override
     public String getValue(String key) {
         return this.values != null ? this.values.get(key) : null;
     }
 
+    @Override
     public Map<String, String> getAllValues() {
         return this.values;
     }
@@ -50,8 +58,19 @@ public class ResultImpl implements Result{
      * @param t
      * @return 
      */
+    @Override
     public int compareTo(Object t) {
         return this.getResultValidTime().compareTo(((Result) t).getResultValidTime());
     }
+
+    @Override
+    public void setWarningStatus(Integer warningStatus) {
+        this.warningStatus = warningStatus;
+    }
+
+    @Override
+    public Integer getWarningStatus() {
+        return this.warningStatus != null ? this.warningStatus: WARNING_STATUS_NO_WARNING;
+    }
     
 }
diff --git a/src/main/java/no/bioforsk/vips/util/DateMap.java b/src/main/java/no/bioforsk/vips/util/DateMap.java
index eb85fc3..1318943 100644
--- a/src/main/java/no/bioforsk/vips/util/DateMap.java
+++ b/src/main/java/no/bioforsk/vips/util/DateMap.java
@@ -2,12 +2,14 @@ package no.bioforsk.vips.util;
 
 import java.text.DecimalFormat;
 import java.util.ArrayList;
+import java.util.Calendar;
 import java.util.Collections;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
+import java.util.TimeZone;
 
 /**
  * Multiple parameters mapped by Date
@@ -273,6 +275,19 @@ public class DateMap {
         Collections.sort(keys);
         return keys;
     }
+    
+    public List<Date> getSortedDateAtMidnightKeys(TimeZone timeZone)
+    {
+        List<Date> retVal = new ArrayList<>();
+        Calendar cal = Calendar.getInstance(timeZone);
+        for(Date timeStamp:this.getSortedDateKeys())
+        {
+            cal.setTime(timeStamp);
+            if(cal.get(Calendar.HOUR_OF_DAY) == 0)
+                retVal.add(timeStamp);
+        }
+        return retVal;
+    }
 
     @Override
     public String toString()
diff --git a/src/main/java/no/bioforsk/vips/util/WeatherUtil.java b/src/main/java/no/bioforsk/vips/util/WeatherUtil.java
index 736d357..eaf0685 100644
--- a/src/main/java/no/bioforsk/vips/util/WeatherUtil.java
+++ b/src/main/java/no/bioforsk/vips/util/WeatherUtil.java
@@ -5,10 +5,8 @@ import java.util.Calendar;
 import java.util.Collection;
 import java.util.Date;
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
 import java.util.TimeZone;
 import no.bioforsk.vips.entity.WeatherObservation;
 
-- 
GitLab