diff servlet/src/digilib/servlet/Parameter.java @ 153:4980c969be4c

Servlet version 1.16a1 - cleanup of DigilibConfig class - now uses new Parameter and ParameterMap classes - new parameter default-quality
author robcast
date Wed, 03 Sep 2003 00:56:16 +0200
parents
children d40922628e4a
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/servlet/src/digilib/servlet/Parameter.java	Wed Sep 03 00:56:16 2003 +0200
@@ -0,0 +1,199 @@
+/* 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.servlet;
+
+/** 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 (defval == null) {
+			this.value = val;
+			return true;
+		}
+		Class c = defval.getClass();
+		// take String as is
+		if (c == String.class) {
+			this.value = val;
+			return true;
+		}
+		// set Boolean if string == "true"
+		if (c == Boolean.class) {
+			this.value = new Boolean(val.compareToIgnoreCase("true") == 0);
+			return true;
+		}
+		// 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;
+		}
+		// 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() {
+		return (String) getValue();
+	}
+
+	public boolean getAsBoolean() {
+		Boolean b = (Boolean) getValue();
+		return (b != null) ? b.booleanValue() : false;
+	}
+
+	/** Set the value.
+	 * 
+	 * @param value
+	 */
+	public void setValue(Object value) {
+		this.value = 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;
+	}
+
+}