001 /* 002 * $Id: StormInfo.java,v 1.1 2012/01/04 20:40:52 tommyj Exp $ 003 * 004 * This file is part of McIDAS-V 005 * 006 * Copyright 2007-2012 007 * Space Science and Engineering Center (SSEC) 008 * University of Wisconsin - Madison 009 * 1225 W. Dayton Street, Madison, WI 53706, USA 010 * https://www.ssec.wisc.edu/mcidas 011 * 012 * All Rights Reserved 013 * 014 * McIDAS-V is built on Unidata's IDV and SSEC's VisAD libraries, and 015 * some McIDAS-V source code is based on IDV and VisAD source code. 016 * 017 * McIDAS-V is free software; you can redistribute it and/or modify 018 * it under the terms of the GNU Lesser Public License as published by 019 * the Free Software Foundation; either version 3 of the License, or 020 * (at your option) any later version. 021 * 022 * McIDAS-V is distributed in the hope that it will be useful, 023 * but WITHOUT ANY WARRANTY; without even the implied warranty of 024 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 025 * GNU Lesser Public License for more details. 026 * 027 * You should have received a copy of the GNU Lesser Public License 028 * along with this program. If not, see http://www.gnu.org/licenses. 029 */ 030 031 package edu.wisc.ssec.mcidasv.data.cyclone; 032 033 import visad.DateTime; 034 035 /** 036 * Created by IntelliJ IDEA. User: yuanho Date: Apr 9, 2008 Time: 4:57:21 PM To 037 * change this template use File | Settings | File Templates. 038 */ 039 040 public class StormInfo implements Comparable { 041 042 /** _more_ */ 043 private String stormID; 044 045 /** _more_ */ 046 private String name; 047 048 /** _more_ */ 049 private String basin; 050 051 /** _more_ */ 052 private String number; 053 054 /** _more_ */ 055 private DateTime startTime; 056 057 /** 058 * _more_ 059 */ 060 public StormInfo() { 061 } 062 063 /** 064 * _more_ 065 * 066 * @param id 067 * _more_ 068 * @param sTime 069 * _more_ 070 */ 071 public StormInfo(String id, DateTime sTime) { 072 this(id, id, sTime); 073 } 074 075 /** 076 * _more_ 077 * 078 * @param id 079 * _more_ 080 * @param name 081 * _more_ 082 * @param sTime 083 * _more_ 084 */ 085 public StormInfo(String id, String name, DateTime sTime) { 086 this(id, name, null, null, sTime); 087 } 088 089 /** 090 * _more_ 091 * 092 * @param id 093 * _more_ 094 * @param name 095 * _more_ 096 * @param basin 097 * _more_ 098 * @param number 099 * _more_ 100 * @param sTime 101 * _more_ 102 */ 103 public StormInfo(String id, String name, String basin, String number, 104 DateTime sTime) { 105 this.stormID = id; 106 this.name = name; 107 this.basin = basin; 108 this.startTime = sTime; 109 this.number = number; 110 } 111 112 /** 113 * Compare this object to another. 114 * 115 * @param o 116 * object in question. 117 * @return spec from Comparable interface. 118 */ 119 public int compareTo(Object o) { 120 if (o instanceof StormInfo) { 121 StormInfo that = (StormInfo) o; 122 if (startTime.getValue() < that.startTime.getValue()) { 123 return -1; 124 } 125 if (startTime.getValue() > that.startTime.getValue()) { 126 return 1; 127 } 128 return 0; 129 } 130 return toString().compareTo(o.toString()); 131 } 132 133 /** 134 * _more_ 135 * 136 * @param id 137 * _more_ 138 */ 139 public void setStormId(String id) { 140 this.stormID = id; 141 } 142 143 /** 144 * _more_ 145 * 146 * @return _more_ 147 */ 148 public String getStormId() { 149 return stormID; 150 } 151 152 /** 153 * _more_ 154 * 155 * @param dt 156 * _more_ 157 */ 158 public void setStartTime(DateTime dt) { 159 this.startTime = dt; 160 } 161 162 /** 163 * _more_ 164 * 165 * @return _more_ 166 */ 167 public DateTime getStartTime() { 168 return startTime; 169 } 170 171 /** 172 * _more_ 173 * 174 * @return _more_ 175 */ 176 public String toString() { 177 if (name != null) { 178 return name; 179 } 180 return stormID; 181 } 182 183 /** 184 * _more_ 185 * 186 * @return _more_ 187 */ 188 public int hashCode() { 189 return stormID.hashCode(); 190 } 191 192 /** 193 * _more_ 194 * 195 * @param o 196 * _more_ 197 * 198 * @return _more_ 199 */ 200 public boolean equals(Object o) { 201 if (o == null) { 202 return false; 203 } 204 if (!(o instanceof StormInfo)) { 205 return false; 206 } 207 StormInfo other = (StormInfo) o; 208 return (this.stormID.equals(other.stormID)); 209 } 210 211 /** 212 * Set the Name property. 213 * 214 * @param value 215 * The new value for Name 216 */ 217 public void setName(String value) { 218 name = value; 219 } 220 221 /** 222 * Get the Name property. 223 * 224 * @return The Name 225 */ 226 public String getName() { 227 return name; 228 } 229 230 /** 231 * Set the Basin property. 232 * 233 * @param value 234 * The new value for Basin 235 */ 236 public void setBasin(String value) { 237 basin = value; 238 } 239 240 /** 241 * Get the Basin property. 242 * 243 * @return The Basin 244 */ 245 public String getBasin() { 246 return basin; 247 } 248 249 /** 250 * Set the Number property. 251 * 252 * @param value 253 * The new value for Number 254 */ 255 public void setNumber(String value) { 256 number = value; 257 } 258 259 /** 260 * Get the Number property. 261 * 262 * @return The Number 263 */ 264 public String getNumber() { 265 return number; 266 } 267 268 }