001: /*
002: * SessionDescription.java
003: *
004: * Created on January 10, 2002, 2:38 PM
005: */
006:
007: package javax.sdp;
008:
009: import java.io.*;
010: import java.util.*;
011:
012: /** A SessionDescription represents the data defined by the Session Description
013: * Protocol (see
014: * IETF RFC 2327) and holds information about the originitor of a session,
015: * the media types that a
016: * client can support and the host and port on which the client will listen
017: * for that media.
018: *
019: * The SessionDescription also holds timing information for the session (e.g. start, end,
020: * repeat, time zone) and bandwidth supported for the session.
021: *
022: * Please refer to IETF RFC 2327 for a description of SDP.
023: *
024: * @author deruelle
025: * @version 1.0
026: */
027: public interface SessionDescription extends Serializable, Cloneable {
028:
029: /** Public clone declaration.
030: * @throws CloneNotSupportedException if clone method is not supported
031: * @return Object
032: */
033: public Object clone() throws CloneNotSupportedException;
034:
035: /** Returns the version of SDP in use. This corresponds to the v= field of the SDP data.
036: * @return the integer version (-1 if not set).
037: */
038: public Version getVersion();
039:
040: /** Sets the version of SDP in use. This corresponds to the v= field of the SDP data.
041: * @param v version - the integer version.
042: * @throws SdpException if the version is null
043: */
044: public void setVersion(Version v) throws SdpException;
045:
046: /** Returns information about the originator of the session. This corresponds
047: * to the o= field
048: * of the SDP data.
049: * @return the originator data.
050: */
051: public Origin getOrigin();
052:
053: /** Sets information about the originator of the session. This corresponds
054: * to the o= field of
055: * the SDP data.
056: * @param origin origin - the originator data.
057: * @throws SdpException if the origin is null
058: */
059: public void setOrigin(Origin origin) throws SdpException;
060:
061: /** Returns the name of the session. This corresponds to the s= field of the SDP data.
062: * @return the session name.
063: */
064: public SessionName getSessionName();
065:
066: /** Sets the name of the session. This corresponds to the s= field of the SDP data.
067: * @param sessionName name - the session name.
068: * @throws SdpException if the sessionName is null
069: */
070: public void setSessionName(SessionName sessionName)
071: throws SdpException;
072:
073: /** Returns value of the info field (i=) of this object.
074: * @return info
075: */
076: public Info getInfo();
077:
078: /** Sets the i= field of this object.
079: * @param i s - new i= value; if null removes the field
080: * @throws SdpException if the info is null
081: */
082: public void setInfo(Info i) throws SdpException;
083:
084: /** Returns a uri to the location of more details about the session.
085: * This corresponds to the u=
086: * field of the SDP data.
087: * @return the uri.
088: */
089: public URI getURI();
090:
091: /** Sets the uri to the location of more details about the session. This
092: * corresponds to the u=
093: * field of the SDP data.
094: * @param uri uri - the uri.
095: * @throws SdpException if the uri is null
096: */
097: public void setURI(URI uri) throws SdpException;
098:
099: /** Returns an email address to contact for further information about the session.
100: * This corresponds to the e= field of the SDP data.
101: * @param create boolean to set
102: * @throws SdpException
103: * @return the email address.
104: */
105: public Vector getEmails(boolean create) throws SdpParseException;
106:
107: /** Sets a an email address to contact for further information about the session.
108: * This corresponds to the e= field of the SDP data.
109: * @param emails email - the email address.
110: * @throws SdpException if the vector is null
111: */
112: public void setEmails(Vector emails) throws SdpException;
113:
114: /** Returns a phone number to contact for further information about the session. This
115: * corresponds to the p= field of the SDP data.
116: * @param create boolean to set
117: * @throws SdpException
118: * @return the phone number.
119: */
120: public Vector getPhones(boolean create) throws SdpException;
121:
122: /** Sets a phone number to contact for further information about the session. This
123: * corresponds to the p= field of the SDP data.
124: * @param phones phone - the phone number.
125: * @throws SdpException if the vector is null
126: */
127: public void setPhones(Vector phones) throws SdpException;
128:
129: /** Returns a TimeField indicating the start, stop, repetition and time zone
130: * information of the
131: * session. This corresponds to the t= field of the SDP data.
132: * @param create boolean to set
133: * @throws SdpException
134: * @return the Time Field.
135: */
136: public Vector getTimeDescriptions(boolean create)
137: throws SdpException;
138:
139: /** Sets a TimeField indicating the start, stop, repetition and time zone
140: * information of the
141: * session. This corresponds to the t= field of the SDP data.
142: * @param times time - the TimeField.
143: * @throws SdpException if the vector is null
144: */
145: public void setTimeDescriptions(Vector times) throws SdpException;
146:
147: /** Returns the time zone adjustments for the Session
148: * @param create boolean to set
149: * @throws SdpException
150: * @return a Hashtable containing the zone adjustments, where the key is the
151: * Adjusted Time
152: * Zone and the value is the offset.
153: */
154: public Vector getZoneAdjustments(boolean create)
155: throws SdpException;
156:
157: /** Sets the time zone adjustment for the TimeField.
158: * @param zoneAdjustments zoneAdjustments - a Hashtable containing the zone
159: * adjustments, where the key
160: * is the Adjusted Time Zone and the value is the offset.
161: * @throws SdpException if the vector is null
162: */
163: public void setZoneAdjustments(Vector zoneAdjustments)
164: throws SdpException;
165:
166: /** Returns the connection information associated with this object. This may
167: * be null for SessionDescriptions if all Media objects have a connection
168: * object and may be null
169: * for Media objects if the corresponding session connection is non-null.
170: * @return connection
171: */
172: public Connection getConnection();
173:
174: /** Set the connection data for this entity.
175: * @param conn to set
176: * @throws SdpException if the parameter is null
177: */
178: public void setConnection(Connection conn) throws SdpException;
179:
180: /** Returns the Bandwidth of the specified type.
181: * @param create type - type of the Bandwidth to return
182: * @return the Bandwidth or null if undefined
183: */
184: public Vector getBandwidths(boolean create);
185:
186: /** set the value of the Bandwidth with the specified type.
187: * @param bandwidths to set
188: * @throws SdpException if the vector is null
189: */
190: public void setBandwidths(Vector bandwidths) throws SdpException;
191:
192: /** Returns the integer value of the specified bandwidth name.
193: * @param name name - the name of the bandwidth type
194: * @throws SdpParseException
195: * @return the value of the named bandwidth
196: */
197: public int getBandwidth(String name) throws SdpParseException;
198:
199: /** Sets the value of the specified bandwidth type.
200: * @param name name - the name of the bandwidth type.
201: * @param value value - the value of the named bandwidth type.
202: * @throws SdpException if the name is null
203: */
204: public void setBandwidth(String name, int value)
205: throws SdpException;
206:
207: /** Removes the specified bandwidth type.
208: * @param name name - the name of the bandwidth type
209: */
210: public void removeBandwidth(String name);
211:
212: /** Returns the key data.
213: * @return key
214: */
215: public Key getKey();
216:
217: /** Sets encryption key information. This consists of a method and an encryption key
218: * included inline.
219: * @param key key - the encryption key data; depending on method may be null
220: * @throws SdpException if the parameter is null
221: */
222: public void setKey(Key key) throws SdpException;
223:
224: /** Returns the value of the specified attribute.
225: * @param name name - the name of the attribute
226: * @throws SdpParseException
227: * @return the value of the named attribute
228: */
229: public String getAttribute(String name) throws SdpParseException;
230:
231: /** Returns the set of attributes for this Description as a Vector of Attribute
232: * objects in the
233: * order they were parsed.
234: * @param create create - specifies whether to return null or a new empty
235: * Vector in case no
236: * attributes exists for this Description
237: * @return attributes for this Description
238: */
239: public Vector getAttributes(boolean create);
240:
241: /** Removes the attribute specified by the value parameter.
242: * @param name name - the name of the attribute
243: */
244: public void removeAttribute(String name);
245:
246: /** Sets the value of the specified attribute.
247: * @param name name - the name of the attribute.
248: * @param value value - the value of the named attribute.
249: * @throws SdpException if the name or the value is null
250: */
251: public void setAttribute(String name, String value)
252: throws SdpException;
253:
254: /** Adds the specified Attribute to this Description object.
255: * @param Attributes attribute - the attribute to add
256: * @throws SdpException if the vector is null
257: */
258: public void setAttributes(Vector Attributes) throws SdpException;
259:
260: /** Adds a MediaDescription to the session description. These correspond to the m=
261: * fields of the SDP data.
262: * @param create boolean to set
263: * @throws SdpException
264: * @return media - the field to add.
265: */
266: public Vector getMediaDescriptions(boolean create)
267: throws SdpException;
268:
269: /** Removes all MediaDescriptions from the session description.
270: * @param mediaDescriptions to set
271: * @throws SdpException if the parameter is null
272: */
273: public void setMediaDescriptions(Vector mediaDescriptions)
274: throws SdpException;
275: }
|