001: /*
002: * This file or a portion of this file is licensed under the terms of
003: * the Globus Toolkit Public License, found in file GTPL, or at
004: * http://www.globus.org/toolkit/download/license.html. This notice must
005: * appear in redistributions of this file, with or without modification.
006: *
007: * Redistributions of this Software, with or without modification, must
008: * reproduce the GTPL in: (1) the Software, or (2) the Documentation or
009: * some other similar material which is provided with the Software (if
010: * any).
011: *
012: * Copyright 1999-2004 University of Chicago and The University of
013: * Southern California. All rights reserved.
014: */
015: package org.griphyn.vdl.annotation;
016:
017: import java.sql.Types;
018:
019: /**
020: * This simple class defines the boolean values for the values at the
021: * heart of Yong's annotations.
022: *
023: * @author Jens-S. Vöckler
024: * @author Yong Zhao
025: * @version $Revision: 50 $
026: */
027: public class TupleBoolean extends Tuple {
028: /**
029: * Defines the key for which we store the annotation.
030: */
031: private boolean m_value = false;
032:
033: /**
034: * Constructs an instance of a boolean tuple.
035: *
036: * @param key is the key to store annotations for.
037: * @param value is the boolean value of the annotation.
038: */
039: public TupleBoolean(String key, boolean value) {
040: super (key);
041: m_value = value;
042: }
043:
044: /**
045: * Obtains the current value of the value part.
046: *
047: * @return the current value as boolean.
048: * @see #setBoolean( boolean )
049: */
050: public boolean getBoolean() {
051: return m_value;
052: }
053:
054: /**
055: * Overwrites the current value of the value part.
056: *
057: * @param value is the new value to use from now on.
058: * @see #getBoolean()
059: */
060: public void setBoolean(boolean value) {
061: m_value = value;
062: }
063:
064: /**
065: * Return generically the value wrapped into a Java class.
066: *
067: * @return the value wrapped as Java object.
068: * @see #setValue( Object )
069: * @see java.lang.Boolean
070: */
071: public Object getValue() {
072: return new Boolean(m_value);
073: }
074:
075: /**
076: * Generic interface to set a value in an instance. Note
077: * that this action may fail, if the instance is of an
078: * incompatible type.
079: *
080: * @param value is the data object to set.
081: * @see #getValue()
082: * @exception ClassCastException if the actual argument type of the value
083: * is incompatible with the value maintained by the instance.
084: */
085: public void setValue(Object value) throws ClassCastException {
086: if (value instanceof Boolean)
087: m_value = ((Boolean) value).booleanValue();
088: else if (value instanceof String)
089: m_value = Boolean.valueOf((String) value).booleanValue();
090: else
091: throw new ClassCastException(
092: "type cast failed: not a Boolean");
093: }
094:
095: /**
096: * Returns the type of the value as SQL Type.
097: *
098: * @return a constant from the set of SQL types.
099: * @see java.sql.Types
100: */
101: public int getType() {
102: return java.sql.Types.BOOLEAN;
103: }
104:
105: /**
106: * Returns the string representation of the type.
107: */
108: public String getTypeString() {
109: return "boolean";
110: }
111: }
|