001 /* 002 * $Id: StormParam.java,v 1.1 2012/01/04 20:40:51 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 java.util.List; 034 035 import ucar.unidata.data.DataChoice; 036 import ucar.unidata.util.TwoFacedObject; 037 import ucar.visad.Util; 038 import visad.Real; 039 import visad.RealType; 040 import visad.Unit; 041 import visad.VisADException; 042 043 /** 044 * Created by IntelliJ IDEA. User: yuanho Date: Apr 18, 2008 Time: 1:45:38 PM To 045 * change this template use File | Settings | File Templates. 046 */ 047 048 public class StormParam { 049 050 /** _more_ */ 051 RealType type; 052 053 /** _more_ */ 054 private boolean canDoDifference = true; 055 056 /** _more_ */ 057 private boolean derived = false; 058 059 /** _more_ */ 060 private boolean isChartParam = true; 061 062 /** 063 * _more_ 064 */ 065 public StormParam() { 066 } 067 068 /** 069 * _more_ 070 * 071 * @param type 072 * _more_ 073 */ 074 public StormParam(RealType type) { 075 this.type = type; 076 if (type != null) { 077 DataChoice.addCurrentName(new TwoFacedObject("Storm Track>" + type, 078 Util.cleanTypeName(type))); 079 } 080 } 081 082 /** 083 * _more_ 084 * 085 * @param type 086 * _more_ 087 * @param derived 088 * _more_ 089 */ 090 public StormParam(RealType type, boolean derived) { 091 this(type); 092 this.derived = derived; 093 } 094 095 /** 096 * _more_ 097 * 098 * @param type 099 * _more_ 100 * @param derived 101 * _more_ 102 * @param canDoDiff 103 * _more_ 104 */ 105 public StormParam(RealType type, boolean derived, boolean canDoDiff) { 106 this(type); 107 this.derived = derived; 108 this.canDoDifference = canDoDiff; 109 } 110 111 /** 112 * _more_ 113 * 114 * @param type 115 * _more_ 116 * @param derived 117 * _more_ 118 * @param canDoDiff 119 * _more_ 120 * @param chartList 121 * _more_ 122 */ 123 public StormParam(RealType type, boolean derived, boolean canDoDiff, 124 boolean chartList) { 125 this(type); 126 this.derived = derived; 127 this.canDoDifference = canDoDiff; 128 this.isChartParam = chartList; 129 } 130 131 /** 132 * _more_ 133 * 134 * @param value 135 * _more_ 136 * 137 * @return _more_ 138 * 139 * @throws VisADException 140 * _more_ 141 */ 142 public Real getReal(double value) throws VisADException { 143 return new Real(type, value); 144 } 145 146 /** 147 * _more_ 148 * 149 * @return _more_ 150 */ 151 public Unit getUnit() { 152 return type.getDefaultUnit(); 153 } 154 155 /** 156 * _more_ 157 * 158 * @return _more_ 159 */ 160 public int hashCode() { 161 return type.hashCode(); 162 } 163 164 /** 165 * Set the CanDoDifference property. 166 * 167 * @param value 168 * The new value for CanDoDifference 169 */ 170 public void setCanDoDifference(boolean value) { 171 canDoDifference = value; 172 } 173 174 /** 175 * Get the CanDoDifference property. 176 * 177 * @return The CanDoDifference 178 */ 179 public boolean getCanDoDifference() { 180 return canDoDifference; 181 } 182 183 /** 184 * Set the CanDoDifference property. 185 * 186 * @param value 187 * The new value for CanDoDifference 188 */ 189 public void setIsChartParam(boolean value) { 190 isChartParam = value; 191 } 192 193 /** 194 * Get the CanDoDifference property. 195 * 196 * @return The CanDoDifference 197 */ 198 public boolean getIsChartParam() { 199 return isChartParam; 200 } 201 202 /** 203 * _more_ 204 * 205 * @param attributes 206 * _more_ 207 * 208 * @return _more_ 209 */ 210 public Real getAttribute(List<Real> attributes) { 211 if (attributes == null) { 212 return null; 213 } 214 for (Real attr : attributes) { 215 if (attr.getType().equals(type)) { 216 return attr; 217 } 218 } 219 return null; 220 } 221 222 /** 223 * _more_ 224 * 225 * @param o 226 * _more_ 227 * 228 * @return _more_ 229 */ 230 public boolean equals(Object o) { 231 if (!this.getClass().equals(o.getClass())) { 232 return false; 233 } 234 StormParam that = (StormParam) o; 235 return this.type.equals(that.type); 236 } 237 238 /** 239 * _more_ 240 * 241 * @return _more_ 242 */ 243 public String toString() { 244 return Util.cleanTypeName(type.getName()).replace("_", " "); 245 } 246 247 /** 248 * _more_ 249 * 250 * @return _more_ 251 */ 252 public String getName() { 253 return Util.cleanTypeName(type.getName()); 254 } 255 256 /** 257 * Set the Type property. 258 * 259 * @param value 260 * The new value for Type 261 */ 262 public void setType(RealType value) { 263 type = value; 264 } 265 266 /** 267 * Get the Type property. 268 * 269 * @return The Type 270 */ 271 public RealType getType() { 272 return type; 273 } 274 275 /** 276 * Set the Derived property. 277 * 278 * @param value 279 * The new value for Derived 280 */ 281 public void setDerived(boolean value) { 282 derived = value; 283 } 284 285 /** 286 * Get the Derived property. 287 * 288 * @return The Derived 289 */ 290 public boolean getDerived() { 291 return derived; 292 } 293 294 }