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.siplite.header;
028:
029: import gov.nist.core.*;
030:
031: /**
032: * Event SIP Header.
033: *
034: * @version JAIN-SIP-1.1
035: *
036: * <a href="{@docRoot}/uncopyright.html">This code is in the public domain.</a>
037: *
038: */
039: public class EventHeader extends ParametersHeader {
040: /** Current event header field value. */
041: protected String eventType;
042: /** Idientifier label. */
043: public final static String ID = "id";
044: /** Event header field label. */
045: public final static String NAME = Header.EVENT;
046: /** Class handle. */
047: public static Class clazz;
048:
049: static {
050: clazz = new EventHeader().getClass();
051: }
052:
053: /** Creates a new instance of Event */
054: public EventHeader() {
055: super (EVENT);
056: }
057:
058: /**
059: * Sets the eventType to the newly supplied eventType string.
060: *
061: * @param eventType - the new string defining the eventType supported
062: * in this EventHeader
063: * @throws ParseException which signals that an error has been reached
064: * unexpectedly while parsing the eventType value.
065: */
066: public void setEventType(String eventType) throws ParseException {
067: if (eventType == null)
068: throw new NullPointerException(" the eventType is null");
069: this .eventType = eventType;
070: }
071:
072: /**
073: * Gets the eventType of the EventHeader.
074: *
075: * @return the string object identifing the eventType of EventHeader.
076: */
077: public String getEventType() {
078: return eventType;
079: }
080:
081: /**
082: * Sets the id to the newly supplied <var>eventId</var> string.
083: *
084: * @param eventId - the new string defining the eventId of this EventHeader
085: * @throws ParseException which signals that an error has been reached
086: * unexpectedly while parsing the eventId value.
087: */
088: public void setEventId(String eventId) throws ParseException {
089: if (eventId == null)
090: throw new NullPointerException(
091: "the eventId parameter is null");
092: setParameter(ID, eventId);
093: }
094:
095: /**
096: * Gets the id of the EventHeader. This method may return null if the
097: * "eventId" is not set.
098: * @return the string object identifing the eventId of EventHeader.
099: */
100: public String getEventId() {
101: return getParameter(ID);
102: }
103:
104: /**
105: * Encode in canonical form.
106: * @return String
107: */
108: public String encodeBody() {
109: StringBuffer retval = new StringBuffer();
110:
111: if (eventType != null) {
112: retval.append(eventType);
113: // retval.append(Separators.SP + eventType + Separators.SP);
114: }
115:
116: retval.append(encodeWithSep());
117:
118: return retval.toString();
119: }
120:
121: /**
122: * Return true if the given event header matches the supplied one.
123: *
124: * @param matchTarget -- event header to match against.
125: * @return true if object matches
126: */
127: public boolean match(EventHeader matchTarget) {
128: if (matchTarget.eventType == null && this .eventType != null)
129: return false;
130: else if (matchTarget.eventType != null
131: && this .eventType == null)
132: return false;
133: else if (this .eventType == null
134: && matchTarget.eventType == null)
135: return false;
136: else if (getEventId() == null
137: && matchTarget.getEventId() != null)
138: return false;
139: else if (getEventId() != null
140: && matchTarget.getEventId() == null)
141: return false;
142: return equalsIgnoreCase(matchTarget.eventType, this .eventType)
143: && ((this .getEventId() == matchTarget.getEventId()) || equalsIgnoreCase(
144: this .getEventId(), matchTarget.getEventId()));
145: }
146:
147: /**
148: * Gets the event header value.
149: * @return the event header value
150: */
151: public Object getValue() {
152: return this.eventType;
153: }
154:
155: }
|