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 String 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 TupleString extends Tuple {
028: /**
029: * Defines the key for which we store the annotation.
030: */
031: private String m_value;
032:
033: /**
034: * Constructs an instance of a String tuple.
035: *
036: * @param key is the key to store annotations for.
037: * @param value is the String value of the annotation.
038: */
039: public TupleString(String key, String 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 String.
048: * @see #setString( String )
049: */
050: public String getString() {
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 #getString()
059: */
060: public void setString(String value) {
061: m_value = value;
062: }
063:
064: /**
065: * Return generically the value as a copy of the original.
066: *
067: * @return the value wrapped as Java object.
068: * @see #setValue( Object )
069: * @see java.lang.String
070: */
071: public Object getValue() {
072: return new String(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 String)
087: m_value = ((String) value);
088: else
089: throw new ClassCastException(
090: "type cast failed: not a String");
091: }
092:
093: /**
094: * Returns the type of the value as SQL Type.
095: *
096: * @return a constant from the set of SQL types.
097: * @see java.sql.Types
098: */
099: public int getType() {
100: return java.sql.Types.VARCHAR;
101: }
102:
103: /**
104: * Returns the string representation of the type.
105: */
106: public String getTypeString() {
107: return "string";
108: }
109: }
|