001: /*
002: * <copyright>
003: *
004: * Copyright 1997-2004 BBNT Solutions, LLC
005: * under sponsorship of the Defense Advanced Research Projects
006: * Agency (DARPA).
007: *
008: * You can redistribute this software and/or modify it under the
009: * terms of the Cougaar Open Source License as published on the
010: * Cougaar Open Source Website (www.cougaar.org).
011: *
012: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
013: * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
014: * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
015: * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
016: * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
017: * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
018: * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
019: * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
020: * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
021: * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
022: * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
023: *
024: * </copyright>
025: */
026:
027: package org.cougaar.lib.param;
028:
029: /**
030: * Base class that encapsulates a simple parameter. A parameter is
031: * is a [name, type, value] triplet. This class encapsulates both
032: * the name and the type information. The value of the
033: * parameter is not specified since values may be of different types.
034: * Extend this class and redefine the appropiate getXXXValue() routine
035: * to add the value of the parameter.
036: *
037: */
038: public class Param {
039:
040: /**
041: * Constructor
042: * @param n name of the parameter
043: * @param t type of the parameter
044: */
045: Param(String n, String t) {
046: this .name = n;
047: this .type = t;
048: }
049:
050: /**
051: * Get accessor for the name of a parameter
052: * @return the name of the parameter.
053: */
054: public String getName() {
055: return name;
056: }
057:
058: /**
059: * Get accessor the the type of a parameter
060: * @return the type of the parameter
061: */
062: String getType() {
063: return type;
064: }
065:
066: /**
067: * Get accessor for the boolean value of a parameter.
068: * Override if needed.
069: * @return the boolean value of the parameter.
070: */
071: boolean getBooleanValue() throws ParamException {
072: throw new ParamException("parameter " + name
073: + " is not of type boolean");
074: }
075:
076: /**
077: * Get accessor for the short value of a parameter.
078: * Override if needed.
079: * @return the short value of the parameter.
080: */
081: short getShortValue() throws ParamException {
082: throw new ParamException("parameter " + name
083: + " is not of type short");
084: }
085:
086: /**
087: * Get accessor for the int value of a parameter.
088: * Override if needed.
089: * @return the int value of the parameter.
090: */
091: int getIntValue() throws ParamException {
092: throw new ParamException("parameter " + name
093: + " is not of type int");
094: }
095:
096: /**
097: * Get accessor for the long value of a parameter.
098: * Override if needed.
099: * @return the long value of the parameter.
100: */
101: long getLongValue() throws ParamException {
102: throw new ParamException("parameter " + name
103: + " is not of type long");
104: }
105:
106: /**
107: * Get accessor for the float value of a parameter.
108: * Override if needed.
109: * @return the float value of the parameter.
110: */
111: float getFloatValue() throws ParamException {
112: throw new ParamException("parameter " + name
113: + " is not of type float");
114: }
115:
116: /**
117: * Get accessor for the double value of a parameter.
118: * Override if needed.
119: * @return the double value of the parameter.
120: */
121: double getDoubleValue() throws ParamException {
122: throw new ParamException("parameter " + name
123: + " is not of type double");
124: }
125:
126: /**
127: * Get accessor for the String value of a parameter.
128: * Override if needed.
129: *
130: * public because LdmXMLPlugin just wants to read from params from
131: * ini file.
132: * @return the String value of the parameter.
133: */
134: public String getStringValue() throws ParamException {
135: throw new ParamException("parameter " + name
136: + " is not of type String");
137: }
138:
139: private String name;
140: private String type;
141: }
|