001: /*
002: * Portions Copyright 2000-2007 Sun Microsystems, Inc. All Rights
003: * Reserved. Use is subject to license terms.
004: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
005: *
006: * This program is free software; you can redistribute it and/or
007: * modify it under the terms of the GNU General Public License version
008: * 2 only, as published by the Free Software Foundation.
009: *
010: * This program is distributed in the hope that it will be useful, but
011: * WITHOUT ANY WARRANTY; without even the implied warranty of
012: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
013: * General Public License version 2 for more details (a copy is
014: * included at /legal/license.txt).
015: *
016: * You should have received a copy of the GNU General Public License
017: * version 2 along with this work; if not, write to the Free Software
018: * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
019: * 02110-1301 USA
020: *
021: * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
022: * Clara, CA 95054 or visit www.sun.com if you need additional
023: * information or have any questions.
024: */
025: /*
026: */
027: package gov.nist.javax.sdp.fields;
028:
029: import gov.nist.core.*;
030: import gov.nist.javax.sdp.*;
031:
032: /**
033: * Key field part of an SDP header
034: *
035: * @version JSR141-PUBLIC-REVIEW (subject to change)
036: *
037: */
038: public class KeyField extends SDPField {
039: /** Type of key. */
040: protected String type;
041: /** Key data. */
042: protected String keyData;
043:
044: /**
045: * Copies the current instance.
046: * @return the copy of this object
047: */
048: public Object clone() {
049: KeyField retval = new KeyField();
050: retval.type = type;
051: retval.keyData = keyData;
052: return retval;
053: }
054:
055: /** Default constructor. */
056: public KeyField() {
057: super (KEY_FIELD);
058: }
059:
060: /**
061: * Gets the type member.
062: * @return thetype
063: */
064: public String getType() {
065: return type;
066: }
067:
068: /**
069: * Gets the key data.
070: * @return the key data
071: */
072: public String getKeyData() {
073: return keyData;
074: }
075:
076: /**
077: * Sets the type member.
078: * @param t the new key type
079: */
080: public void setType(String t) {
081: type = t;
082: }
083:
084: /**
085: * Sets the key data member.
086: * @param k the new key data
087: */
088: public void setKeyData(String k) {
089: keyData = k;
090: }
091:
092: /**
093: * Gets the string encoded version of this object.
094: * @return the encoded string of object contents
095: * @since v1.0
096: */
097: public String encode() {
098: String encoded_string;
099: encoded_string = KEY_FIELD + type;
100: if (Utils.compareToIgnoreCase(type, SDPKeywords.PROMPT) == 0) {
101: if (Utils.compareToIgnoreCase(type, SDPKeywords.URI) == 0) {
102: encoded_string += Separators.COLON;
103: encoded_string += keyData;
104: } else {
105: if (keyData != null) {
106: encoded_string += Separators.COLON;
107: encoded_string += keyData;
108: }
109: }
110: }
111: encoded_string += Separators.NEWLINE;
112: return encoded_string;
113: }
114:
115: /**
116: * Returns the name of this attribute.
117: * @throws SdpParseException if a parsing error occurs
118: * @return the name of this attribute
119: */
120: public String getMethod() throws SdpParseException {
121: return this .type;
122: }
123:
124: /**
125: * Sets the id of this attribute.
126: * @param name to set
127: * @throws SdpException if the name is null
128: */
129: public void setMethod(String name) throws SdpException {
130: this .type = name;
131: }
132:
133: /**
134: * Determines if this attribute has an associated value.
135: * @throws SdpParseException if a parsing error occurs
136: * @return if this attribute has an associated value.
137: */
138: public boolean hasKey() throws SdpParseException {
139: String key = getKeyData();
140: return key != null;
141: }
142:
143: /**
144: * Returns the value of this attribute.
145: * @throws SdpParseException if a parsing error occurs
146: * @return the value of this attribute
147: */
148: public String getKey() throws SdpParseException {
149: return getKeyData();
150: }
151:
152: /**
153: * Sets the value of this attribute.
154: * @param key to set
155: * @throws SdpException if key is null
156: */
157: public void setKey(String key) throws SdpException {
158: if (key == null)
159: throw new SdpException("The key is null");
160: else
161: setKeyData(key);
162: }
163: }
|