extensions/net.sf.basedb.labenv/trunk/src/net/sf/basedb/labenv/dao/LabEnvironmentData.java

Code
Comments
Other
Rev Date Author Line
2303 02 Apr 14 olle 1 /**
2303 02 Apr 14 olle 2   $Id $
2303 02 Apr 14 olle 3
2303 02 Apr 14 olle 4   Copyright (C) 2014 Olle MÃ¥nsson
2303 02 Apr 14 olle 5
2303 02 Apr 14 olle 6   This file is part of the LabEnv extension for BASE.
2303 02 Apr 14 olle 7   Available at http://baseplugins.thep.lu.se/
2303 02 Apr 14 olle 8   BASE main site: http://base.thep.lu.se/
2303 02 Apr 14 olle 9   -----------------------------------------------------------
2303 02 Apr 14 olle 10   
2303 02 Apr 14 olle 11   This is free software; you can redistribute it and/or
2303 02 Apr 14 olle 12   modify it under the terms of the GNU General Public License
2303 02 Apr 14 olle 13   as published by the Free Software Foundation; either version 3
2303 02 Apr 14 olle 14   of the License, or (at your option) any later version.
2303 02 Apr 14 olle 15   
2303 02 Apr 14 olle 16   The software is distributed in the hope that it will be useful,
2303 02 Apr 14 olle 17   but WITHOUT ANY WARRANTY; without even the implied warranty of
2303 02 Apr 14 olle 18   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
2303 02 Apr 14 olle 19   GNU General Public License for more details.
2303 02 Apr 14 olle 20   
2303 02 Apr 14 olle 21   You should have received a copy of the GNU General Public License
2303 02 Apr 14 olle 22   along with BASE. If not, see <http://www.gnu.org/licenses/>.
2303 02 Apr 14 olle 23
2303 02 Apr 14 olle 24 */
2303 02 Apr 14 olle 25 package net.sf.basedb.labenv.dao;
2303 02 Apr 14 olle 26
2303 02 Apr 14 olle 27 import java.util.Date;
3018 09 Dec 14 nicklas 28
2303 02 Apr 14 olle 29 import net.sf.basedb.labenv.LabEnv;
3018 09 Dec 14 nicklas 30 import net.sf.basedb.labenv.entity.SensorData;
2303 02 Apr 14 olle 31 import net.sf.basedb.util.EqualsHelper;
2349 10 Apr 14 olle 32 import net.sf.basedb.util.Values;
2303 02 Apr 14 olle 33 import net.sf.basedb.util.formatter.DateFormatter;
2303 02 Apr 14 olle 34
2303 02 Apr 14 olle 35 public class LabEnvironmentData
2303 02 Apr 14 olle 36   implements Comparable<LabEnvironmentData>
2303 02 Apr 14 olle 37 {
2349 10 Apr 14 olle 38   private final int numberOfDecimals = 2;
2303 02 Apr 14 olle 39   private final Long id;
2303 02 Apr 14 olle 40   private final String sensorUrl;
2303 02 Apr 14 olle 41   private final String sensorName;
2303 02 Apr 14 olle 42   private final String serialNumber;
2303 02 Apr 14 olle 43   private final Date dateTime;
2303 02 Apr 14 olle 44   private final long unixTime;
2303 02 Apr 14 olle 45   private final double temperature;
2303 02 Apr 14 olle 46   private final double humidity;
2303 02 Apr 14 olle 47   
2303 02 Apr 14 olle 48   public Long getId()
2303 02 Apr 14 olle 49   {
2303 02 Apr 14 olle 50     return this.id;
2303 02 Apr 14 olle 51   }
2303 02 Apr 14 olle 52     
2303 02 Apr 14 olle 53   public String getSensorUrl()
2303 02 Apr 14 olle 54   {
2303 02 Apr 14 olle 55     return this.sensorUrl;
2303 02 Apr 14 olle 56   }
2303 02 Apr 14 olle 57     
2303 02 Apr 14 olle 58   public String getSensorName()
2303 02 Apr 14 olle 59   {
2303 02 Apr 14 olle 60     return this.sensorName;
2303 02 Apr 14 olle 61   }
2303 02 Apr 14 olle 62     
2303 02 Apr 14 olle 63   public String getSerialNumber()
2303 02 Apr 14 olle 64   {
2303 02 Apr 14 olle 65     return this.serialNumber;
2303 02 Apr 14 olle 66   }
2303 02 Apr 14 olle 67     
2303 02 Apr 14 olle 68   public Date getDateTime()
2303 02 Apr 14 olle 69   {
2303 02 Apr 14 olle 70     return this.dateTime;
2303 02 Apr 14 olle 71   }
3018 09 Dec 14 nicklas 72   
2303 02 Apr 14 olle 73   public long getUnixTime()
2303 02 Apr 14 olle 74   {
2303 02 Apr 14 olle 75     return this.unixTime;
2303 02 Apr 14 olle 76   }
2303 02 Apr 14 olle 77     
2303 02 Apr 14 olle 78   public double getTemperature()
2303 02 Apr 14 olle 79   {
2303 02 Apr 14 olle 80     return this.temperature;
2303 02 Apr 14 olle 81   }
2303 02 Apr 14 olle 82     
2303 02 Apr 14 olle 83   public double getHumidity()
2303 02 Apr 14 olle 84   {
2303 02 Apr 14 olle 85     return this.humidity;
2303 02 Apr 14 olle 86   }
3018 09 Dec 14 nicklas 87   
3018 09 Dec 14 nicklas 88   
3018 09 Dec 14 nicklas 89   public LabEnvironmentData(SensorData data, LabSensorConfig config) 
2303 02 Apr 14 olle 90   {
3018 09 Dec 14 nicklas 91     this.id = data.getId();
3018 09 Dec 14 nicklas 92     this.sensorUrl = config.getUrl();
3018 09 Dec 14 nicklas 93     this.sensorName = config.getName();
3018 09 Dec 14 nicklas 94     this.serialNumber = "";
3018 09 Dec 14 nicklas 95     this.dateTime = data.getTime();
3018 09 Dec 14 nicklas 96     this.unixTime = dateTime.getTime() / 1000;
3018 09 Dec 14 nicklas 97     this.temperature = data.getTemperature();
3018 09 Dec 14 nicklas 98     this.humidity = data.getHumidity();
2303 02 Apr 14 olle 99   }
2303 02 Apr 14 olle 100   
3018 09 Dec 14 nicklas 101
3018 09 Dec 14 nicklas 102   public LabEnvironmentData(String sensorUrl, String sensorName, String serialNumber, Date dateTime, double temperature, double humidity)
2303 02 Apr 14 olle 103   {
3018 09 Dec 14 nicklas 104     this.id = null;
2303 02 Apr 14 olle 105     this.sensorUrl = sensorUrl;
2303 02 Apr 14 olle 106     this.sensorName = sensorName;
2303 02 Apr 14 olle 107     this.serialNumber = serialNumber;
2303 02 Apr 14 olle 108     this.dateTime = dateTime;
2303 02 Apr 14 olle 109     this.unixTime = dateTime.getTime()/1000;
2303 02 Apr 14 olle 110     this.temperature = temperature;
2303 02 Apr 14 olle 111     this.humidity = humidity;
2303 02 Apr 14 olle 112   }
3018 09 Dec 14 nicklas 113
2303 02 Apr 14 olle 114   
2303 02 Apr 14 olle 115   @Override
2303 02 Apr 14 olle 116   public String toString()
2303 02 Apr 14 olle 117   {
2303 02 Apr 14 olle 118     // Convert nowTime to number of ms since 1070-01-01 00:00:00 before getting dateTime
2303 02 Apr 14 olle 119     // Get variable value strings from variable values
2303 02 Apr 14 olle 120     DateFormatter dateFormat = new DateFormatter("yyyy-MM-dd HH:mm:ss");
2303 02 Apr 14 olle 121     String dateTimeStr = dateFormat.format(dateTime);
2352 10 Apr 14 olle 122     String temperatureStr = Values.formatNumber((float) temperature, numberOfDecimals);
2352 10 Apr 14 olle 123     String humidityStr = Values.formatNumber((float) humidity, numberOfDecimals);
2303 02 Apr 14 olle 124     return sensorName + "\t" + serialNumber + "\t" + dateTimeStr + "\t" + temperatureStr + "\t" + humidityStr;
2303 02 Apr 14 olle 125   }
2303 02 Apr 14 olle 126
2303 02 Apr 14 olle 127   @Override
2303 02 Apr 14 olle 128   public int hashCode() 
2303 02 Apr 14 olle 129   {
2303 02 Apr 14 olle 130     return sensorUrl.hashCode() + dateTime.hashCode();
2303 02 Apr 14 olle 131   }
2303 02 Apr 14 olle 132
2303 02 Apr 14 olle 133   @Override
2303 02 Apr 14 olle 134   public boolean equals(Object obj) 
2303 02 Apr 14 olle 135   {
2303 02 Apr 14 olle 136     if (obj == null) return false;
2303 02 Apr 14 olle 137     if (this == obj) return true;
2303 02 Apr 14 olle 138     
2303 02 Apr 14 olle 139     if (obj.getClass() != this.getClass()) return false;
2303 02 Apr 14 olle 140     LabEnvironmentData o = (LabEnvironmentData)obj;
2303 02 Apr 14 olle 141     return EqualsHelper.equals(this.sensorUrl, o.sensorUrl) && 
2303 02 Apr 14 olle 142         EqualsHelper.equals(this.sensorName, o.sensorName) && 
2303 02 Apr 14 olle 143         EqualsHelper.equals(this.serialNumber, o.serialNumber) && 
2303 02 Apr 14 olle 144         EqualsHelper.equals(this.dateTime, o.dateTime) && 
2303 02 Apr 14 olle 145         EqualsHelper.equals(this.temperature, o.temperature) &&
2303 02 Apr 14 olle 146         EqualsHelper.equals(this.humidity, o.humidity);
2303 02 Apr 14 olle 147   }
2303 02 Apr 14 olle 148
2303 02 Apr 14 olle 149   @Override
2303 02 Apr 14 olle 150   public int compareTo(LabEnvironmentData o)
2303 02 Apr 14 olle 151   {
2303 02 Apr 14 olle 152     int result = LabEnv.nullSafeCompare(this.sensorUrl, o.sensorUrl);
2303 02 Apr 14 olle 153     if (result == 0)
2303 02 Apr 14 olle 154     {
2303 02 Apr 14 olle 155       result =  LabEnv.nullSafeCompare(this.sensorName, o.sensorName);
2303 02 Apr 14 olle 156       if (result == 0)
2303 02 Apr 14 olle 157       {
2303 02 Apr 14 olle 158         result =  LabEnv.nullSafeCompare(this.serialNumber, o.serialNumber);
2303 02 Apr 14 olle 159         if (result == 0)
2303 02 Apr 14 olle 160         {
2303 02 Apr 14 olle 161           result =  LabEnv.nullSafeCompare(this.dateTime, o.dateTime);
2303 02 Apr 14 olle 162           if (result == 0)
2303 02 Apr 14 olle 163           {
2303 02 Apr 14 olle 164             result = LabEnv.nullSafeCompare(this.temperature, o.temperature);
2303 02 Apr 14 olle 165             if (result == 0)
2303 02 Apr 14 olle 166             {
2303 02 Apr 14 olle 167               result = LabEnv.nullSafeCompare(this.humidity, o.humidity);
2303 02 Apr 14 olle 168             }
2303 02 Apr 14 olle 169           }
2303 02 Apr 14 olle 170         }
2303 02 Apr 14 olle 171       }
2303 02 Apr 14 olle 172     }
2303 02 Apr 14 olle 173     return result;
2303 02 Apr 14 olle 174   }
2303 02 Apr 14 olle 175 }