view common/src/main/java/digilib/util/Parameter.java @ 1033:d5e181e3401c
pom only includes modules that are used by Profiles.
author
robcast
date
Sun, 11 Mar 2012 14:45:41 +0100 (2012-03-11)
parents
7779b37d1d05
children
line source
/* Parameter -- General digilib parameter class.+ −
+ −
Digital Image Library servlet components+ −
+ −
Copyright (C) 2003 Robert Casties (robcast@mail.berlios.de)+ −
+ −
This program is free software; you can redistribute it and/or modify it+ −
under the terms of the GNU General Public License as published by the+ −
Free Software Foundation; either version 2 of the License, or (at your+ −
option) any later version.+ −
+ −
Please read license.txt for the full details. A copy of the GPL+ −
may be found at http://www.gnu.org/copyleft/lgpl.html+ −
+ −
You should have received a copy of the GNU General Public License+ −
along with this program; if not, write to the Free Software+ −
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA+ −
+ −
*+ −
* Created on 02.09.2003 by casties+ −
* + −
*/+ −
package digilib.util;+ −
+ −
import java.io.File;+ −
import java.io.IOException;+ −
+ −
+ −
/**+ −
* General digilib parameter class.+ −
* + −
* @author casties+ −
* + −
*/+ −
public class Parameter {+ −
/** real value */+ −
protected Object value = null;+ −
+ −
/** default value */+ −
protected Object defval = null;+ −
+ −
/** parameter name (e.g. in config file) */+ −
protected String name = null;+ −
+ −
/** parameter type */+ −
protected int type = 0;+ −
+ −
/**+ −
* Default constructor.+ −
* + −
*/+ −
public Parameter() {+ −
super();+ −
}+ −
+ −
/**+ −
* Constructor with name, default, and value.+ −
* + −
* @param value+ −
* @param defval+ −
*/+ −
public Parameter(String name, Object defval, Object value) {+ −
this.name = name;+ −
this.value = value;+ −
this.defval = defval;+ −
}+ −
+ −
/**+ −
* Constructor with name, default, value, and type.+ −
* + −
* @param value+ −
* @param defval+ −
*/+ −
public Parameter(String name, Object defval, Object value, int type) {+ −
this.name = name;+ −
this.value = value;+ −
this.defval = defval;+ −
this.type = type;+ −
}+ −
+ −
/**+ −
* Is the value valid.+ −
* + −
* @return+ −
*/+ −
public boolean hasValue() {+ −
return (value != null);+ −
}+ −
+ −
/**+ −
* Try to set the value from a String.+ −
* + −
* Tries to convert the String to the same type as the default value. Sets+ −
* the value anyway if the default is null. Returns if the value could be+ −
* set.+ −
* + −
* @param val+ −
* @return+ −
*/+ −
public boolean setValueFromString(String val) {+ −
if (val == null) {+ −
val = "";+ −
}+ −
// no default matches all+ −
if (defval == null) {+ −
this.value = val;+ −
return true;+ −
}+ −
Class<? extends Object> c = defval.getClass();+ −
// take String as is+ −
if (c == String.class) {+ −
this.value = val;+ −
return true;+ −
}+ −
// set File+ −
if (c == File.class) {+ −
this.value = new File(val);+ −
return true;+ −
}+ −
// set Options+ −
if (c == OptionsSet.class) {+ −
this.value = new OptionsSet(val);+ −
return true;+ −
}+ −
// set Boolean if string == "true"+ −
if (c == Boolean.class) {+ −
this.value = new Boolean(val.compareToIgnoreCase("true") == 0);+ −
return true;+ −
}+ −
try {+ −
// set Integer+ −
if (c == Integer.class) {+ −
this.value = new Integer(Integer.parseInt(val));+ −
return true;+ −
}+ −
// set Float+ −
if (c == Float.class) {+ −
this.value = new Float(Float.parseFloat(val));+ −
return true;+ −
}+ −
} catch (NumberFormatException e) {+ −
}+ −
// then it's unknown+ −
return false;+ −
}+ −
+ −
/**+ −
* Get the default as Object.+ −
* + −
* @return+ −
*/+ −
public Object getDefault() {+ −
return defval;+ −
}+ −
+ −
/**+ −
* Set the default.+ −
* + −
* @param defval+ −
*/+ −
public void setDefault(Object defval) {+ −
this.defval = defval;+ −
}+ −
+ −
/**+ −
* Get the value as Object.+ −
* + −
* Returns the default if the value is not set.+ −
* + −
* @return+ −
*/+ −
public Object getValue() {+ −
return (value != null) ? value : defval;+ −
}+ −
+ −
public int getAsInt() {+ −
Integer i = (Integer) getValue();+ −
return (i != null) ? i.intValue() : 0;+ −
}+ −
+ −
public float getAsFloat() {+ −
Float f = (Float) getValue();+ −
return (f != null) ? f.floatValue() : 0f;+ −
}+ −
+ −
public String getAsString() {+ −
Object s = getValue();+ −
if (s == null) {+ −
return "";+ −
}+ −
if (s.getClass() == File.class) {+ −
try {+ −
return ((File) s).getCanonicalPath();+ −
} catch (IOException e) {+ −
return "ERR: " + s.toString();+ −
}+ −
}+ −
return s.toString();+ −
}+ −
+ −
public boolean getAsBoolean() {+ −
Boolean b = (Boolean) getValue();+ −
return (b != null) ? b.booleanValue() : false;+ −
}+ −
+ −
public String[] parseAsArray(String separator) {+ −
String s = getAsString();+ −
String[] sa = s.split(separator);+ −
return sa;+ −
}+ −
+ −
public float[] parseAsFloatArray(String separator) {+ −
String s = getAsString();+ −
String[] sa = s.split(separator);+ −
float[] fa = null;+ −
try {+ −
int n = sa.length;+ −
fa = new float[n];+ −
for (int i = 0; i < n; i++) {+ −
float f = Float.parseFloat(sa[i]);+ −
fa[i] = f;+ −
}+ −
} catch (Exception e) {+ −
}+ −
+ −
return fa;+ −
}+ −
+ −
/**+ −
* Set the value.+ −
* + −
* @param value+ −
*/+ −
public void setValue(Object value) {+ −
this.value = value;+ −
}+ −
+ −
/**+ −
* Set the value.+ −
* + −
* @param value+ −
*/+ −
public void setValue(int value) {+ −
this.value = new Integer(value);+ −
}+ −
+ −
/**+ −
* Set the value.+ −
* + −
* @param value+ −
*/+ −
public void setValue(float value) {+ −
this.value = new Float(value);+ −
}+ −
+ −
/**+ −
* @return+ −
*/+ −
public String getName() {+ −
return name;+ −
}+ −
+ −
/**+ −
* @param name+ −
*/+ −
public void setName(String name) {+ −
this.name = name;+ −
}+ −
+ −
/**+ −
* @return+ −
*/+ −
public int getType() {+ −
return type;+ −
}+ −
+ −
/**+ −
* @param type+ −
*/+ −
public void setType(int type) {+ −
this.type = type;+ −
}+ −
+ −
}+ −