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