/*
* JGrass - Free Open Source Java GIS http://www.jgrass.org
* (C) HydroloGIS - www.hydrologis.com
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Library General Public License as published by the Free
* Software Foundation; either version 2 of the License, or (at your option) any
* later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more
* details.
*
* You should have received a copy of the GNU Library General Public License
* along with this library; if not, write to the Free Foundation, Inc., 59
* Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package org.jgrasstools.hortonmachine.modules.networktools.epanet.core;
@SuppressWarnings("nls")
public enum OptionParameterCodes {
UNITS(-1, "UNITS", "Units of flow rates", "LPS"), //
HEADLOSS(-1, "HEADLOSS", "Headloss formula for flow through pipe", "D-W"), //
QUALITY(-1, "QUALITY", "Type of water quality analysis", "NONE"), //
VISCOSITY(-1, "VISCOSITY", "Cinematic viscosity at 20 celcius degrees", "1.0"), //
DIFFUSIVITY(-1, "DIFFUSIVITY", "Molecular diffusivity in water", "1.0"), //
SPECIFICGRAVITY(-1, "SPECIFIC GRAVITY", "Ratio of density of the fluid to that of water at 4 degree", "1.0"), //
TRIALS(0, "TRIALS", "Maximum number of trials to solve hydraulics", "40"), //
ACCURACY(1, "ACCURACY", "Accuracy convergence for the solution", "0.001"), //
UNBALANCED(-1, "UNBALANCED", "Defines what happens if the hydraulics solution cannot be reached", "STOP"), //
PATTERN(-1, "PATTERN", "ID of the default demand pattern for junctions where no demand pattern was specified", "1"), //
TOLERANCE(2, "TOLERANCE", "Tolerance for water quality.", "0.01"), //
EMITEXPON(3, "EMITTER EXPONENT", "The power to which the pressure at a junction is raised.", "0.5"), //
DEMANDMULTIPLIER(4, "DEMAND MULTIPLIER", "Multiplier for the demand values.", "1");
private int code;
private String key;
private String description;
private String defaultValue;
OptionParameterCodes( int code, String key, String description, String defaultValue ) {
this.code = code;
this.key = key;
this.description = description;
this.defaultValue = defaultValue;
}
public int getCode() {
return code;
}
public String getKey() {
return key;
}
public String getDescription() {
return description;
}
public String getDefault() {
return this.defaultValue;
}
public static OptionParameterCodes forCode( int i ) {
OptionParameterCodes[] values = values();
for( OptionParameterCodes type : values ) {
if (type.code == i) {
return type;
}
}
throw new IllegalArgumentException("No type for the given code: " + i);
}
public static OptionParameterCodes forKey( String key ) {
OptionParameterCodes[] values = values();
for( OptionParameterCodes type : values ) {
if (type.key.equals(key)) {
return type;
}
}
throw new IllegalArgumentException("No type for the given key: " + key);
}
}