diff options
author | Chia-chi Yeh <chiachi@android.com> | 2010-09-23 17:14:44 +0800 |
---|---|---|
committer | Chia-chi Yeh <chiachi@android.com> | 2010-09-23 17:14:44 +0800 |
commit | 2fea0dd4d93ae38af69622213b7904d1c213a5ce (patch) | |
tree | e2bf003aea35be5ba1b98dc6c6a1a7d61ed20d15 | |
parent | dd6c3d1b961f3d1f19632070344f65596645561b (diff) | |
download | android_external_nist-sip-2fea0dd4d93ae38af69622213b7904d1c213a5ce.tar.gz android_external_nist-sip-2fea0dd4d93ae38af69622213b7904d1c213a5ce.tar.bz2 android_external_nist-sip-2fea0dd4d93ae38af69622213b7904d1c213a5ce.zip |
nist-sip: remove javax.sdp.
Change-Id: I20a65bee4e4397aa8ae23d435fb3ea6cceebe529
78 files changed, 6 insertions, 10811 deletions
diff --git a/java/gov/nist/core/HostNameParser.java b/java/gov/nist/core/HostNameParser.java index 31704fc..5feddd1 100644 --- a/java/gov/nist/core/HostNameParser.java +++ b/java/gov/nist/core/HostNameParser.java @@ -33,7 +33,9 @@ */ package gov.nist.core; -import gov.nist.javax.sdp.parser.Lexer; +// BEGIN android-deleted +//import gov.nist.javax.sdp.parser.Lexer; +// END android-deleted import java.text.ParseException; @@ -46,6 +48,9 @@ import java.text.ParseException; */ public class HostNameParser extends ParserCore { +// BEGIN android-added + private static LexerCore Lexer; +// END android-added /** * Determines whether or not we should tolerate and strip address scope diff --git a/java/gov/nist/javax/sdp/MediaDescriptionImpl.java b/java/gov/nist/javax/sdp/MediaDescriptionImpl.java deleted file mode 100644 index 553bf5e..0000000 --- a/java/gov/nist/javax/sdp/MediaDescriptionImpl.java +++ /dev/null @@ -1,763 +0,0 @@ -/* - * Conditions Of Use - * - * This software was developed by employees of the National Institute of - * Standards and Technology (NIST), an agency of the Federal Government. - * Pursuant to title 15 Untied States Code Section 105, works of NIST - * employees are not subject to copyright protection in the United States - * and are considered to be in the public domain. As a result, a formal - * license is not needed to use the software. - * - * This software is provided by NIST as a service and is expressly - * provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED - * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT - * AND DATA ACCURACY. NIST does not warrant or make any representations - * regarding the use of the software or the results thereof, including but - * not limited to the correctness, accuracy, reliability or usefulness of - * the software. - * - * Permission to use this software is contingent upon your acceptance - * of the terms of this agreement - * - * . - * - */ -package gov.nist.javax.sdp; - -import javax.sdp.*; -import gov.nist.javax.sdp.fields.*; -import java.util.*; -import gov.nist.core.*; - -/* - * Includes code contributed by - * Miguel Freitas (IT) PTInovacao -- modifications for IMS. - */ - -/** - * Fieldementation of Media Description interface. - * - * @version JSR141-PUBLIC-REVIEW (subject to change). - * - * @author Olivier Deruelle <deruelle@antd.nist.gov> - * @author M. Ranganathan <br/> - * - * - */ -public class MediaDescriptionImpl implements javax.sdp.MediaDescription { - - protected MediaField mediaField; - - protected InformationField informationField; - - protected ConnectionField connectionField; - - protected Vector bandwidthFields; - - protected KeyField keyField; - - protected Vector attributeFields; - - /** - * Encode to a canonical form. - * - * @since v1.0 - */ - public String encode() { - StringBuffer retval = new StringBuffer(); - - if (mediaField != null) - retval.append(mediaField.encode()); - - if (informationField != null) - retval.append(informationField.encode()); - - if (connectionField != null) - retval.append(connectionField.encode()); - - if (bandwidthFields != null) { - for (int i = 0; i < bandwidthFields.size(); i++) { - - // issued by Miguel Freitas (IT) PTInovacao - retval.append(((SDPField) bandwidthFields.elementAt(i)) - .encode()); - - /* - * original code BandwidthField bandwidthField = - * (BandwidthField) bandwidthFields.elementAt(i); - * retval.append(bandwidthField.encode()); - */ - // end // - } - if (preconditionFields != null) { - int precondSize = preconditionFields.getPreconditionSize(); - for (int i = 0; i < precondSize; i++) { - retval.append(((SDPField) preconditionFields - .getPreconditions().elementAt(i)).encode()); - } - } - } - - if (keyField != null) - retval.append(keyField.encode()); - - if (attributeFields != null) { - for (int i = 0; i < attributeFields.size(); i++) - retval.append(((SDPField) attributeFields.elementAt(i)) - .encode()); - } - - return retval.toString(); - } - - public String toString() { - return this.encode(); - } - - public MediaDescriptionImpl() { - this.bandwidthFields = new Vector(); - this.attributeFields = new Vector(); - - // issued by Miguel Freitas (AV) PTInovacao - this.preconditionFields = new PreconditionFields(); - } - - public MediaField getMediaField() { - return mediaField; - } - - public InformationField getInformationField() { - return informationField; - } - - public ConnectionField getConnectionField() { - return connectionField; - } - - public KeyField getKeyField() { - return keyField; - } - - public Vector getAttributeFields() { - return attributeFields; - } - - /** - * Set the mediaField member - */ - public void setMediaField(MediaField m) { - mediaField = m; - } - - /** - * Set the informationField member - */ - public void setInformationField(InformationField i) { - informationField = i; - } - - /** - * Set the connectionField member - */ - public void setConnectionField(ConnectionField c) { - connectionField = c; - } - - /** - * Set the bandwidthField member - */ - public void addBandwidthField(BandwidthField b) { - bandwidthFields.add(b); - } - - /** - * Set the keyField member - */ - public void setKeyField(KeyField k) { - keyField = k; - } - - /** - * Set the attributeFields member - */ - public void setAttributeFields(Vector a) { - attributeFields = a; - } - - /** - * Return the Media field of the description. - * - * @return the Media field of the description. - */ - public Media getMedia() { - return mediaField; - - } - - // issued by Miguel Freitas // - public void addAttribute(AttributeField af) { - // protected void addAttribute(AttributeField af) { - // end // - this.attributeFields.add(af); - } - - protected boolean hasAttribute(String name) { - for (int i = 0; i < this.attributeFields.size(); i++) { - AttributeField af = (AttributeField) this.attributeFields - .elementAt(i); - if (af.getAttribute().getName().equals(name)) - return true; - } - return false; - } - - /** - * Set the Media field of the description. - * - * @param media - * to set - * @throws SdpException - * if the media field is null - */ - public void setMedia(Media media) throws SdpException { - if (media == null) - throw new SdpException("The media is null"); - if (media instanceof MediaField) { - mediaField = (MediaField) media; - } else - throw new SdpException("A mediaField parameter is required"); - } - - /** - * Returns value of the info field (i=) of this object. - * - * @return value of the info field (i=) of this object. - */ - public Info getInfo() { - InformationField informationField = getInformationField(); - if (informationField == null) - return null; - else { - return informationField; - } - } - - /** - * Sets the i= field of this object. - * - * @param i - * to set - * @throws SdpException - * if the info is null - */ - public void setInfo(Info i) throws SdpException { - if (i == null) - throw new SdpException("The info is null"); - if (i instanceof InformationField) { - this.informationField = (InformationField) i; - } else - throw new SdpException("A informationField parameter is required"); - } - - /** - * Returns the connection information associated with this object. This may - * be null for SessionDescriptions if all Media objects have a connection - * object and may be null for Media objects if the corresponding session - * connection is non-null. - * - * @return connection - */ - public Connection getConnection() { - - return connectionField; - - } - - /** - * Set the connection data for this entity - * - * @param conn - * to set - * @throws SdpException - * if the connexion is null - */ - public void setConnection(Connection conn) throws SdpException { - if (conn == null) - throw new SdpException("The conn is null"); - if (conn instanceof ConnectionField) { - connectionField = (ConnectionField) conn; - - } else - throw new SdpException("bad implementation"); - } - - /** - * Returns the Bandwidth of the specified type. - * - * @param create - * type of the Bandwidth to return - * @return the Bandwidth or null if undefined - */ - - public Vector getBandwidths(boolean create) { - return bandwidthFields; - } - - /** - * set the value of the Bandwidth with the specified type - * - * @param bandwidths - * type of the Bandwidth object whose value is requested - * @throws SdpException - * if vector is null - */ - public void setBandwidths(Vector bandwidths) throws SdpException { - if (bandwidths == null) - throw new SdpException("The vector bandwidths is null"); - this.bandwidthFields = bandwidths; - } - - /** - * Returns the integer value of the specified bandwidth name. - * - * @param name - * the name of the bandwidth type. - * @throws SdpParseException - * @return the value of the named bandwidth - */ - public int getBandwidth(String name) throws SdpParseException { - - if (name == null) - throw new NullPointerException("null parameter"); - if (bandwidthFields == null) - return -1; - else { - for (int i = 0; i < bandwidthFields.size(); i++) { - BandwidthField bandwidthField = (BandwidthField) bandwidthFields - .elementAt(i); - String type = bandwidthField.getBwtype(); - if (type != null && type.equals(name)) - return bandwidthField.getBandwidth(); - } - return -1; - } - } - - /** - * Sets the value of the specified bandwidth type. - * - * @param name - * the name of the bandwidth type. - * @param value - * the value of the named bandwidth type. - * @throws SdpException - * if the name is null - */ - public void setBandwidth(String name, int value) throws SdpException { - if (name == null) - throw new SdpException("The name is null"); - else { - int i = 0; // issued by Miguel Freitas (IT) PTInovacao - for (i = 0; i < bandwidthFields.size(); i++) { - BandwidthField bandwidthField = (BandwidthField) this.bandwidthFields - .elementAt(i); - String type = bandwidthField.getBwtype(); - if (type != null && type.equals(name)) { - bandwidthField.setBandwidth(value); - - break; // issued by Miguel Freitas (IT) PTInovacao - } - } - - // issued by Miguel Freitas (IT) PTInovacao - if (i == this.bandwidthFields.size()) { - BandwidthField bandwidthField = new BandwidthField(); - bandwidthField.setType(name); - bandwidthField.setValue(value); - this.bandwidthFields.add(bandwidthField); - } - // end // - } - } - - /** - * Removes the specified bandwidth type. - * - * @param name - * the name of the bandwidth type. - */ - public void removeBandwidth(String name) { - if (name == null) { - throw new NullPointerException("null bandwidth type"); - } else { - int i = 0; - for (i = 0; i < bandwidthFields.size(); i++) { - BandwidthField bandwidthField = (BandwidthField) bandwidthFields - .elementAt(i); - String type = bandwidthField.getBwtype(); - if (type != null && type.equals(name)) - break; - - } - if (i < bandwidthFields.size()) - bandwidthFields.removeElementAt(i); - } - } - - /** - * Returns the key data. - * - * @return the key data. - */ - public Key getKey() { - if (keyField == null) - return null; - else { - return keyField; - } - } - - /** - * Sets encryption key information. This consists of a method and an - * encryption key included inline. - * - * @param key - * the encryption key data; depending on method may be null - * @throws SdpException - * if the key is null - */ - public void setKey(Key key) throws SdpException { - if (key == null) - throw new SdpException("The key is null"); - if (key instanceof KeyField) { - KeyField keyField = (KeyField) key; - setKeyField(keyField); - } else - throw new SdpException("A keyField parameter is required"); - } - - /** - * Returns the set of attributes for this Description as a Vector of - * Attribute objects in the order they were parsed. - * - * @param create - * specifies whether to return null or a new empty Vector in case - * no attributes exists for this Description - * @return attributes for this Description - */ - public Vector getAttributes(boolean create) { - return attributeFields; - } - - /** - * Adds the specified Attribute to this Description object. - * - * @param attributes -- - * the attribute to add - * @throws SdpException -- - * if the attributes is null - */ - public void setAttributes(Vector attributes) throws SdpException { - this.attributeFields = attributes; - } - - /** - * Returns the value of the specified attribute. - * - * @param name - * the name of the attribute. - * @throws SdpParseException - * @return the value of the named attribute - */ - public String getAttribute(String name) throws SdpParseException { - if (name != null) { - for (int i = 0; i < this.attributeFields.size(); i++) { - AttributeField af = (AttributeField) this.attributeFields - .elementAt(i); - if (name.equals(af.getAttribute().getName())) - return (String) af.getAttribute().getValueAsObject(); - } - return null; - } else - throw new NullPointerException("null arg!"); - } - - /** - * Sets the value of the specified attribute - * - * @param name - * the name of the attribute. - * @param value - * the value of the named attribute. - * @throws SdpException - * if the parameters are null - */ - public void setAttribute(String name, String value) throws SdpException { - if (name == null) - throw new SdpException("The parameters are null"); - else { - - int i = 0; - for (i = 0; i < this.attributeFields.size(); i++) { - AttributeField af = (AttributeField) this.attributeFields - .elementAt(i); - if (af.getAttribute().getName().equals(name)) { - NameValue nv = af.getAttribute(); - nv.setValueAsObject(value); - break; - } - - } - - if (i == this.attributeFields.size()) { - AttributeField af = new AttributeField(); - NameValue nv = new NameValue(name, value); - af.setAttribute(nv); - // Bug fix by Emil Ivov. - this.attributeFields.add(af); - } - - } - } - - public void setDuplexity(String duplexity) { - if ( duplexity == null ) throw new NullPointerException("Null arg"); - int i = 0; - for (i = 0; i < this.attributeFields.size(); i++) { - AttributeField af = (AttributeField) this.attributeFields - .elementAt(i); - if (af.getAttribute().getName().equalsIgnoreCase("sendrecv") || - af.getAttribute().getName().equalsIgnoreCase("recvonly") || - af.getAttribute().getName().equalsIgnoreCase("sendonly") || - af.getAttribute().getName().equalsIgnoreCase("inactive")) { - NameValue nv = new NameValue(duplexity, null); - af.setAttribute(nv); - return; - } - - } - - if (i == this.attributeFields.size()) { - AttributeField af = new AttributeField(); - NameValue nv = new NameValue(duplexity, null); - af.setAttribute(nv); - // Bug fix by Emil Ivov. - this.attributeFields.add(af); - } - - - } - - /** - * Removes the attribute specified by the value parameter. - * - * @param name - * the name of the attribute. - */ - public void removeAttribute(String name) { - if (name == null) - throw new NullPointerException("null arg!"); - if (name != null) { - int i = 0; - for (i = 0; i < this.attributeFields.size(); i++) { - AttributeField af = (AttributeField) this.attributeFields - .elementAt(i); - if (af.getAttribute().getName().equals(name)) - break; - } - if (i < attributeFields.size()) - attributeFields.removeElementAt(i); - - } - } - - /** - * Returns a Vector containing a string indicating the MIME type for each of - * the codecs in this description. - * - * A MIME value is computed for each codec in the media description. - * - * The MIME type is computed in the following fashion: The type is the - * mediaType from the media field. The subType is determined by the - * protocol. - * - * The result is computed as the string of the form: - * - * type + '/' + subType - * - * The subType portion is computed in the following fashion. RTP/AVP the - * subType is returned as the codec name. This will either be extracted from - * the rtpmap attribute or computed. other the protocol is returned as the - * subType. - * - * If the protocol is RTP/AVP and the rtpmap attribute for a codec is - * absent, then the codec name will be computed in the following fashion. - * String indexed in table SdpConstants.avpTypeNames if the value is an int - * greater than or equal to 0 and less than AVP_DEFINED_STATIC_MAX, and has - * been assigned a value. SdpConstant.RESERVED if the value is an int - * greater than or equal to 0 and less than AVP_DEFINED_STATIC_MAX, and has - * not been assigned a value. SdpConstant.UNASSIGNED An int greater than or - * equal to AVP_DEFINED_STATIC_MAX and less than AVP_DYNAMIC_MIN - currently - * unassigned. SdpConstant.DYNAMIC Any int less than 0 or greater than or - * equal to AVP_DYNAMIC_MIN - * - * @throws SdpException - * if there is a problem extracting the parameters. - * @return a Vector containing a string indicating the MIME type for each of - * the codecs in this description - */ - public Vector getMimeTypes() throws SdpException { - MediaField mediaField = (MediaField) getMedia(); - String type = mediaField.getMediaType(); - String protocol = mediaField.getProtocol(); - Vector formats = mediaField.getMediaFormats(false); - - Vector v = new Vector(); - for (int i = 0; i < formats.size(); i++) { - String result = null; - if (protocol.equals("RTP/AVP")) { - if (getAttribute(SdpConstants.RTPMAP) != null) - result = type + "/" + protocol; - else { - - } - } else - result = type + "/" + protocol; - v.addElement(result); - } - return v; - } - - /** - * Returns a Vector containing a string of parameters for each of the codecs - * in this description. - * - * A parameter string is computed for each codec. - * - * The parameter string is computed in the following fashion. - * - * The rate is extracted from the rtpmap or static data. - * - * The number of channels is extracted from the rtpmap or static data. - * - * The ptime is extracted from the ptime attribute. - * - * The maxptime is extracted from the maxptime attribute. - * - * Any additional parameters are extracted from the ftmp attribute. - * - * @throws SdpException - * if there is a problem extracting the parameters. - * @return a Vector containing a string of parameters for each of the codecs - * in this description. - */ - public Vector getMimeParameters() throws SdpException { - String rate = getAttribute("rate"); - String ptime = getAttribute("ptime"); - String maxptime = getAttribute("maxptime"); - String ftmp = getAttribute("ftmp"); - Vector result = new Vector(); - result.addElement(rate); - result.addElement(ptime); - result.addElement(maxptime); - result.addElement(ftmp); - return result; - } - - /** - * Adds dynamic media types to the description. - * - * @param payloadNames - * a Vector of String - each one the name of a dynamic payload to - * be added (usually an integer larger than - * SdpConstants.AVP_DYNAMIC_MIN). - * @param payloadValues - * a Vector of String - each contains the value describing the - * correlated dynamic payloads to be added - * @throws SdpException - * if either vector is null or empty. if the vector sizes are - * unequal. - */ - public void addDynamicPayloads(Vector payloadNames, Vector payloadValues) - throws SdpException { - - if (payloadNames == null || payloadValues == null) - throw new SdpException(" The vectors are null"); - else { - if (payloadNames.isEmpty() || payloadValues.isEmpty()) - throw new SdpException(" The vectors are empty"); - else { - if (payloadNames.size() != payloadValues.size()) - throw new SdpException(" The vector sizes are unequal"); - else { - for (int i = 0; i < payloadNames.size(); i++) { - String name = (String) payloadNames.elementAt(i); - String value = (String) payloadValues.elementAt(i); - setAttribute(name, value); - } - } - } - } - } - - // ///////////////////////////////////////////////////////////////// - // Precondition Mechanism - // based in 3GPP TS 24.229 and precondition mechanism (RFC 3312) - // issued by Miguel Freitas (IT) PTinovacao - // ///////////////////////////////////////////////////////////////// - - /** - * Precondition Mechanism - precondition fields for the media description - */ - // Precondition Attribute Fields - protected PreconditionFields preconditionFields; - - /** - * <p> - * Set the Media Description's Precondition Fields - * </p> - * <p> - * issued by Miguel Freitas (IT) PTInovacao - * </p> - * - * @param precondition - * Vector containing PreconditionFields - * @throws SdpException - */ - public void setPreconditionFields(Vector precondition) throws SdpException { - this.preconditionFields.setPreconditions(precondition); - } - - /** - * <p> - * Set the Media Description's Precondition Fields - * </p> - * <p> - * issued by Miguel Freitas (IT) PTInovacao - * </p> - * - * @param precondition - * PreconditionFields parameter - */ - public void setPreconditions(PreconditionFields precondition) { - this.preconditionFields = precondition; - } - - /** - * <p> - * Get attribute fields of segmented precondition - * </p> - * <p> - * issued by Miguel Freitas (IT) PTInovacao - * </p> - * - * @return Vector of attribute fields (segmented precondition) - */ - public Vector getPreconditionFields() { - return this.preconditionFields.getPreconditions(); - } - - // end // - -} diff --git a/java/gov/nist/javax/sdp/SdpEncoderImpl.java b/java/gov/nist/javax/sdp/SdpEncoderImpl.java deleted file mode 100644 index 436514f..0000000 --- a/java/gov/nist/javax/sdp/SdpEncoderImpl.java +++ /dev/null @@ -1,118 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -/* - * SdpEncoderImpl.java - * - * Created on January 14, 2002, 11:40 AM - */ - -package gov.nist.javax.sdp; -import javax.sdp.*; -import java.io.*; - -/** Implementation of SDP encoder. -* -*@version JSR141-PUBLIC-REVIEW (Subject to change). -* -*@author M. Ranganathan <br/> -* -* -* -*/ -public class SdpEncoderImpl { - - /** Creates new SdpEncoderImpl */ - public SdpEncoderImpl() { - } - - /** Specifies the character set to be used to display the session name and - * information data. By default, the ISO-10646 - * character set in UTF-8 encoding is used. If a more compact representation - * is required, other character sets may be used - * such as ISO-8859-1 for Northern European languages. - * @param enc enc - name of character encoding to use for session name and - * information data - * @throws UnsupportedEncodingException if the named encoding is not supported - */ - public void setEncoding(String enc) throws UnsupportedEncodingException { - throw new UnsupportedEncodingException("Method not supported"); - } - - /** Specifies whether to try to write "typed-time" fields instead of raw integer - * values. This - * makes the session description more readable but may have an adverse effect on - * serialization time. - * - * Ordinarily time values are given in numbers of seconds, but for readability - * they may be - * specified using logical units. From RFC 2327: - * - * To make announcements more compact, times may also be given in units of - * days, hours or minutes. The syntax for these is a number immediately - * followed by a single case-sensitive character. Fractional units are not - * allowed - a smaller unit should be used instead. The following unit - * specification characters are allowed: - * - * d - days (86400 seconds) - * h - minutes (3600 seconds) - * m - minutes (60 seconds) - * s - seconds (allowed for completeness but not recommended) - * - * @param flag if true this Outputter should emit "typed" time specs in preference to - * untyped times. - */ - public void setTypedTime(boolean flag) { - - } - - /** Specifies whether to generate "a=rtpmap:" attributes for static RTP/AVP format strings. - * This is recommended but makes messages bigger. The default is not to write such - * attributes. - * @param flag if true "a=rtpmap:" attributes are generated for all "RTP/AVP" formats - */ - public void setRtpmapAttribute(boolean flag) { - - } - - /** Write the specified SessionDescription to the output stream using the current - * settings. - * @param sd SessionDescription to serialize - * @param out OutputStream to write serialized SessionDescription to - * @throws IOException - */ - public void output(SessionDescription sd, OutputStream out) - throws IOException { - if (out instanceof ObjectOutputStream) { - ObjectOutputStream output = (ObjectOutputStream) out; - if (sd != null) - output.writeObject(sd); - else - throw new IOException("The parameter is null"); - } else - throw new IOException("The output stream has to be an instance of ObjectOutputStream"); - } - -} diff --git a/java/gov/nist/javax/sdp/SessionDescriptionImpl.java b/java/gov/nist/javax/sdp/SessionDescriptionImpl.java deleted file mode 100644 index 9c92eeb..0000000 --- a/java/gov/nist/javax/sdp/SessionDescriptionImpl.java +++ /dev/null @@ -1,1092 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -/* - * SessionDescriptionImpl.java - * - * Created on January 10, 2002, 3:11 PM - */ -package gov.nist.javax.sdp; - -import java.util.*; -import javax.sdp.*; - -import gov.nist.javax.sdp.fields.*; - -import java.text.ParseException; - -/** - * Implementation of the SessionDescription interface. - * - * @version JSR141-PUBLIC-REVIEW - * - * - * @author Olivier Deruelle - * @author M. Ranganathan <br/> - * - * - * - */ -public class SessionDescriptionImpl implements SessionDescription { - private TimeDescriptionImpl currentTimeDescription; - - private MediaDescriptionImpl currentMediaDescription; - - protected ProtoVersionField versionImpl; - - protected OriginField originImpl; - - protected SessionNameField sessionNameImpl; - - protected InformationField infoImpl; - - protected URIField uriImpl; - - protected ConnectionField connectionImpl; - - protected KeyField keyImpl; - - protected Vector timeDescriptions; - - protected Vector mediaDescriptions; - - protected Vector zoneAdjustments; - - protected Vector emailList; - - protected Vector phoneList; - - protected Vector bandwidthList; - - protected Vector attributesList; - - /** Creates new SessionDescriptionImpl */ - public SessionDescriptionImpl() { - } - - /** - * Copy constructor, creates a deep copy of another SessionDescription. - * - * @param otherSessionDescription - the SessionDescription to copy from. - * @throws SdpException - if there is a problem constructing the SessionDescription. - */ - public SessionDescriptionImpl(SessionDescription otherSessionDescription) - throws SdpException - { - // If the other session description is null there's nothing to initialize - if (otherSessionDescription == null) return; - - // OK to clone the version field, no deep copy required - Version otherVersion = otherSessionDescription.getVersion(); - if (otherVersion != null) { - this.setVersion((Version) otherVersion.clone()); - } - - // OK to clone the origin field, class already does a deep copy - Origin otherOrigin = otherSessionDescription.getOrigin(); - if (otherOrigin != null) { - this.setOrigin((Origin) otherOrigin.clone()); - } - - // OK to clone the session name, no deep copy required - SessionName otherSessionName = otherSessionDescription.getSessionName(); - if (otherSessionName != null) { - this.setSessionName((SessionName) otherSessionName.clone()); - } - - // OK to clone the information field, just a string, no deep copy required - Info otherInfo = otherSessionDescription.getInfo(); - if (otherInfo != null) { - this.setInfo((Info) otherInfo.clone()); - } - - // URI field requires deep copy - URIField otherUriField = (URIField) otherSessionDescription.getURI(); - if (otherUriField != null) { - URIField newUF = new URIField(); - newUF.setURI(otherUriField.toString()); - this.setURI(newUF); - } - - // OK to clone the connection field, class already does a deep copy - Connection otherConnection = (Connection) otherSessionDescription.getConnection(); - if (otherConnection != null) { - this.setConnection((Connection) otherConnection.clone()); - } - - // OK to clone the key field, just a couple of strings - Key otherKey = (Key) otherSessionDescription.getKey(); - if (otherKey != null) { - this.setKey((Key) otherKey.clone()); - } - - // Deep copy each vector, starting with time descriptions - Vector otherTimeDescriptions = otherSessionDescription.getTimeDescriptions(false); - if (otherTimeDescriptions != null) { - Vector newTDs = new Vector(); - Iterator itTimeDescriptions = otherTimeDescriptions.iterator(); - while (itTimeDescriptions.hasNext()) { - TimeDescriptionImpl otherTimeDescription = (TimeDescriptionImpl) itTimeDescriptions.next(); - if (otherTimeDescription != null) { - TimeField otherTimeField = (TimeField) otherTimeDescription.getTime().clone(); - TimeDescriptionImpl newTD = new TimeDescriptionImpl(otherTimeField); - Vector otherRepeatTimes = otherTimeDescription.getRepeatTimes(false); - if (otherRepeatTimes != null) { - Iterator itRepeatTimes = otherRepeatTimes.iterator(); - while (itRepeatTimes.hasNext()) { - RepeatField otherRepeatField = (RepeatField) itRepeatTimes.next(); - if (otherRepeatField != null) { - // RepeatField clone is a deep copy - RepeatField newRF = (RepeatField) otherRepeatField.clone(); - newTD.addRepeatField(newRF); - } - } - } - newTDs.add(newTD); - } - } - this.setTimeDescriptions(newTDs); - } - - // Deep copy the email list - Vector otherEmails = otherSessionDescription.getEmails(false); - if (otherEmails != null) { - Vector newEmails = new Vector(); - Iterator itEmails = otherEmails.iterator(); - while (itEmails.hasNext()) { - EmailField otherEmailField = (EmailField) itEmails.next(); - if (otherEmailField != null) { - // Email field clone is a deep copy - EmailField newEF = (EmailField) otherEmailField.clone(); - newEmails.add(newEF); - } - } - this.setEmails(newEmails); - } - - // Deep copy the phone list - Vector otherPhones = otherSessionDescription.getPhones(false); - if (otherPhones != null) { - Vector newPhones = new Vector(); - Iterator itPhones = otherPhones.iterator(); - while (itPhones.hasNext()) { - PhoneField otherPhoneField = (PhoneField) itPhones.next(); - if (otherPhoneField != null) { - // Phone field clone is a deep copy - PhoneField newPF = (PhoneField) otherPhoneField.clone(); - newPhones.add(newPF); - } - } - this.setPhones(newPhones); - } - - // Deep copy the zone adjustments list - Vector otherZAs = otherSessionDescription.getZoneAdjustments(false); - if (otherZAs != null) { - Vector newZAs = new Vector(); - Iterator itZAs = otherZAs.iterator(); - while (itZAs.hasNext()) { - ZoneField otherZoneField = (ZoneField) itZAs.next(); - if (otherZoneField != null) { - // Zone field clone is a deep copy - ZoneField newPF = (ZoneField) otherZoneField.clone(); - newZAs.add(newPF); - } - } - this.setZoneAdjustments(newZAs); - } - - // Deep copy the bandwidth list - Vector otherBandwidths = otherSessionDescription.getBandwidths(false); - if (otherBandwidths != null) { - Vector newBandwidths = new Vector(); - Iterator itBandwidths = otherBandwidths.iterator(); - while (itBandwidths.hasNext()) { - BandwidthField otherBandwidthField = (BandwidthField) itBandwidths.next(); - if (otherBandwidthField != null) { - // Bandwidth field clone() is a shallow copy but object is not deep - BandwidthField newBF = (BandwidthField) otherBandwidthField.clone(); - newBandwidths.add(newBF); - } - } - this.setBandwidths(newBandwidths); - } - - // Deep copy the attribute list - Vector otherAttributes = otherSessionDescription.getAttributes(false); - if (otherAttributes != null) { - Vector newAttributes = new Vector(); - Iterator itAttributes = otherAttributes.iterator(); - while (itAttributes.hasNext()) { - AttributeField otherAttributeField = (AttributeField) itAttributes.next(); - if (otherAttributeField != null) { - // Attribute field clone() makes a deep copy but be careful: it may use reflection to copy one of its members - AttributeField newBF = (AttributeField) otherAttributeField.clone(); - newAttributes.add(newBF); - } - } - this.setAttributes(newAttributes); - } - - // Deep copy the media descriptions - Vector otherMediaDescriptions = otherSessionDescription.getMediaDescriptions(false); - if (otherMediaDescriptions != null) { - Vector newMDs = new Vector(); - Iterator itMediaDescriptions = otherMediaDescriptions.iterator(); - while (itMediaDescriptions.hasNext()) { - MediaDescriptionImpl otherMediaDescription = (MediaDescriptionImpl) itMediaDescriptions.next(); - if (otherMediaDescription != null) { - MediaDescriptionImpl newMD = new MediaDescriptionImpl(); - - // Copy the media field - MediaField otherMediaField = otherMediaDescription.getMediaField(); - if (otherMediaField != null) { - // Media field clone() makes a shallow copy, so don't use clone() - MediaField newMF = new MediaField(); - newMF.setMedia(otherMediaField.getMedia()); - newMF.setPort(otherMediaField.getPort()); - newMF.setNports(otherMediaField.getNports()); - newMF.setProto(otherMediaField.getProto()); - Vector otherFormats = otherMediaField.getFormats(); - if (otherFormats != null) { - Vector newFormats = new Vector(); - Iterator itFormats = otherFormats.iterator(); - while (itFormats.hasNext()) { - Object otherFormat = itFormats.next(); - if (otherFormat != null) { - // Convert all format objects to strings in order to avoid reflection - newFormats.add(String.valueOf(otherFormat)); - } - } - newMF.setFormats(newFormats); - } - newMD.setMedia(newMF); - } - - // Copy the information field (it's a shallow object, ok to clone) - InformationField otherInfoField = otherMediaDescription.getInformationField(); - if (otherInfoField != null) { - newMD.setInformationField((InformationField) otherInfoField.clone()); - } - - // Copy the connection field. OK to use clone(), already does a deep copy. - ConnectionField otherConnectionField = otherMediaDescription.getConnectionField(); - if (otherConnectionField != null) { - newMD.setConnectionField((ConnectionField) otherConnectionField.clone()); - } - - // Copy the bandwidth fields - Vector otherBFs = otherMediaDescription.getBandwidths(false); - if (otherBFs != null) { - Vector newBFs = new Vector(); - Iterator itBFs = otherBFs.iterator(); - while (itBFs.hasNext()) { - BandwidthField otherBF = (BandwidthField) itBFs.next(); - if (otherBF != null) { - // BandwidthField is a shallow object, ok to use clone - newBFs.add((BandwidthField) otherBF.clone()); - } - } - newMD.setBandwidths(newBFs); - } - - // Copy the key field (shallow object) - KeyField otherKeyField = otherMediaDescription.getKeyField(); - if (otherKeyField != null) { - newMD.setKeyField((KeyField) otherKeyField.clone()); - } - - // Copy the attributes - Vector otherAFs = otherMediaDescription.getAttributeFields(); - if (otherAFs != null) { - Vector newAFs = new Vector(); - Iterator itAFs = otherAFs.iterator(); - while (itAFs.hasNext()) { - AttributeField otherAF = (AttributeField) itAFs.next(); - if (otherAF != null) { - // AttributeField clone() already makes a deep copy, but be careful. It will use reflection - // unless the attribute is a String or any other immutable object. - newAFs.add((AttributeField) otherAF.clone()); - } - } - newMD.setAttributeFields(newAFs); - } - newMDs.add(newMD); - } - } - this.setMediaDescriptions(newMDs); - } - } - - public void addField(SDPField sdpField) throws ParseException { - try { - if (sdpField instanceof ProtoVersionField) { - versionImpl = (ProtoVersionField) sdpField; - } else if (sdpField instanceof OriginField) { - originImpl = (OriginField) sdpField; - } else if (sdpField instanceof SessionNameField) { - sessionNameImpl = (SessionNameField) sdpField; - } else if (sdpField instanceof InformationField) { - if (currentMediaDescription != null) - currentMediaDescription - .setInformationField((InformationField) sdpField); - else - this.infoImpl = (InformationField) sdpField; - } else if (sdpField instanceof URIField) { - uriImpl = (URIField) sdpField; - } else if (sdpField instanceof ConnectionField) { - if (currentMediaDescription != null) - currentMediaDescription - .setConnectionField((ConnectionField) sdpField); - else - this.connectionImpl = (ConnectionField) sdpField; - } else if (sdpField instanceof KeyField) { - if (currentMediaDescription != null) - currentMediaDescription.setKey((KeyField) sdpField); - else - keyImpl = (KeyField) sdpField; - } else if (sdpField instanceof EmailField) { - getEmails(true).add(sdpField); - } else if (sdpField instanceof PhoneField) { - getPhones(true).add(sdpField); - } else if (sdpField instanceof TimeField) { - currentTimeDescription = new TimeDescriptionImpl( - (TimeField) sdpField); - getTimeDescriptions(true).add(currentTimeDescription); - } else if (sdpField instanceof RepeatField) { - if (currentTimeDescription == null) { - throw new ParseException("no time specified", 0); - } else { - currentTimeDescription - .addRepeatField((RepeatField) sdpField); - } - } else if (sdpField instanceof ZoneField) { - getZoneAdjustments(true).add(sdpField); - } else if (sdpField instanceof BandwidthField) { - if (currentMediaDescription != null) - currentMediaDescription - .addBandwidthField((BandwidthField) sdpField); - else - getBandwidths(true).add(sdpField); - } else if (sdpField instanceof AttributeField) { - if (currentMediaDescription != null) { - AttributeField af = (AttributeField) sdpField; - String s = af.getName(); - // Bug report from Andreas Bystrom - currentMediaDescription - .addAttribute((AttributeField) sdpField); - } else { - getAttributes(true).add(sdpField); - } - - } else if (sdpField instanceof MediaField) { - currentMediaDescription = new MediaDescriptionImpl(); - getMediaDescriptions(true).add(currentMediaDescription); - // Bug report from Andreas Bystrom - currentMediaDescription.setMediaField((MediaField) sdpField); - } - } catch (SdpException ex) { - throw new ParseException(sdpField.encode(), 0); - } - } - - /** - * Creates and returns a deep copy of this object - * - * @return a clone of this instance. - * @exception CloneNotSupportedException if this instance cannot be cloned. - */ - public Object clone() throws CloneNotSupportedException { - try { - return new SessionDescriptionImpl(this); - } catch (SdpException e) { - // throw this exception to indicate that this instance cannot be cloned - throw new CloneNotSupportedException(); - } - } - - /** - * Returns the version of SDP in use. This corresponds to the v= field of - * the SDP data. - * - * @return the integer version (-1 if not set). - */ - public Version getVersion() { - return versionImpl; - } - - /** - * Sets the version of SDP in use. This corresponds to the v= field of the - * SDP data. - * - * @param v - * version - the integer version. - * @throws SdpException - * if the version is null - */ - public void setVersion(Version v) throws SdpException { - if (v == null) - throw new SdpException("The parameter is null"); - if (v instanceof ProtoVersionField) { - versionImpl = (ProtoVersionField) v; - } else - throw new SdpException( - "The parameter must be an instance of VersionField"); - } - - /** - * Returns information about the originator of the session. This corresponds - * to the o= field of the SDP data. - * - * @return the originator data. - */ - public Origin getOrigin() { - return originImpl; - } - - /** - * Sets information about the originator of the session. This corresponds to - * the o= field of the SDP data. - * - * @param origin - * origin - the originator data. - * @throws SdpException - * if the origin is null - */ - public void setOrigin(Origin origin) throws SdpException { - if (origin == null) - throw new SdpException("The parameter is null"); - if (origin instanceof OriginField) { - OriginField o = (OriginField) origin; - originImpl = o; - } else - throw new SdpException( - "The parameter must be an instance of OriginField"); - } - - /** - * Returns the name of the session. This corresponds to the s= field of the - * SDP data. - * - * @return the session name. - */ - public SessionName getSessionName() { - return sessionNameImpl; - } - - /** - * Sets the name of the session. This corresponds to the s= field of the SDP - * data. - * - * @param sessionName - * name - the session name. - * @throws SdpException - * if the sessionName is null - */ - public void setSessionName(SessionName sessionName) throws SdpException { - if (sessionName == null) - throw new SdpException("The parameter is null"); - if (sessionName instanceof SessionNameField) { - SessionNameField s = (SessionNameField) sessionName; - sessionNameImpl = s; - } else - throw new SdpException( - "The parameter must be an instance of SessionNameField"); - } - - /** - * Returns value of the info field (i=) of this object. - * - * @return info - */ - public Info getInfo() { - return infoImpl; - } - - /** - * Sets the i= field of this object. - * - * @param i - * s - new i= value; if null removes the field - * @throws SdpException - * if the info is null - */ - public void setInfo(Info i) throws SdpException { - if (i == null) - throw new SdpException("The parameter is null"); - if (i instanceof InformationField) { - InformationField info = (InformationField) i; - infoImpl = info; - } else - throw new SdpException( - "The parameter must be an instance of InformationField"); - } - - /** - * Returns a uri to the location of more details about the session. This - * corresponds to the u= field of the SDP data. - * - * @return the uri. - */ - public URI getURI() { - return uriImpl; - } - - /** - * Sets the uri to the location of more details about the session. This - * corresponds to the u= field of the SDP data. - * - * @param uri - * uri - the uri. - * @throws SdpException - * if the uri is null - */ - public void setURI(URI uri) throws SdpException { - if (uri == null) - throw new SdpException("The parameter is null"); - if (uri instanceof URIField) { - URIField u = (URIField) uri; - uriImpl = u; - } else - throw new SdpException( - "The parameter must be an instance of URIField"); - } - - /** - * Returns an email address to contact for further information about the - * session. This corresponds to the e= field of the SDP data. - * - * @param create - * boolean to set - * @throws SdpParseException - * @return the email address. - */ - public Vector getEmails(boolean create) throws SdpParseException { - if (emailList == null) { - if (create) - emailList = new Vector(); - } - return emailList; - } - - /** - * Sets a an email address to contact for further information about the - * session. This corresponds to the e= field of the SDP data. - * - * @param emails - * email - the email address. - * @throws SdpException - * if the vector is null - */ - public void setEmails(Vector emails) throws SdpException { - if (emails == null) - throw new SdpException("The parameter is null"); - else - emailList = emails; - } - - /** - * Returns a phone number to contact for further information about the - * session. This corresponds to the p= field of the SDP data. - * - * @param create - * boolean to set - * @throws SdpException - * @return the phone number. - */ - public Vector getPhones(boolean create) throws SdpException { - if (phoneList == null) { - if (create) - phoneList = new Vector(); - } - return phoneList; - } - - /** - * Sets a phone number to contact for further information about the session. - * This corresponds to the p= field of the SDP data. - * - * @param phones - * phone - the phone number. - * @throws SdpException - * if the vector is null - */ - public void setPhones(Vector phones) throws SdpException { - if (phones == null) - throw new SdpException("The parameter is null"); - else - phoneList = phones; - } - - /** - * Returns a TimeField indicating the start, stop, repetition and time zone - * information of the session. This corresponds to the t= field of the SDP - * data. - * - * @param create - * boolean to set - * @throws SdpException - * @return the Time Field. - */ - public Vector getTimeDescriptions(boolean create) throws SdpException { - if (timeDescriptions == null) { - if (create) - timeDescriptions = new Vector(); - } - return timeDescriptions; - } - - /** - * Sets a TimeField indicating the start, stop, repetition and time zone - * information of the session. This corresponds to the t= field of the SDP - * data. - * - * @param times - * time - the TimeField. - * @throws SdpException - * if the vector is null - */ - public void setTimeDescriptions(Vector times) throws SdpException { - if (times == null) - throw new SdpException("The parameter is null"); - else { - timeDescriptions = times; - } - } - - /** - * Returns the time zone adjustments for the Session - * - * @param create - * boolean to set - * @throws SdpException - * @return a Hashtable containing the zone adjustments, where the key is the - * Adjusted Time Zone and the value is the offset. - */ - public Vector getZoneAdjustments(boolean create) throws SdpException { - if (zoneAdjustments == null) { - if (create) - zoneAdjustments = new Vector(); - } - return zoneAdjustments; - } - - /** - * Sets the time zone adjustment for the TimeField. - * - * @param zoneAdjustments - * zoneAdjustments - a Hashtable containing the zone adjustments, - * where the key is the Adjusted Time Zone and the value is the - * offset. - * @throws SdpException - * if the vector is null - */ - public void setZoneAdjustments(Vector zoneAdjustments) throws SdpException { - if (zoneAdjustments == null) - throw new SdpException("The parameter is null"); - else - this.zoneAdjustments = zoneAdjustments; - } - - /** - * Returns the connection information associated with this object. This may - * be null for SessionDescriptions if all Media objects have a connection - * object and may be null for Media objects if the corresponding session - * connection is non-null. - * - * @return connection - */ - public Connection getConnection() { - return connectionImpl; - } - - /** - * Set the connection data for this entity. - * - * @param conn - * to set - * @throws SdpException - * if the parameter is null - */ - public void setConnection(Connection conn) throws SdpException { - if (conn == null) - throw new SdpException("The parameter is null"); - if (conn instanceof ConnectionField) { - ConnectionField c = (ConnectionField) conn; - connectionImpl = c; - } else - throw new SdpException("Bad implementation class ConnectionField"); - } - - /** - * Returns the Bandwidth of the specified type. - * - * @param create - * type - type of the Bandwidth to return - * @return the Bandwidth or null if undefined - */ - public Vector getBandwidths(boolean create) { - if (bandwidthList == null) { - if (create) - bandwidthList = new Vector(); - } - return bandwidthList; - } - - /** - * set the value of the Bandwidth with the specified type. - * - * @param bandwidthList - * to set - * @throws SdpException - * if the vector is null - */ - public void setBandwidths(Vector bandwidthList) throws SdpException { - if (bandwidthList == null) - throw new SdpException("The parameter is null"); - else - this.bandwidthList = bandwidthList; - } - - /** - * Returns the integer value of the specified bandwidth name. - * - * @param name - * name - the name of the bandwidth type - * @throws SdpParseException - * @return the value of the named bandwidth - */ - public int getBandwidth(String name) throws SdpParseException { - if (name == null) - return -1; - else if (bandwidthList == null) - return -1; - for (int i = 0; i < bandwidthList.size(); i++) { - Object o = bandwidthList.elementAt(i); - if (o instanceof BandwidthField) { - BandwidthField b = (BandwidthField) o; - String type = b.getType(); - if (type != null) { - if (name.equals(type)) { - return b.getValue(); - } - } - } - } - return -1; - } - - /** - * Sets the value of the specified bandwidth type. - * - * @param name - * name - the name of the bandwidth type. - * @param value - * value - the value of the named bandwidth type. - * @throws SdpException - * if the name is null - */ - public void setBandwidth(String name, int value) throws SdpException { - if (name == null) - throw new SdpException("The parameter is null"); - else if (bandwidthList != null) { - for (int i = 0; i < bandwidthList.size(); i++) { - Object o = bandwidthList.elementAt(i); - if (o instanceof BandwidthField) { - BandwidthField b = (BandwidthField) o; - String type = b.getType(); - if (type != null) { - if (name.equals(type)) { - b.setValue(value); - } - } - } - } - } - } - - /** - * Removes the specified bandwidth type. - * - * @param name - * name - the name of the bandwidth type - */ - public void removeBandwidth(String name) { - if (name != null) - if (bandwidthList != null) { - for (int i = 0; i < bandwidthList.size(); i++) { - Object o = bandwidthList.elementAt(i); - if (o instanceof BandwidthField) { - BandwidthField b = (BandwidthField) o; - try { - String type = b.getType(); - if (type != null) { - if (name.equals(type)) { - bandwidthList.remove(b); - } - } - } catch (SdpParseException e) { - } - } - } - } - } - - /** - * Returns the key data. - * - * @return key - */ - public Key getKey() { - return keyImpl; - } - - /** - * Sets encryption key information. This consists of a method and an - * encryption key included inline. - * - * @param key - * key - the encryption key data; depending on method may be null - * @throws SdpException - * if the parameter is null - */ - public void setKey(Key key) throws SdpException { - if (key == null) - throw new SdpException("The parameter is null"); - if (key instanceof KeyField) { - KeyField k = (KeyField) key; - keyImpl = k; - } else - throw new SdpException( - "The parameter must be an instance of KeyField"); - } - - /** - * Returns the value of the specified attribute. - * - * @param name - * name - the name of the attribute - * @throws SdpParseException - * @return the value of the named attribute - */ - public String getAttribute(String name) throws SdpParseException { - if (name == null) - return null; - else if (attributesList == null) - return null; - for (int i = 0; i < attributesList.size(); i++) { - Object o = attributesList.elementAt(i); - if (o instanceof AttributeField) { - AttributeField a = (AttributeField) o; - String n = a.getName(); - if (n != null) { - if (name.equals(n)) { - return a.getValue(); - } - } - } - } - return null; - } - - /** - * Returns the set of attributes for this Description as a Vector of - * Attribute objects in the order they were parsed. - * - * @param create - * create - specifies whether to return null or a new empty - * Vector in case no attributes exists for this Description - * @return attributes for this Description - */ - public Vector getAttributes(boolean create) { - if (attributesList == null) { - if (create) - attributesList = new Vector(); - } - return attributesList; - } - - /** - * Removes the attribute specified by the value parameter. - * - * @param name - * name - the name of the attribute - */ - public void removeAttribute(String name) { - if (name != null) - if (attributesList != null) { - for (int i = 0; i < attributesList.size(); i++) { - Object o = attributesList.elementAt(i); - if (o instanceof AttributeField) { - AttributeField a = (AttributeField) o; - try { - String n = a.getName(); - if (n != null) { - if (name.equals(n)) { - attributesList.remove(a); - } - } - } catch (SdpParseException e) { - } - - } - } - } - } - - /** - * Sets the value of the specified attribute. - * - * @param name - * name - the name of the attribute. - * @param value - * value - the value of the named attribute. - * @throws SdpException - * if the name or the value is null - */ - public void setAttribute(String name, String value) throws SdpException { - if (name == null || value == null) - throw new SdpException("The parameter is null"); - else if (attributesList != null) { - for (int i = 0; i < attributesList.size(); i++) { - Object o = attributesList.elementAt(i); - if (o instanceof AttributeField) { - AttributeField a = (AttributeField) o; - String n = a.getName(); - if (n != null) { - if (name.equals(n)) { - a.setValue(value); - } - } - } - } - } - } - - /** - * Adds the specified Attribute to this Description object. - * - * @param attributes - the attribute to add - * @throws SdpException - * if the vector is null - */ - public void setAttributes(Vector attributes) throws SdpException { - if (attributes == null) - throw new SdpException("The parameter is null"); - else - attributesList = attributes; - } - - /** - * Adds a MediaDescription to the session description. These correspond to - * the m= fields of the SDP data. - * - * @param create - * boolean to set - * @throws SdpException - * @return media - the field to add. - */ - public Vector getMediaDescriptions(boolean create) throws SdpException { - if (mediaDescriptions == null) { - if (create) - mediaDescriptions = new Vector(); - } - return mediaDescriptions; - } - - /** - * Removes all MediaDescriptions from the session description. - * - * @param mediaDescriptions - * to set - * @throws SdpException - * if the parameter is null - */ - public void setMediaDescriptions(Vector mediaDescriptions) - throws SdpException { - if (mediaDescriptions == null) - throw new SdpException("The parameter is null"); - else - this.mediaDescriptions = mediaDescriptions; - } - - private String encodeVector(Vector vector) { - StringBuffer encBuff = new StringBuffer(); - - for (int i = 0; i < vector.size(); i++) - encBuff.append(vector.elementAt(i)); - - return encBuff.toString(); - } - - /** - * Returns the canonical string representation of the current - * SessionDescrption. Acknowledgement - this code was contributed by Emil - * Ivov. - * - * @return Returns the canonical string representation of the current - * SessionDescrption. - */ - - public String toString() { - StringBuffer encBuff = new StringBuffer(); - - // Encode single attributes - encBuff.append(getVersion() == null ? "" : getVersion().toString()); - encBuff.append(getOrigin() == null ? "" : getOrigin().toString()); - encBuff.append(getSessionName() == null ? "" : getSessionName() - .toString()); - encBuff.append(getInfo() == null ? "" : getInfo().toString()); - - // Encode attribute vectors - try { - encBuff.append(getURI() == null ? "" : getURI().toString()); - encBuff.append(getEmails(false) == null ? "" - : encodeVector(getEmails(false))); - encBuff.append(getPhones(false) == null ? "" - : encodeVector(getPhones(false))); - encBuff.append(getConnection() == null ? "" : getConnection() - .toString()); - encBuff.append(getBandwidths(false) == null ? "" - : encodeVector(getBandwidths(false))); - encBuff.append(getTimeDescriptions(false) == null ? "" - : encodeVector(getTimeDescriptions(false))); - encBuff.append(getZoneAdjustments(false) == null ? "" - : encodeVector(getZoneAdjustments(false))); - encBuff.append(getKey() == null ? "" : getKey().toString()); - encBuff.append(getAttributes(false) == null ? "" - : encodeVector(getAttributes(false))); - encBuff.append(getMediaDescriptions(false) == null ? "" - : encodeVector(getMediaDescriptions(false))); - // adds the final crlf - } catch (SdpException exc) { - // add exception handling if necessary - } - return encBuff.toString(); - } - -} - - diff --git a/java/gov/nist/javax/sdp/TimeDescriptionImpl.java b/java/gov/nist/javax/sdp/TimeDescriptionImpl.java deleted file mode 100644 index 882b71a..0000000 --- a/java/gov/nist/javax/sdp/TimeDescriptionImpl.java +++ /dev/null @@ -1,143 +0,0 @@ -/* - * Conditions Of Use - * - * This software was developed by employees of the National Institute of - * Standards and Technology (NIST), an agency of the Federal Government. - * Pursuant to title 15 Untied States Code Section 105, works of NIST - * employees are not subject to copyright protection in the United States - * and are considered to be in the public domain. As a result, a formal - * license is not needed to use the software. - * - * This software is provided by NIST as a service and is expressly - * provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED - * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT - * AND DATA ACCURACY. NIST does not warrant or make any representations - * regarding the use of the software or the results thereof, including but - * not limited to the correctness, accuracy, reliability or usefulness of - * the software. - * - * Permission to use this software is contingent upon your acceptance - * of the terms of this agreement - * - * . - * - */ -package gov.nist.javax.sdp; - -import gov.nist.javax.sdp.fields.*; -import javax.sdp.*; -import java.util.*; - -/** - * Implementation of Time Description - * - * @version 1.2 - * - * @author Olivier Deruelle - * @author M. Ranganathan <br/> - * - * - * - */ -public class TimeDescriptionImpl implements TimeDescription { - - private TimeField timeImpl; - - private Vector repeatList; - - /** Creates new TimeDescriptionImpl */ - public TimeDescriptionImpl() { - timeImpl = new TimeField(); - repeatList = new Vector(); - - } - - /** - * constructor - * - * @param timeField - * time field to create this descrition from - */ - public TimeDescriptionImpl(TimeField timeField) { - this.timeImpl = timeField; - repeatList = new Vector(); - } - - /** - * Returns the Time field. - * - * @return Time - */ - public Time getTime() { - return timeImpl; - } - - /** - * Sets the Time field. - * - * @param timeField - * Time to set - * @throws SdpException - * if the time is null - */ - public void setTime(Time timeField) throws SdpException { - if (timeField == null) { - throw new SdpException("The parameter is null"); - } else { - if (timeField instanceof TimeField) { - this.timeImpl = (TimeField) timeField; - } else - throw new SdpException( - "The parameter is not an instance of TimeField"); - } - } - - /** - * Returns the list of repeat times (r= fields) specified in the - * SessionDescription. - * - * @param create - * boolean to set - * @return Vector - */ - public Vector getRepeatTimes(boolean create) { - return this.repeatList; - } - - /** - * Returns the list of repeat times (r= fields) specified in the - * SessionDescription. - * - * @param repeatTimes - * Vector to set - * @throws SdpException - * if the parameter is null - */ - public void setRepeatTimes(Vector repeatTimes) throws SdpException { - this.repeatList = repeatTimes; - } - - /** - * Add a repeat field. - * - * @param repeatField -- - * repeat field to add. - */ - public void addRepeatField(RepeatField repeatField) { - if (repeatField == null) - throw new NullPointerException("null repeatField"); - this.repeatList.add(repeatField); - } - - public String toString() { - String retval = timeImpl.encode(); - for (int i = 0; i < this.repeatList.size(); i++) { - RepeatField repeatField = (RepeatField) this.repeatList - .elementAt(i); - retval += repeatField.encode(); - } - return retval; - } - -} diff --git a/java/gov/nist/javax/sdp/fields/AttributeField.java b/java/gov/nist/javax/sdp/fields/AttributeField.java deleted file mode 100644 index cb6d62d..0000000 --- a/java/gov/nist/javax/sdp/fields/AttributeField.java +++ /dev/null @@ -1,195 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -/******************************************************************************* -* Product of NIST/ITL Advanced Networking Technologies Division (ANTD). * -*******************************************************************************/ -package gov.nist.javax.sdp.fields; -import gov.nist.core.*; -import javax.sdp.*; - -/** -* Attribute Field. -* -*@version JSR141-PUBLIC-REVIEW (subject to change). -* -*@author Olivier Deruelle <deruelle@antd.nist.gov> -*@author M. Ranganathan <br/> -* -* -* -*/ -public class AttributeField extends SDPField implements javax.sdp.Attribute { - protected NameValue attribute; - - public NameValue getAttribute() { - return attribute; - } - - public AttributeField() { - super(ATTRIBUTE_FIELD); - } - /** - * Set the attribute member - */ - public void setAttribute(NameValue a) { - attribute = a; - attribute.setSeparator(Separators.COLON); - } - - /** - * Get the string encoded version of this object - * @since v1.0 - */ - public String encode() { - String encoded_string = ATTRIBUTE_FIELD; - if (attribute != null) - encoded_string += attribute.encode(); - return encoded_string + Separators.NEWLINE; - } - - public String toString() { - return this.encode(); - } - - /** Returns the name of this attribute - * @throws SdpParseException if the name is not well formatted. - * @return a String identity or null. - */ - public String getName() throws SdpParseException { - NameValue nameValue = getAttribute(); - if (nameValue == null) - return null; - else { - String name = nameValue.getName(); - if (name == null) - return null; - else - return name; - } - } - - /** Sets the id of this attribute. - * @param name the string name/id of the attribute. - * @throws SdpException if the name is null - */ - public void setName(String name) throws SdpException { - if (name == null) - throw new SdpException("The name is null"); - else { - NameValue nameValue = getAttribute(); - if (nameValue == null) - nameValue = new NameValue(); - nameValue.setName(name); - setAttribute(nameValue); - } - } - - /** Determines if this attribute has an associated value. - * @throws SdpParseException if the value is not well formatted. - * @return true if the attribute has a value. - */ - public boolean hasValue() throws SdpParseException { - NameValue nameValue = getAttribute(); - if (nameValue == null) - return false; - else { - Object value = nameValue.getValueAsObject(); - if (value == null) - return false; - else - return true; - } - } - - /** Returns the value of this attribute. - * @throws SdpParseException if the value is not well formatted. - * @return the value; null if the attribute has no associated value. - */ - public String getValue() throws SdpParseException { - NameValue nameValue = getAttribute(); - if (nameValue == null) - return null; - else { - Object value = nameValue.getValueAsObject(); - if (value == null) - return null; - else if (value instanceof String) - return (String) value; - else - return value.toString(); - } - } - - /** Sets the value of this attribute. - * @param value the - attribute value - * @throws SdpException if the value is null. - */ - public void setValue(String value) throws SdpException { - if (value == null) - throw new SdpException("The value is null"); - else { - NameValue nameValue = getAttribute(); - if (nameValue == null) - nameValue = new NameValue(); - nameValue.setValueAsObject(value); - setAttribute(nameValue); - } - } - - /** - * Allow for null value when setting the value. - * - * @param value -- can be null. - */ - - public void setValueAllowNull(String value) { - NameValue nameValue = getAttribute(); - if (nameValue == null) - nameValue = new NameValue(); - nameValue.setValueAsObject(value); - setAttribute(nameValue); - } - - public Object clone() { - AttributeField retval = (AttributeField) super.clone(); - if (this.attribute != null) - retval.attribute = (NameValue) this.attribute.clone(); - return retval; - } - - public boolean equals(Object that ) { - if ( ! (that instanceof AttributeField)) return false; - AttributeField other = (AttributeField) that; - return other.getAttribute().getName().equalsIgnoreCase(this.getAttribute().getName()) && - this.getAttribute().getValueAsObject().equals(other.getAttribute().getValueAsObject()); - } - - @Override - public int hashCode() { - if (getAttribute() == null ) throw new UnsupportedOperationException("Attribute is null cannot compute hashCode "); - return this.encode().hashCode(); - } -} diff --git a/java/gov/nist/javax/sdp/fields/BandwidthField.java b/java/gov/nist/javax/sdp/fields/BandwidthField.java deleted file mode 100644 index a2ac0c8..0000000 --- a/java/gov/nist/javax/sdp/fields/BandwidthField.java +++ /dev/null @@ -1,116 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -/******************************************************************************* -* Product of NIST/ITL Advanced Networking Technologies Division (ANTD). * -*******************************************************************************/ -package gov.nist.javax.sdp.fields; -import gov.nist.core.*; -import javax.sdp.*; -/** -* Bandwidth field of a SDP header. -* -*@version JSR141-PUBLIC-REVIEW (Subject to change) -* -*@author Olivier Deruelle <deruelle@antd.nist.gov> -*@author M. Ranganathan <br/> -* -* -* -*/ - -public class BandwidthField extends SDPField implements javax.sdp.BandWidth { - protected String bwtype; - protected int bandwidth; - public BandwidthField() { - super(SDPFieldNames.BANDWIDTH_FIELD); - } - public String getBwtype() { - return bwtype; - } - public int getBandwidth() { - return bandwidth; - } - /** - * Set the bwtype member - */ - public void setBwtype(String b) { - bwtype = b; - } - /** - * Set the bandwidth member - */ - public void setBandwidth(int b) { - bandwidth = b; - } - - /** - * Get the string encoded version of this object - * @since v1.0 - */ - public String encode() { - String encoded_string = BANDWIDTH_FIELD; - - if (bwtype != null) - encoded_string += bwtype + Separators.COLON; - return encoded_string + bandwidth + Separators.NEWLINE; - } - - /** Returns the bandwidth type. - * @throws SdpParseException - * @return type - */ - public String getType() throws SdpParseException { - return getBwtype(); - } - - /** Sets the bandwidth type. - * @param type to set - * @throws SdpException if the type is null - */ - public void setType(String type) throws SdpException { - if (type == null) - throw new SdpException("The type is null"); - else - setBwtype(type); - } - - /** Returns the bandwidth value measured in kilobits per second. - * @throws SdpParseException - * @return the bandwidth value - */ - public int getValue() throws SdpParseException { - return getBandwidth(); - } - - /** Sets the bandwidth value. - * @param value to set - * @throws SdpException - */ - public void setValue(int value) throws SdpException { - setBandwidth(value); - } - -} diff --git a/java/gov/nist/javax/sdp/fields/ConnectionAddress.java b/java/gov/nist/javax/sdp/fields/ConnectionAddress.java deleted file mode 100644 index e8e3a26..0000000 --- a/java/gov/nist/javax/sdp/fields/ConnectionAddress.java +++ /dev/null @@ -1,111 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -/******************************************************************************* -* Product of NIST/ITL Advanced Networking Technologies Division (ANTD). * -*******************************************************************************/ -package gov.nist.javax.sdp.fields; -import gov.nist.core.*; -/** -* Connection Address of the SDP header (appears as part of the Connection field) -* -*@version JSR141-PUBLIC-REVIEW (subject to change) -* -*@author Olivier Deruelle <deruelle@antd.nist.gov> -*@author M. Ranganathan <br/> -* -* -* -*/ -public class ConnectionAddress extends SDPObject { - protected Host address; - protected int ttl; - protected int port; - - public Host getAddress() { - return address; - } - public int getTtl() { - return ttl; - } - public int getPort() { - return port; - } - /** - * Set the address member - */ - public void setAddress(Host a) { - address = a; - } - /** - * Set the ttl member - */ - public void setTtl(int ttl) { - this.ttl = ttl; - } - /** - * Set the port member - */ - public void setPort(int p) { - port = p; - } - /** - * Get the string encoded version of this object - * @since v1.0 - */ - public String encode() { - String encoded_string = ""; - - if (address != null){ - encoded_string = address.encode(); - - //it appears that SDP does not allow square brackets - //in the connection address (see RFC4566) so make sure - //we lose them - if(Host.isIPv6Reference(encoded_string)) - { - //the isIPv6Reference == true means we have a minimum - //of 2 symbols, so substring bravely - encoded_string = encoded_string - .substring(1, encoded_string.length()-1); - } - } - if (ttl != 0 && port != 0) { - encoded_string += Separators.SLASH + ttl + Separators.SLASH + port; - } else if (ttl != 0) { - encoded_string += Separators.SLASH + ttl; - } - return encoded_string; - } - - public Object clone() { - ConnectionAddress retval = (ConnectionAddress) super.clone(); - if (this.address != null) - retval.address = (Host) this.address.clone(); - return retval; - } - -} - diff --git a/java/gov/nist/javax/sdp/fields/ConnectionField.java b/java/gov/nist/javax/sdp/fields/ConnectionField.java deleted file mode 100644 index 8e0b1f0..0000000 --- a/java/gov/nist/javax/sdp/fields/ConnectionField.java +++ /dev/null @@ -1,180 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -/******************************************************************************* -* Product of NIST/ITL Advanced Networking Technologies Division (ANTD). * -*******************************************************************************/ -package gov.nist.javax.sdp.fields; -import gov.nist.core.*; -import javax.sdp.*; -/** -* Connectin Field of the SDP request. -* -*@version JSR141-PUBLIC-REVIEW (subject to change). -* -*@author Olivier Deruelle <deruelle@antd.nist.gov> -*@author M. Ranganathan <br/> -* -* -* -*/ -public class ConnectionField extends SDPField implements javax.sdp.Connection { - protected String nettype; - protected String addrtype; - protected ConnectionAddress address; - - public ConnectionField() { - super(SDPFieldNames.CONNECTION_FIELD); - } - public String getNettype() { - return nettype; - } - public String getAddrtype() { - return addrtype; - } - public ConnectionAddress getConnectionAddress() { - return address; - } - /** - * Set the nettype member - */ - public void setNettype(String n) { - nettype = n; - } - /** - * Set the addrtype member - */ - public void setAddrType(String a) { - addrtype = a; - } - /** - * Set the address member - */ - public void setAddress(ConnectionAddress a) { - address = a; - } - /** - * Get the string encoded version of this object - * @since v1.0 - */ - public String encode() { - String encoded_string = CONNECTION_FIELD; - if (nettype != null) - encoded_string += nettype; - if (addrtype != null) - encoded_string += Separators.SP + addrtype; - if (address != null) - encoded_string += Separators.SP + address.encode(); - return encoded_string += Separators.NEWLINE; - } - - public String toString() { - return this.encode(); - } - /** Returns the type of the network for this Connection. - * @throws SdpParseException - * @return the type of the network - */ - public String getAddress() throws SdpParseException { - ConnectionAddress connectionAddress = getConnectionAddress(); - if (connectionAddress == null) - return null; - else { - Host host = connectionAddress.getAddress(); - if (host == null) - return null; - else - return host.getAddress(); - } - } - - /** Returns the type of the address for this Connection. - * @throws SdpParseException - * @return the type of the address - */ - public String getAddressType() throws SdpParseException { - return getAddrtype(); - } - - /** Returns the type of the network for this Connection. - * @throws SdpParseException - * @return the type of the network - */ - public String getNetworkType() throws SdpParseException { - return getNettype(); - } - - /** Sets the type of the address for this Connection. - * @param addr to set - * @throws SdpException if the type is null - */ - public void setAddress(String addr) throws SdpException { - if (addr == null) - throw new SdpException("the addr is null"); - else { - if (address == null) { - address = new ConnectionAddress(); - Host host = new Host(addr); - address.setAddress(host); - } else { - Host host = address.getAddress(); - if (host == null) { - host = new Host(addr); - address.setAddress(host); - } else - host.setAddress(addr); - } - setAddress(address); - } - } - - /** Returns the type of the network for this Connection. - * @param type to set - * @throws SdpException if the type is null - */ - public void setAddressType(String type) throws SdpException { - if (type == null) - throw new SdpException("the type is null"); - this.addrtype = type; - } - - /** Sets the type of the network for this Connection. - * @param type to set - * @throws SdpException if the type is null - */ - public void setNetworkType(String type) throws SdpException { - if (type == null) - throw new SdpException("the type is null"); - else - setNettype(type); - } - public Object clone() { - ConnectionField retval = (ConnectionField) super.clone(); - if (this.address != null) - retval.address = (ConnectionAddress) this.address.clone(); - return retval; - } - -} diff --git a/java/gov/nist/javax/sdp/fields/Email.java b/java/gov/nist/javax/sdp/fields/Email.java deleted file mode 100644 index 5e1255a..0000000 --- a/java/gov/nist/javax/sdp/fields/Email.java +++ /dev/null @@ -1,70 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -/******************************************************************************* -* Product of NIST/ITL Advanced Networking Technologies Division (ANTD). * -*******************************************************************************/ -package gov.nist.javax.sdp.fields; -import gov.nist.core.*; - -/** Email address record. -*@version JSR141-PUBLIC-REVIEW (subject to change). -* -*@author Olivier Deruelle <deruelle@antd.nist.gov> -*@author M. Ranganathan <br/> -* -* -*/ -public class Email extends SDPObject { - protected String userName; - protected String hostName; - public String getUserName() { - return userName; - } - public String getHostName() { - return hostName; - } - /** - * Set the userName member - */ - public void setUserName(String u) { - userName = u; - } - /** - * Set the hostName member - */ - public void setHostName(String h) { - hostName = h.trim(); - } - - /** - * Get the string encoded version of this object - * @since v1.0 - */ - public String encode() { - return userName + Separators.AT + hostName; - } - -} diff --git a/java/gov/nist/javax/sdp/fields/EmailAddress.java b/java/gov/nist/javax/sdp/fields/EmailAddress.java deleted file mode 100644 index ff363bb..0000000 --- a/java/gov/nist/javax/sdp/fields/EmailAddress.java +++ /dev/null @@ -1,89 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -/******************************************************************************* -* Product of NIST/ITL Advanced Networking Technologies Division (ANTD). * -*******************************************************************************/ -package gov.nist.javax.sdp.fields; -import gov.nist.core.*; -/** -* email address field of the SDP header. -* -*@version JSR141-PUBLIC-REVIEW (subject to change) -* -*@author Oliver Deruelle <deruelle@antd.nist.gov> -*@author M. Ranganathan <br/> -* -* -* -*/ -public class EmailAddress extends SDPObject { - protected String displayName; - protected Email email; - - public String getDisplayName() { - return displayName; - } - /** - * Set the displayName member - */ - public void setDisplayName(String displayName) { - this.displayName = displayName; - } - /** - * Set the email member - */ - public void setEmail(Email email) { - this.email = email; - } - - /** - * Get the string encoded version of this object - * @since v1.0 - * Here, we implement only the "displayName <email>" form - * and not the "email (displayName)" form - */ - public String encode() { - String encoded_string; - - if (displayName != null) { - encoded_string = displayName + Separators.LESS_THAN; - } else { - encoded_string = ""; - } - encoded_string += email.encode(); - if (displayName != null) { - encoded_string += Separators.GREATER_THAN; - } - return encoded_string; - } - public Object clone() { - EmailAddress retval = (EmailAddress) super.clone(); - if (this.email != null) - retval.email = (Email) this.email.clone(); - return retval; - } - -} diff --git a/java/gov/nist/javax/sdp/fields/EmailField.java b/java/gov/nist/javax/sdp/fields/EmailField.java deleted file mode 100644 index 4594dcd..0000000 --- a/java/gov/nist/javax/sdp/fields/EmailField.java +++ /dev/null @@ -1,105 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -/******************************************************************************* -* Product of NIST/ITL Advanced Networking Technologies Division (ANTD). * -*******************************************************************************/ -package gov.nist.javax.sdp.fields; -import gov.nist.core.*; -import javax.sdp.*; -/** -* email field in the SDP announce. -* -*@version JSR141-PUBLIC-REVIEW (subject to change). -* -*@author Olivier Deruelle <deruelle@antd.nist.gov> -*@author M. Ranganathan <br/> -* -* -*/ -public class EmailField extends SDPField implements javax.sdp.EMail { - - protected EmailAddress emailAddress; - - public EmailField() { - super(SDPFieldNames.EMAIL_FIELD); - emailAddress = new EmailAddress(); - } - - public EmailAddress getEmailAddress() { - return emailAddress; - } - /** - * Set the emailAddress member - */ - public void setEmailAddress(EmailAddress emailAddress) { - this.emailAddress = emailAddress; - } - - /** - * Get the string encoded version of this object - * @since v1.0 - */ - public String encode() { - return EMAIL_FIELD + emailAddress.encode() + Separators.NEWLINE; - } - - public String toString() { - return this.encode(); - } - - /** Returns the value. - * @throws SdpParseException - * @return the value - */ - public String getValue() throws SdpParseException { - if (emailAddress == null) - return null; - else { - return emailAddress.getDisplayName(); - } - } - - /** Set the value. - * @param value to set - * @throws SdpException if the value is null - */ - public void setValue(String value) throws SdpException { - if (value == null) - throw new SdpException("The value is null"); - else { - - emailAddress.setDisplayName(value); - } - } - - public Object clone() { - EmailField retval = (EmailField) super.clone(); - if (this.emailAddress != null) - retval.emailAddress = (EmailAddress) this.emailAddress.clone(); - return retval; - } - -} diff --git a/java/gov/nist/javax/sdp/fields/Indentation.java b/java/gov/nist/javax/sdp/fields/Indentation.java deleted file mode 100644 index adc7b43..0000000 --- a/java/gov/nist/javax/sdp/fields/Indentation.java +++ /dev/null @@ -1,60 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -/******************************************************************************* -* Product of NIST/ITL Advanced Networking Technologies Division (ANTD). * -*******************************************************************************/ -package gov.nist.javax.sdp.fields; - -/** -* Internal utility class for pretty printing and header formatting. -*/ -class Indentation { - private int indentation; - protected Indentation() { - indentation = 0; - } - protected Indentation(int initval) { - indentation = initval; - } - protected void setIndentation(int initval) { - indentation = initval; - } - protected int getCount() { - return indentation; - } - protected void increment() { - indentation++; - } - protected void decrement() { - indentation--; - } - protected String getIndentation() { - char [] chars = new char [indentation]; - java.util.Arrays.fill (chars, ' '); - return new String (chars); - } -} - diff --git a/java/gov/nist/javax/sdp/fields/InformationField.java b/java/gov/nist/javax/sdp/fields/InformationField.java deleted file mode 100644 index 6846cc0..0000000 --- a/java/gov/nist/javax/sdp/fields/InformationField.java +++ /dev/null @@ -1,84 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -/******************************************************************************* -* Product of NIST/ITL Advanced Networking Technologies Division (ANTD). * -*******************************************************************************/ -package gov.nist.javax.sdp.fields; -import gov.nist.core.*; -import javax.sdp.*; - -/** Information field implementation -*@version JSR141-PUBLIC-REVIEW (subject to change) -* -*@author Oliver Deruelle <deruelle@antd.nist.gov> -*@author M. Ranganathan <br/> -*/ - -public class InformationField extends SDPField implements javax.sdp.Info { - protected String information; - - public InformationField() { - super(INFORMATION_FIELD); - } - - public String getInformation() { - return information; - } - - public void setInformation(String info) { - information = info; - } - - /** - * Get the string encoded version of this object - * @since v1.0 - */ - public String encode() { - return INFORMATION_FIELD + information + Separators.NEWLINE; - } - - /** Returns the value. - * @throws SdpParseException - * @return the value - */ - public String getValue() throws SdpParseException { - return information; - } - - /** Set the value. - * @param value to set - * @throws SdpException if the value is null - */ - public void setValue(String value) throws SdpException { - if (value == null) - throw new SdpException("The value is null"); - else { - setInformation(value); - } - } - -} - diff --git a/java/gov/nist/javax/sdp/fields/KeyField.java b/java/gov/nist/javax/sdp/fields/KeyField.java deleted file mode 100644 index 867aa0a..0000000 --- a/java/gov/nist/javax/sdp/fields/KeyField.java +++ /dev/null @@ -1,131 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -/******************************************************************************* -* Product of NIST/ITL Advanced Networking Technologies Division (ANTD). * -*******************************************************************************/ -package gov.nist.javax.sdp.fields; - -import gov.nist.core.*; -import javax.sdp.*; - -/** -* Key field part of an SDP header. -* Acknowledgement. Bug fix contributed by espen@java.net -* -*@version JSR141-PUBLIC-REVIEW (subject to change) -* -*@author Oliver Deruelle <deruelle@antd.nist.gov> -*@author M. Ranganathan <br/> -*/ -public class KeyField extends SDPField implements javax.sdp.Key { - protected String type; - protected String keyData; - - public KeyField() { - super(KEY_FIELD); - } - - public String getType() { - return type; - } - - public String getKeyData() { - return keyData; - } - - /** - * Set the type member - */ - public void setType(String t) { - type = t; - } - /** - * Set the keyData member - */ - public void setKeyData(String k) { - keyData = k; - } - - /** - * Get the string encoded version of this object - * @since v1.0 - */ - public String encode() { - String encoded_string; - encoded_string = KEY_FIELD + type; - if (keyData != null) { - encoded_string += Separators.COLON; - encoded_string += keyData; - } - encoded_string += Separators.NEWLINE; - return encoded_string; - } - - /** Returns the name of this attribute - * @throws SdpParseException - * @return the name of this attribute - */ - public String getMethod() throws SdpParseException { - return this.type; - } - - /** Sets the id of this attribute. - * @param name to set - * @throws SdpException if the name is null - */ - public void setMethod(String name) throws SdpException { - this.type = name; - } - - /** Determines if this attribute has an associated value. - * @throws SdpParseException - * @return if this attribute has an associated value. - */ - public boolean hasKey() throws SdpParseException { - String key = getKeyData(); - return key != null; - } - - /** Returns the value of this attribute. - * @throws SdpParseException - * @return the value of this attribute - */ - public String getKey() throws SdpParseException { - return getKeyData(); - } - - /** Sets the value of this attribute. - * @param key to set - * @throws SdpException if key is null - */ - public void setKey(String key) throws SdpException { - if (key == null) - throw new SdpException("The key is null"); - else - setKeyData(key); - } -} - diff --git a/java/gov/nist/javax/sdp/fields/MediaField.java b/java/gov/nist/javax/sdp/fields/MediaField.java deleted file mode 100644 index a3b3a94..0000000 --- a/java/gov/nist/javax/sdp/fields/MediaField.java +++ /dev/null @@ -1,245 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -/******************************************************************************* -* Product of NIST/ITL Advanced Networking Technologies Division (ANTD). * -*******************************************************************************/ -package gov.nist.javax.sdp.fields; -import gov.nist.core.*; -import javax.sdp.*; -import java.util.*; -/** -* Media field SDP header. -*@version JSR141-PUBLIC-REVIEW (subject to change). -* -*@author Olivier Deruelle <deruelle@antd.nist.gov> -*@author M. Ranganathan <br/> -* -* -* -*/ -public class MediaField extends SDPField implements Media { - protected String media; - protected int port; - protected int nports; - protected String proto; - protected Vector formats; - - public MediaField() { - super(SDPFieldNames.MEDIA_FIELD); - formats = new Vector(); - } - - public String getMedia() { - return media; - } - public int getPort() { - return port; - } - public int getNports() { - return nports; - } - public String getProto() { - return proto; - } - public Vector getFormats() { - return formats; - } - /** - * Set the media member - */ - public void setMedia(String m) { - media = m; - } - /** - * Set the port member - */ - public void setPort(int p) { - port = p; - } - /** - * Set the nports member - */ - public void setNports(int n) { - nports = n; - } - /** - * Set the proto member - */ - public void setProto(String p) { - proto = p; - } - /** - * Set the fmt member - */ - public void setFormats(Vector formats) { - this.formats = formats; - } - /** Returns the type (audio,video etc) of the - * media defined by this description. - * @throws SdpParseException - * @return the string media type. - */ - public String getMediaType() throws SdpParseException { - return getMedia(); - } - - /** Sets the type (audio,video etc) of the media defined by this description. - * @param mediaType to set - * @throws SdpException if mediaType is null - */ - public void setMediaType(String mediaType) throws SdpException { - if (mediaType == null) - throw new SdpException("The mediaType is null"); - else - setMedia(mediaType); - } - - /** Returns the port of the media defined by this description - * @throws SdpParseException - * @return the integer media port. - */ - public int getMediaPort() throws SdpParseException { - return getPort(); - } - - /** Sets the port of the media defined by this description - * @param port to set - * @throws SdpException - */ - public void setMediaPort(int port) throws SdpException { - if (port < 0) - throw new SdpException("The port is < 0"); - else - setPort(port); - } - - /** Returns the number of ports associated with this media description - * @throws SdpParseException - * @return the integer port count. - */ - public int getPortCount() throws SdpParseException { - return getNports(); - } - - /** Sets the number of ports associated with this media description. - * @param portCount portCount - the integer port count. - * @throws SdpException - */ - public void setPortCount(int portCount) throws SdpException { - if (portCount < 0) - throw new SdpException("The port count is < 0"); - else - setNports(portCount); - } - - /** Returns the protocol over which this media should be transmitted. - * @throws SdpParseException - * @return the String protocol, e.g. RTP/AVP. - */ - public String getProtocol() throws SdpParseException { - return getProto(); - } - - /** Sets the protocol over which this media should be transmitted. - * @param protocol - the String protocol, e.g. RTP/AVP. - * @throws SdpException if the protocol is null - */ - public void setProtocol(String protocol) throws SdpException { - if (protocol == null) - throw new SdpException("The protocol is null"); - else - setProto(protocol); - } - - /** Returns an Vector of the media formats supported by this description. - * Each element in this Vector will be an String value which matches one of - * the a=rtpmap: attribute fields of the media description. - * @param create to set - * @throws SdpException - * @return the Vector. - */ - public Vector getMediaFormats(boolean create) throws SdpParseException { - - if (!create && formats.size() == 0) - return null; - else - return formats; - } - - /** Adds a media format to the media description. - * Each element in this Vector should be an String value which matches one of the - * a=rtpmap: attribute fields of the media description. - * @param mediaFormats the format to add. - * @throws SdpException if the vector is null - */ - public void setMediaFormats(Vector mediaFormats) throws SdpException { - if (mediaFormats == null) - throw new SdpException("The mediaFormats is null"); - this.formats = mediaFormats; - } - - private String encodeFormats() { - StringBuffer retval = new StringBuffer(3 * formats.size ()); - for (int i = 0; i < formats.size(); i++) { - retval.append(formats.elementAt(i)); - if (i < formats.size() - 1) - retval.append(Separators.SP); - } - return retval.toString(); - } - - /** - * Get the string encoded version of this object - * @since v1.0 - */ - public String encode() { - String encoded_string; - encoded_string = MEDIA_FIELD; - if (media != null) - encoded_string += media.toLowerCase() + Separators.SP + port; - // Workaround for Microsoft Messenger contributed by Emil Ivov - // Leave out the nports parameter as this confuses the messenger. - if (nports > 1) - encoded_string += Separators.SLASH + nports; - - if (proto != null) - encoded_string += Separators.SP + proto; - - if (formats != null) - encoded_string += Separators.SP + encodeFormats(); - - encoded_string += Separators.NEWLINE; - return encoded_string; - } - - public Object clone() { - MediaField retval = (MediaField) super.clone(); - if (this.formats != null) - retval.formats = (Vector) this.formats.clone(); - return retval; - } -} - diff --git a/java/gov/nist/javax/sdp/fields/OriginField.java b/java/gov/nist/javax/sdp/fields/OriginField.java deleted file mode 100644 index 46329df..0000000 --- a/java/gov/nist/javax/sdp/fields/OriginField.java +++ /dev/null @@ -1,314 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -/******************************************************************************* -* Product of NIST/ITL Advanced Networking Technologies Division (ANTD). * -*******************************************************************************/ -package gov.nist.javax.sdp.fields; -import gov.nist.core.Host; -import gov.nist.core.Separators; - -import javax.sdp.SdpException; -import javax.sdp.SdpParseException; -/** -* Origin Field SDP header -* -*@version JSR141-PUBLIC-REVIEW (subject to change). -* -*@author Olivier Deruelle <deruelle@antd.nist.gov> -*@author M. Ranganathan <br/> -* -* -* -*/ -public class OriginField extends SDPField implements javax.sdp.Origin { - protected String username; - //protected long sessId; - //protected long sessVersion; - protected String nettype; // IN - protected String addrtype; // IPV4/6 - protected Host address; - private String sessIdString; - private String sessVersionString; - - public OriginField() { - super(ORIGIN_FIELD); - } - - /** Returns the name of the session originator. - * @throws SdpParseException - * @return the string username. - */ - public String getUsername() throws SdpParseException { - return username; - } - /** - * Get the sessionID member. - */ - public long getSessId() { - - return Long.valueOf(this.sessIdString).longValue(); - } - - public String getSessIdAsString() { - return this.sessIdString; - } - /** - * Get the sessionVersion member. - */ - public long getSessVersion() { - - return Long.valueOf(sessVersionString).longValue(); - } - - public String getSessVersionAsString() { - return this.sessVersionString; - } - /** - * Get the netType member. - */ - public String getNettype() { - return nettype; - } - /** - * Get the address type member. - */ - public String getAddrtype() { - return addrtype; - } - /** - * Get the host member. - */ - public Host getHost() { - return address; - } - /** - * Set the sessId member - */ - public void setSessId(long s) { - this.sessIdString = Long.toString(s); - } - - /** - * This is a work around for some implementations that do not set a long - * session id. - */ - public void setSessionId(String sessId) { - this.sessIdString = sessId; - } - /** - * Set the sessVersion member - */ - public void setSessVersion(long s) { - sessVersionString = Long.toString(s); - } - - /** - * Set the session version as a string. - */ - public void setSessVersion(String s) { - this.sessVersionString = s; - } - /** - * Set the nettype member - */ - public void setNettype(String n) { - nettype = n; - } - /** - * Set the addrtype member - */ - public void setAddrtype(String a) { - addrtype = a; - } - /** - * Set the address member - */ - public void setAddress(Host a) { - address = a; - } - - /** Sets the name of the session originator. - * @param user the string username. - * @throws SdpException if the parameter is null - */ - public void setUsername(String user) throws SdpException { - if (user == null) - throw new SdpException("The user parameter is null"); - else { - this.username = user; - } - } - - /** Returns the unique identity of the session. - * @throws SdpParseException - * @return the session id. - */ - public long getSessionId() throws SdpParseException { - return getSessId(); - } - - /** Sets the unique identity of the session. - * @param id the session id. - * @throws SdpException if the id is <0 - */ - public void setSessionId(long id) throws SdpException { - if (id < 0) - throw new SdpException("The is parameter is <0"); - else - setSessId(id); - } - - /** Returns the unique version of the session. - * @throws SdpException - * @return the session version. - */ - public long getSessionVersion() throws SdpParseException { - return getSessVersion(); - } - - /** Sets the unique version of the session. - * @param version the session version. - * @throws SdpException if the version is <0 - */ - public void setSessionVersion(long version) throws SdpException { - if (version < 0) - throw new SdpException("The version parameter is <0"); - else - setSessVersion(version); - } - - /** Returns the type of the network for this Connection. - * @throws SdpParseException - * @return the string network type. - */ - public String getAddress() throws SdpParseException { - Host addr = getHost(); - if (addr == null) - return null; - else - return addr.getAddress(); - } - - /** Returns the type of the address for this Connection. - * @throws SdpParseException - * @return the string address type. - */ - public String getAddressType() throws SdpParseException { - return getAddrtype(); - } - - /** Returns the type of the network for this Connection - * @throws SdpParseException - * @return the string network type. - */ - public String getNetworkType() throws SdpParseException { - return getNettype(); - } - - /** Sets the type of the address for this Connection. - * @param addr string address type. - * @throws SdpException if the addr is null - */ - public void setAddress(String addr) throws SdpException { - if (addr == null) - throw new SdpException("The addr parameter is null"); - else { - Host host = getHost(); - if (host == null) - host = new Host(); - host.setAddress(addr); - setAddress(host); - } - } - - /** Returns the type of the network for this Connection. - * @param type the string network type. - * @throws SdpException if the type is null - */ - public void setAddressType(String type) throws SdpException { - if (type == null) - throw new SdpException("The type parameter is <0"); - else - setAddrtype(type); - } - - /** Sets the type of the network for this Connection. - * @param type the string network type. - * @throws SdpException if the type is null - */ - public void setNetworkType(String type) throws SdpException { - if (type == null) - throw new SdpException("The type parameter is <0"); - else - setNettype(type); - } - - /** - * Get the string encoded version of this object - * @since v1.0 - */ - public String encode() { - String addressStr = null; - - if (address != null){ - addressStr = address.encode(); - - //it appears that SDP does not allow square brackets - //in the connection address (see RFC4566) so make sure - //we lose them - if(Host.isIPv6Reference(addressStr)) - { - //the isIPv6Reference == true means we have a minimum - //of 2 symbols, so substring bravely - addressStr = addressStr - .substring(1, addressStr.length()-1); - } - } - - return ORIGIN_FIELD - + username - + Separators.SP - + sessIdString - + Separators.SP - + sessVersionString - + Separators.SP - + nettype - + Separators.SP - + addrtype - + Separators.SP - + addressStr - + Separators.NEWLINE; - } - - public Object clone() { - OriginField retval = (OriginField) super.clone(); - if (this.address != null) - retval.address = (Host) this.address.clone(); - return retval; - } - -} - diff --git a/java/gov/nist/javax/sdp/fields/PhoneField.java b/java/gov/nist/javax/sdp/fields/PhoneField.java deleted file mode 100644 index 12641e4..0000000 --- a/java/gov/nist/javax/sdp/fields/PhoneField.java +++ /dev/null @@ -1,113 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -/******************************************************************************* -* Product of NIST/ITL Advanced Networking Technologies Division (ANTD). * -*******************************************************************************/ -package gov.nist.javax.sdp.fields; -import gov.nist.core.*; -import javax.sdp.*; -/** -* Phone Field SDP header -* -*@version JSR141-PUBLIC-REVIEW (subject to change). -* -*@author Olivier Deruelle <deruelle@antd.nist.gov> -*@author M. Ranganathan <br/> -* -* -* -*/ -public class PhoneField extends SDPField implements javax.sdp.Phone { - protected String name; - protected String phoneNumber; - - public PhoneField() { - super(PHONE_FIELD); - } - - public String getName() { - return name; - } - public String getPhoneNumber() { - return phoneNumber; - } - /** - * Set the name member - * - *@param name - the name to set. - */ - public void setName(String name) { - this.name = name; - } - /** - * Set the phoneNumber member - *@param phoneNumber - phone number to set. - */ - public void setPhoneNumber(String phoneNumber) { - this.phoneNumber = phoneNumber; - } - - /** Returns the value. - * @throws SdpParseException - * @return the value. - */ - public String getValue() throws SdpParseException { - return getName(); - } - - /** Sets the value. - * @param value the - new information. - * @throws SdpException if the value is null - */ - public void setValue(String value) throws SdpException { - if (value == null) - throw new SdpException("The value parameter is null"); - else - setName(value); - } - - /** - * Get the string encoded version of this object - * @since v1.0 - * Here, we implement only the "name <phoneNumber>" form - * and not the "phoneNumber (name)" form - */ - public String encode() { - String encoded_string; - encoded_string = PHONE_FIELD; - if (name != null) { - encoded_string += name + Separators.LESS_THAN; - } - encoded_string += phoneNumber; - if (name != null) { - encoded_string += Separators.GREATER_THAN; - } - encoded_string += Separators.NEWLINE; - return encoded_string; - } - -} - diff --git a/java/gov/nist/javax/sdp/fields/PreconditionFields.java b/java/gov/nist/javax/sdp/fields/PreconditionFields.java deleted file mode 100644 index 3a528a9..0000000 --- a/java/gov/nist/javax/sdp/fields/PreconditionFields.java +++ /dev/null @@ -1,673 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -/***************************************************************************** - * PRODUCT OF PT INOVACAO - EST DEPARTMENT and Aveiro University - Portugal) * - *****************************************************************************/ - - -package gov.nist.javax.sdp.fields; - - -import java.util.Vector; -import javax.sdp.SdpException; -import javax.sdp.SdpParseException; -import gov.nist.core.NameValue; - - - - -/** - * Precondition fields (segmented / end-to-end). - * - * <p>For one media description, precondition attributes should - * be only of one type (segmented or end-to-end) </p> - * <p>3GPP TS 24.299, </p> - * IETF RFC3312 + RFC4032 (Precondition Mechanism). - * - * @author Miguel Freitas (IT) PT-Inovacao - */ - - -public class PreconditionFields -{ - - // Media Description attributes for precondition - protected Vector preconditionAttributes; - - - /** - * Constructor - * - */ - public PreconditionFields() - { - preconditionAttributes = new Vector(); - } - - - /** - * Get the number of Precondition attributes - * - * @return int size of segmented precondition vector of attribute fields - */ - public int getPreconditionSize() - { - if (preconditionAttributes != null) - return preconditionAttributes.size(); - - else // TODO treat this exception well - return -1; - } - - /** - * Get Precondition - * - * @return Vector of attribute fields (segmented precondition) - */ - public Vector getPreconditions() - { - return preconditionAttributes; - } - - - /** - * Set Preconditions - * - * @param preconditions - vector with precondition attributes - * @throws SdpException -- if precondition attributes is null - */ - public void setPreconditions(Vector preconditions) throws SdpException - { - if (preconditions == null) - throw new SdpException("Precondition attributes are null"); - else - preconditionAttributes = preconditions; - } - - - - /** - * <p>Set attribute line for current precondition state, given - * a string value encoded like the "curr" attribute value</p> - * - * @param precondCurrValue - a string with the value for a "curr" attribute - * @throws SdpException - */ - public void setPreconditionCurr(String precondCurrValue) throws SdpException - { - if (precondCurrValue == null) - throw new SdpException("The Precondition \"curr\" attribute value is null"); - else if (preconditionAttributes == null) - throw new SdpException("The Precondition Attributes is null"); - else - { - try - { - /* split the "curr" attribute value into words - * attributes[0] = "qos" - * attributes[1] = status-type (e2e/local/remote) - * attributes[2] = direction-tag (none/send/recv/sendrecv) - * - * split() - regular expression: - * \s -> a whitespace character [ \t\n\x0B\f\r] - * \b -> a word boundary - */ - String[] attributes = precondCurrValue.split(" "); - - - // which is this length?! of the string or the []? - /* - if (attributes.length < 3) - { - throw new SdpException - ("The Precondition \"curr\" attribute value mal-formed (<3words)"); - }*/ - - setPreconditionCurr(attributes[1], // status-type - attributes[2] // direction-tag - ); - } - catch (ArrayIndexOutOfBoundsException ex) - { - throw new SdpException - ("Error spliting the \"curr\" attribute into words", ex); - } - } - } - - - - - - /** - * <p>Set the value of the attributes with the name "curr" - * for current precondition.</p> - * <p>- eg: a=curr:qos local none</p> - * - * <p>If there is an attribute "curr" for the same status-type, - * the direction-tag is updated with the one supplied.</p> - * - * @param status - (local, remote, e2e) - * @param directionTag - (none, send, recv, sendrecv) - * @throws SdpParseException - */ - public void setPreconditionCurr(String status, String directionTag) - throws SdpException - { - if (status == null) - throw new SdpException("The status-type is null"); - if (directionTag == null) - throw new SdpException("The direction-tag is null"); - - if (preconditionAttributes == null) - throw new SdpException("Precondition Attributes is null"); - - int i = 0; - // search for attributes "curr" - for (i = 0; i < preconditionAttributes.size(); i++) - { - AttributeField af = - (AttributeField) this.preconditionAttributes.elementAt(i); - - // go to next attribute if this is not "curr" - if (!af.getAttribute().getName().equals("curr")) - continue; - - // if it is "curr" attribute, check the status-type - // if it matches the value supplied, update the direction-tag - // with the value supplied - if (af.getValue().indexOf(status) != -1) - { - if (af.getValue().indexOf(directionTag) == -1) - { - // attribute exists with same status, directionTag updated - af.setValue("qos " + status + " " + directionTag); - preconditionAttributes.setElementAt(af,i); - } - // else, exit and do nothing (attribute already exists) - else - break; - } - } - - // attribute "curr" not found - if (i == preconditionAttributes.size()) - { - // create attribute for the status-type supplied - NameValue nv = new NameValue("curr", "qos " + status + " " + directionTag); - - AttributeField newAF = new AttributeField(); - newAF.setAttribute(nv); - preconditionAttributes.add(newAF); - } - } - - - - - - - - /** - * <p>Set attribute line for desired precondition state, given - * a string value encoded like the "des" attribute value</p> - * - * @param precondDesValue - a string with the value for a "des" attribute - * @throws SdpException - */ - public void setPreconditionDes(String precondDesValue) throws SdpException - { - if (precondDesValue == null) - throw new SdpException("The Precondition \"des\" attribute value is null"); - else if (preconditionAttributes == null) - throw new SdpException("The Precondition Attributes is null"); - else - { - /* split the "des" attribute value into words - * attributes[0] = "qos" - * attributes[1] = strength-tag (unknown/failure/none/optional/mandatory) - * attributes[2] = status-type (e2e/local/remote) - * attributes[3] = direction-tag (none/send/recv/sendrecv) - * - * split() - regular expression: - * \s -> a whitespace character [ \t\n\x0B\f\r] - * \b -> a word boundary - */ - try - { - String[] attributes = precondDesValue.split(" "); - - // which is this length?! of the string or the []? - /* - if (attributes.length < 4) - { - throw new SdpException - ("The Precondition \"des\" attribute value mal-formed (<4words)"); - }*/ - - setPreconditionDes( attributes[1], // strength-tag - attributes[2], // status-type - attributes[3] // direction-tag - ); - } - catch (ArrayIndexOutOfBoundsException ex) - { - throw new SdpException - ("Error spliting the \"des\" attribute into words", ex); - } - } - } - - - - - - - /** - * <p>Set the value of the attributes with the name "des" - * for desired precondition. </p> - * <p>- eg: a=des:qos mandatory remote sendrecv</p> - * - * <p>There can be more than one desired precondition line - * for a status-type, specially if strength-tag is different.</p> - * - * <p>If there is an attribute "des" for the same status-type, - * the strength-tag and direction-tag are updated with the - * ones supplied.<p> - * - * <p>IETF RFC4032: strength should only be downgraded within SDP offers</p> - * - * - * @param strength - (none, optional, - * @param status - (local, remote, e2e) - * @param direction - (none, send, recv, sendrecv) - * @throws SdpParseException - */ - public void setPreconditionDes(String strength, String status, String direction) - throws SdpException - { - if (strength == null) - throw new SdpException("The strength-tag is null"); - if (status == null) - throw new SdpException("The status-type is null"); - if (direction == null) - throw new SdpException("The direction-tag is null"); - - if (preconditionAttributes == null) - throw new SdpException("Precondition Attributes is null"); - - int i = 0; - // search for attributes "des" - for (i = 0; i < preconditionAttributes.size(); i++) - { - AttributeField af = - (AttributeField) this.preconditionAttributes.elementAt(i); - - // go to next attribute if this is not "des" - if (!af.getAttribute().getName().equals("des")) - continue; - - // if it is "des" attribute, check the status-type - // if it match, update the strength-tag and direction-tag - if (af.getValue().indexOf(status) != -1) - { - // attribute exists with same status-type, - // strength-tag and direction-tag updated - af.setValue("qos " + strength + " " + status + " " + direction); - preconditionAttributes.setElementAt(af,i); - - } - } - - // attribute "des" not found - if (i == preconditionAttributes.size()) - { - // create attribute for the status-type supplied - // with the values strength-tag and direction-tag - NameValue nv = - new NameValue("des", "qos " + strength + " " + status + " " + direction); - - AttributeField newAF = new AttributeField(); - newAF.setAttribute(nv); - preconditionAttributes.add(newAF); - } - } - - - - - - - - /** - * <p>Set attribute line for confirmation precondition request, given - * a string value encoded like the "conf" attribute value</p> - * - * @param precondConfValue - a string with the value for a "conf" attribute - * @throws SdpException - */ - public void setPreconditionConfirmStatus(String precondConfValue) - throws SdpException - { - if (precondConfValue == null || precondConfValue.length()==0) - throw new SdpException("The Precondition \"conf\" attribute value is null"); - else if (preconditionAttributes == null) - throw new SdpException("The Precondition Attributes is null"); - else - { - /* split the "conf" attribute value into words - * attributes[0] = "qos" - * attributes[1] = status-type (e2e/local/remote) - * attributes[2] = direction-tag (none/send/recv/sendrecv) - */ - try - { - String[] attributes = precondConfValue.split(" "); - - setPreconditionConfirmStatus( - attributes[1], // status-type - attributes[2] // direction-tag - ); - } - catch (ArrayIndexOutOfBoundsException ex) - { - throw new SdpException - ("Error spliting the \"conf\" attribute into words", ex); - } - } - } - - - - - - /** - * <p>IETF RFC3312</p> - * <p>"The confirmation status attribute carries threshold conditions - * for a media stream. When the status of network resources reach - * these conditions, the peer UA will send an update of the - * session description".</p> - * - * <p>- eg: a=conf:qos remote sendrecv</p> - * - * @param status - (e2e, local, remote) - * @param direction - (none, send, recv, sendrecv) - * @throws SdpException -- if param are null - */ - public void setPreconditionConfirmStatus(String status, String direction) - throws SdpException - { - if (status == null || direction.length()==0) - throw new SdpException("The status-type is null"); - if (direction == null || direction.length()==0) - throw new SdpException("The direction-tag is null"); - - if (preconditionAttributes == null) - throw new SdpException("Precondition Attributes is null"); - - int i = 0; - // search for attributes "conf" - for (i = 0; i < preconditionAttributes.size(); i++) - { - AttributeField af = - (AttributeField) this.preconditionAttributes.elementAt(i); - - - //System.out.println("--> PreconditionField -> (i="+i+") > attribute field: " + af.toString()); - - - // go to next attribute if this is not "conf" - if (!af.getAttribute().getName().equals("conf")) - continue; - - // if it is "conf" attribute, check the status-type - // if it matches, update the direction-tag - // with the value supplied - if (af.getValue().indexOf(status) != -1) - { - if (af.getValue().indexOf(direction) == -1) - { - // attribute exists with same status, directionTag updated - af.setValue("qos " + status + " " + direction); - preconditionAttributes.setElementAt(af,i); - } - // else, exit and do nothing (attribute already exists) - break; - } - } - - // attribute "conf" not found - if (i == preconditionAttributes.size()) - { - // create attribute for the status-type supplied - // with the values strength-tag and direction-tag - NameValue nv = - new NameValue("conf", "qos " + status + " " + direction); - - AttributeField newAF = new AttributeField(); - newAF.setAttribute(nv); - preconditionAttributes.add(newAF); - - - //System.out.println("--> PreconditionField -> new \"conf\" attribute created: " + newAF.toString() ); - } - } - - - - - - - - - - - /** - * <p>Get the attribute fields with the name "curr" - * for current precondition.</p> - * <p>One attribute field per status-type. - * (eg: a=curr:qos local none)</p> - * - * @param status - (local, remote, e2e) - * @return a vector with the attribute field that match status-type - * (with only one element or null if none exists) - * @throws SdpParseException - */ - public Vector getPreconditionCurr(String status) - throws SdpException, SdpParseException - { - if (status == null) - throw new SdpException("The status-type is null"); - - if (preconditionAttributes == null) - return null; - else - { - Vector vCurr = new Vector(); - for (int i=0; i < preconditionAttributes.size(); i++) - { - AttributeField af = - (AttributeField) this.preconditionAttributes.elementAt(i); - - // go to next attribute if this is not "curr" - if (!af.getAttribute().getName().equals("curr")) - continue; - - // if it is "curr" attribute, check the status-type - // and add the attribute value to the vector if it - // matches the status desired - if (af.getValue().indexOf(status) != -1) - vCurr.addElement(af); - } - - // if none "curr" attribute found - if (vCurr.size() == 0) - return null; - else - return vCurr; - } - } - - - - - /** - * <p>Get the attribute fields with the name "des" - * for desired precondition</p> - * - * <p>There can be more than one current precondition line - * for a status-type (with different direction-tag values), - * specially if strength-tag is different</p> - * - * @param status - (local, remote, e2e) - * @return a vector with the attribute fields that match location-tag - * @throws SdpParseException - */ - public Vector getPreconditionDes(String status) - throws SdpException, SdpParseException - { - if (status == null) - throw new SdpException("The status-type is null"); - - if (preconditionAttributes == null) - return null; - else - { - Vector vCurr = new Vector(); - for (int i=0; i < preconditionAttributes.size(); i++) - { - AttributeField af = - (AttributeField) this.preconditionAttributes.elementAt(i); - - // go to next attribute if this is not "des" - if (!af.getAttribute().getName().equals("des")) - continue; - - // if it is "des" attribute, check the status-type - // and add the attribute value to the vector if it - // matches the status desired - if (af.getValue().indexOf(status) != -1) - vCurr.addElement(af); - } - - // if none "des" attribute found - if (vCurr.size() == 0) - return null; - else - return vCurr; - } - } - - - - /** - * <p>Get the attribute fields with the name "conf" - * for confirmation precondition.</p> - * - * <p>IETF RFC3312</p> - * <p>"The confirmation status attribute carries threshold conditions - * for a media stream. When the status of network resources reach - * these conditions, the peer UA will send an update of the - * session description".</p> - * - * <p>(eg: a=conf:qos remote sendrecv)</p> - * - * @return a vector with the "conf" attribute fields - * @throws SdpException - */ - public Vector getPreconditionConfirmStatus() throws SdpException - { - if (preconditionAttributes == null) - return null; // ignore or send SdpException? - else - { - Vector vCurr = new Vector(); - for (int i=0; i < preconditionAttributes.size(); i++) - { - AttributeField af = - (AttributeField) this.preconditionAttributes.elementAt(i); - - // go to next attribute if this is not "conf" - if (!af.getAttribute().getName().equals("conf")) - continue; - else - // add the attribute value to the vector - vCurr.addElement(af); - } - - // if none "conf" attribute found - if (vCurr.size() == 0) - return null; - else - return vCurr; - } - } - - - - /* strength-tag */ - public static final int STRENGTH_UNKNOWN = 0; - public static final int STRENGTH_FAILURE = 1; - public static final int STRENGTH_NONE = 2; - public static final int STRENGTH_OPTIONAL = 3; - public static final int STRENGTH_MANDATORY = 4; - public static final String[] STRENGTH = { "unknown", - "failure", - "none", - "optional", - "mandatory" - }; - /* direction-tag */ - public static final int DIRECTION_NONE = 0; - public static final int DIRECTION_SEND = 1; - public static final int DIRECTION_RECV = 2; - public static final int DIRECTION_SENDRECV = 3; - public static final String[] DIRECTION = { "none", - "send", - "recv", - "sendrecv" - }; - - /* status-tag */ - public static final int STATUS_E2E = 0; - public static final int STATUS_LOCAL = 1; - public static final int STATUS_REMOTE = 2; - public static final String[] STATUS = { "e2e", - "local", - "remote" - }; - - /* precondition type */ - public static final int PRECONDITION_QOS = 0; - public static final String[] PRECONDITION = { "qos" - }; - - - - - - -} diff --git a/java/gov/nist/javax/sdp/fields/ProtoVersionField.java b/java/gov/nist/javax/sdp/fields/ProtoVersionField.java deleted file mode 100644 index 615c2a7..0000000 --- a/java/gov/nist/javax/sdp/fields/ProtoVersionField.java +++ /dev/null @@ -1,90 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -/******************************************************************************* -* Product of NIST/ITL Advanced Networking Technologies Division (ANTD). * -*******************************************************************************/ -package gov.nist.javax.sdp.fields; -import gov.nist.core.*; -import javax.sdp.*; - -/** Proto version field of SDP announce. -* -*@version JSR141-PUBLIC-REVIEW (subject to change). -* -*@author Olivier Deruelle <deruelle@antd.nist.gov> -*@author M. Ranganathan <br/> -* -* -* -* -*/ -public class ProtoVersionField extends SDPField implements javax.sdp.Version { - protected int protoVersion; - - public ProtoVersionField() { - super(PROTO_VERSION_FIELD); - } - - public int getProtoVersion() { - return protoVersion; - } - - /** - * Set the protoVersion member - */ - public void setProtoVersion(int pv) { - protoVersion = pv; - } - - /** Returns the version number. - * @throws SdpParseException - * @return int - */ - public int getVersion() throws SdpParseException { - return getProtoVersion(); - } - - /** Sets the version. - * @param value the - new version value. - * @throws SdpException if the value is <=0 - */ - public void setVersion(int value) throws SdpException { - if (value < 0) - throw new SdpException("The value is <0"); - else - setProtoVersion(value); - } - - /** - * Get the string encoded version of this object - * @since v1.0 - */ - public String encode() { - return PROTO_VERSION_FIELD + protoVersion + Separators.NEWLINE; - } - -} - diff --git a/java/gov/nist/javax/sdp/fields/RepeatField.java b/java/gov/nist/javax/sdp/fields/RepeatField.java deleted file mode 100644 index 8c5f1a4..0000000 --- a/java/gov/nist/javax/sdp/fields/RepeatField.java +++ /dev/null @@ -1,217 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -/******************************************************************************* -* Product of NIST/ITL Advanced Networking Technologies Division (ANTD). * -*******************************************************************************/ -package gov.nist.javax.sdp.fields; -import gov.nist.core.*; -import java.util.LinkedList; -import java.util.ListIterator; -import javax.sdp.*; -/** -* Repeat SDP Field (part of the time field). -* -*@version JSR141-PUBLIC-REVIEW (subject to change). -* -*@author Olivier Deruelle <deruelle@antd.nist.gov> -*@author M. Ranganathan <br/> -* -* -* -*/ -public class RepeatField extends SDPField implements javax.sdp.RepeatTime { - - private static final long serialVersionUID = -6415338212212641819L; - protected TypedTime repeatInterval; - protected TypedTime activeDuration; - protected SDPObjectList offsets; - - public RepeatField() { - super(REPEAT_FIELD); - offsets = new SDPObjectList(); - } - - public void setRepeatInterval(TypedTime interval) { - repeatInterval = interval; - } - - public void setActiveDuration(TypedTime duration) { - activeDuration = duration; - } - - public void addOffset(TypedTime offset) { - offsets.add(offset); - } - - public LinkedList getOffsets() { - return offsets; - } - - /** Returns the "repeat interval" in seconds. - * @throws SdpParseException - * @return the "repeat interval" in seconds. - */ - public int getRepeatInterval() throws SdpParseException { - if (repeatInterval == null) - return -1; - else { - return repeatInterval.getTime(); - } - } - - /** Set the "repeat interval" in seconds. - * @param repeatInterval the "repeat interval" in seconds. - * @throws SdpException if repeatInterval is <0 - */ - public void setRepeatInterval(int repeatInterval) throws SdpException { - if (repeatInterval < 0) - throw new SdpException("The repeat interval is <0"); - else { - if (this.repeatInterval == null) - this.repeatInterval = new TypedTime(); - this.repeatInterval.setTime(repeatInterval); - } - } - - /** Returns the "active duration" in seconds. - * @throws SdpParseException - * @return the "active duration" in seconds. - */ - public int getActiveDuration() throws SdpParseException { - if (activeDuration == null) - return -1; - else { - return activeDuration.getTime(); - } - } - - /** Sets the "active duration" in seconds. - * @param activeDuration the "active duration" in seconds. - * @throws SdpException if the active duration is <0 - */ - public void setActiveDuration(int activeDuration) throws SdpException { - if (activeDuration < 0) - throw new SdpException("The active Duration is <0"); - else { - if (this.activeDuration == null) - this.activeDuration = new TypedTime(); - this.activeDuration.setTime(activeDuration); - } - } - - /** Returns the list of offsets. These are relative to the start-time given - * in the Time object (t= - * field) with which this RepeatTime is associated. - * @throws SdpParseException - * @return the list of offsets - */ - public int[] getOffsetArray() throws SdpParseException { - LinkedList linkedList = getOffsets(); - int[] result = new int[linkedList.size()]; - for (int i = 0; i < linkedList.size(); i++) { - TypedTime typedTime = (TypedTime) linkedList.get(i); - result[i] = typedTime.getTime(); - } - return result; - } - - /** Set the list of offsets. These are relative to the start-time given in the - * Time object (t= - * field) with which this RepeatTime is associated. - * @param offsets array of repeat time offsets - * @throws SdpException - */ - public void setOffsetArray(int[] offsets) throws SdpException { - for (int i = 0; i < offsets.length; i++) { - TypedTime typedTime = new TypedTime(); - typedTime.setTime(offsets[i]); - addOffset(typedTime); - } - - } - - /** Returns whether the field will be output as a typed time or a integer value. - * - * Typed time is formatted as an integer followed by a unit character. The unit indicates an - * appropriate multiplier for the integer. - * - * The following unit types are allowed. - * d - days (86400 seconds) - * h - hours (3600 seconds) - * m - minutes (60 seconds) - * s - seconds ( 1 seconds) - * @throws SdpParseException - * @return true, if the field will be output as a typed time; false, if as an integer value. - */ - public boolean getTypedTime() throws SdpParseException { - return true; - } - - /** Sets whether the field will be output as a typed time or a integer value. - * - * Typed time is formatted as an integer followed by a unit character. The unit indicates an - * appropriate multiplier for the integer. - * - * The following unit types are allowed. - * d - days (86400 seconds) - * h - hours (3600 seconds) - * m - minutes (60 seconds) - * s - seconds ( 1 seconds) - * @param typedTime typedTime - if set true, the start and stop times will be output in an optimal typed - * time format; if false, the times will be output as integers. - */ - public void setTypedTime(boolean typedTime) { - - } - - public String encode() { - StringBuffer retval = new StringBuffer(); - retval.append(REPEAT_FIELD) - .append(repeatInterval.encode()) - .append(Separators.SP) - .append(activeDuration.encode()); - ListIterator li = offsets.listIterator(); - while (li.hasNext()) { - TypedTime off = (TypedTime) li.next(); - retval.append (Separators.SP).append (off.encode()); - } - retval.append (Separators.NEWLINE); - return retval.toString (); - } - - public Object clone() { - RepeatField retval = (RepeatField) super.clone(); - if (this.repeatInterval != null) - retval.repeatInterval = (TypedTime) this.repeatInterval.clone(); - if (this.activeDuration != null) - retval.activeDuration = (TypedTime) this.activeDuration.clone(); - if (this.offsets != null) - retval.offsets = (SDPObjectList) this.offsets.clone(); - return retval; - } - -} - diff --git a/java/gov/nist/javax/sdp/fields/SDPField.java b/java/gov/nist/javax/sdp/fields/SDPField.java deleted file mode 100644 index ac3cb59..0000000 --- a/java/gov/nist/javax/sdp/fields/SDPField.java +++ /dev/null @@ -1,72 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -/******************************************************************************* -* Product of NIST/ITL Advanced Networking Technologies Division (ANTD). * -*******************************************************************************/ -package gov.nist.javax.sdp.fields; - -/** -* Placeholder root class for SDP headers. -* -*@version 1.2 -* -*@author M. Ranganathan <br/> -* -* -* -*/ - -public abstract class SDPField extends SDPObject { - protected String fieldName; - - public abstract String encode(); - - protected SDPField(String hname) { - fieldName = hname; - } - - public String getFieldName() { - return fieldName; - } - - /** Returns the type character for the field. - * @return the type character for the field. - */ - public char getTypeChar() { - if (fieldName == null) - return '\0'; - else - return fieldName.charAt(0); - } - - public SDPField() { - } - - public String toString() { - return this.encode(); - } - -} diff --git a/java/gov/nist/javax/sdp/fields/SDPFieldList.java b/java/gov/nist/javax/sdp/fields/SDPFieldList.java deleted file mode 100644 index c25e405..0000000 --- a/java/gov/nist/javax/sdp/fields/SDPFieldList.java +++ /dev/null @@ -1,163 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -/******************************************************************************* -* Product of NIST/ITL Advanced Networking Technologies Division (ANTD). * -*******************************************************************************/ -package gov.nist.javax.sdp.fields; -import java.util.ListIterator; - -/** -* A list of SDP Fields. -* -*@version 1.2 -* -*@author M. Ranganathan <br/> -* -* -* -*/ - -public abstract class SDPFieldList extends SDPField { - protected SDPObjectList sdpFields; - - public SDPFieldList() { - } - - /** Return a list iterator for the embedded field list. - */ - public ListIterator listIterator() { - return sdpFields.listIterator(); - } - - public SDPFieldList(String fieldName) { - super(fieldName); - sdpFields = new SDPObjectList(fieldName); - } - - public SDPFieldList(String fieldName, String classname) { - super(fieldName); - sdpFields = new SDPObjectList(fieldName, classname); - } - - /** - *add a SDP Field to the list of headers that we maintain. - *@param h is the sdp field to add to our list. - */ - public void add(SDPField h) { - sdpFields.add(h); - } - - public SDPObject first() { - return (SDPObject) sdpFields.first(); - } - - public SDPObject next() { - return (SDPObject) sdpFields.next(); - } - - /** - * Encode into a canonical string. - */ - public String encode() { - StringBuffer retval = new StringBuffer(); - ListIterator li = sdpFields.listIterator(); - while (li.hasNext()) { - SDPField sdphdr = (SDPField) li.next(); - retval.append(sdphdr.encode()); - } - return retval.toString(); - } - /** - * convert to a string representation (for printing). - * @param indentation int to set - * @return String string representation of object (for printing). - */ - public String debugDump(int indentation) { - stringRepresentation = ""; - String indent = new Indentation(indentation).getIndentation(); - ; - String className = this.getClass().getName(); - sprint(indent + className); - sprint(indent + "{"); - sprint(indent + sdpFields.debugDump(indentation)); - sprint(indent + "}"); - return stringRepresentation; - } - - /** convert to a string representation - * @return String - */ - public String debugDump() { - return debugDump(0); - } - - /** Return a string representation. - * - *@return String representation. - */ - public String toString() { - return encode(); - } - - /** - * Equality checking predicate. - *@param other is the other object to compare ourselves against. - */ - public boolean equals(Object other) { - if (other == null ) return false; - if (!this.getClass().equals(other.getClass())) - return false; - SDPFieldList that = (SDPFieldList) other; - if (sdpFields == null) - return that.sdpFields == null; - return this.sdpFields.equals(that.sdpFields); - } - - /** - * Do a template match of fields. - *@param template is the template to match against. - */ - public boolean match(Object template) { - if (template == null) - return true; - if (!template.getClass().equals(this.getClass())) - return false; - SDPFieldList other = (SDPFieldList) template; - if (sdpFields == other.sdpFields) - return true; - else if (sdpFields == null) - return false; - return sdpFields.match(other.sdpFields); - } - - public Object clone() { - SDPFieldList retval = (SDPFieldList) super.clone(); - if (this.sdpFields != null) - retval.sdpFields = (SDPObjectList) this.sdpFields.clone(); - return retval; - } -} - diff --git a/java/gov/nist/javax/sdp/fields/SDPFieldNames.java b/java/gov/nist/javax/sdp/fields/SDPFieldNames.java deleted file mode 100644 index a73379c..0000000 --- a/java/gov/nist/javax/sdp/fields/SDPFieldNames.java +++ /dev/null @@ -1,59 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -/***************************************************************************** -* Product of NIST/ITL Advanced Networking Technologies Division (ANTD). * -******************************************************************************/ -package gov.nist.javax.sdp.fields; - -/** -*Field names for SDP Fields. -* -*@version 1.2 -* -*@author M. Ranganathan <br/> -* -* -* -*/ - -public interface SDPFieldNames { - - public static final String SESSION_NAME_FIELD = "s="; - public static final String INFORMATION_FIELD = "i="; - public static final String EMAIL_FIELD = "e="; - public static final String PHONE_FIELD = "p="; - public static final String CONNECTION_FIELD = "c="; - public static final String BANDWIDTH_FIELD = "b="; - public static final String ORIGIN_FIELD = "o="; - public static final String TIME_FIELD = "t="; - public static final String KEY_FIELD = "k="; - public static final String ATTRIBUTE_FIELD = "a="; - public static final String PROTO_VERSION_FIELD = "v="; - public static final String URI_FIELD = "u="; - public static final String MEDIA_FIELD = "m="; - public static final String REPEAT_FIELD = "r="; - public static final String ZONE_FIELD = "z="; -} diff --git a/java/gov/nist/javax/sdp/fields/SDPFormat.java b/java/gov/nist/javax/sdp/fields/SDPFormat.java deleted file mode 100644 index adba422..0000000 --- a/java/gov/nist/javax/sdp/fields/SDPFormat.java +++ /dev/null @@ -1,64 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -/******************************************************************************* -* Product of NIST/ITL Advanced Networking Technologies Division (ANTD). * -*******************************************************************************/ -package gov.nist.javax.sdp.fields; - -/** -* Media Description SDP header -* -*@version 1.2 -* -*@author M. Ranganathan <br/> -* -* -* -*/ -public class SDPFormat extends SDPObject { - protected String format; - - public void setFormat(String fmt) { - format = fmt; - } - - public String getFormat() { - return format; - } - - public SDPFormat(String s) { - format = s; - } - - public SDPFormat() { - } - - public String encode() { - return format; - } - -} - diff --git a/java/gov/nist/javax/sdp/fields/SDPKeywords.java b/java/gov/nist/javax/sdp/fields/SDPKeywords.java deleted file mode 100644 index c2422f2..0000000 --- a/java/gov/nist/javax/sdp/fields/SDPKeywords.java +++ /dev/null @@ -1,42 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -/******************************************************************************* -* Product of NIST/ITL Advanced Networking Technologies Division (ANTD). * -*******************************************************************************/ -package gov.nist.javax.sdp.fields; - -/** -* A context sensitive list of keyowrds for SDP Headers. -*/ -public interface SDPKeywords { - public static final String BASE64="base64"; - public static final String PROMPT="prompt"; - public static final String CLEAR = "clear"; - public static final String URI="URI"; - public static final String IPV4="IP4"; - public static final String IPV6="IP6"; - public static final String IN="IN"; -} diff --git a/java/gov/nist/javax/sdp/fields/SDPObject.java b/java/gov/nist/javax/sdp/fields/SDPObject.java deleted file mode 100644 index b4bed6f..0000000 --- a/java/gov/nist/javax/sdp/fields/SDPObject.java +++ /dev/null @@ -1,354 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -/******************************************************************************* -* Product of NIST/ITL Advanced Networking Technologies Division (ANTD). * -*******************************************************************************/ -package gov.nist.javax.sdp.fields; -import gov.nist.core.*; -import java.lang.reflect.*; - -/** -* Root class for everything in this package. -*/ -public abstract class SDPObject - extends GenericObject - implements SDPFieldNames { - - protected static final String SDPFIELDS_PACKAGE = - PackageNames.SDP_PACKAGE + ".fields"; - protected static final String CORE_PACKAGE = PackageNames.CORE_PACKAGE; - - // should make this a property during the compile. - - public abstract String encode(); - - protected void sprint(String s) { - super.sprint(s); - } - - protected void initSprint() { - super.stringRepresentation = ""; - } - - public String toString() { - return encode(); - } - - protected String getStringRepresentation() { - return super.stringRepresentation; - } - - /** - * An introspection based equality predicate for SDPObjects. - *@param that is the other object to test against. - *@return true if the objects are equal. - */ - public boolean equals(Object that) { - if (!this.getClass().equals(that.getClass())) - return false; - Class myclass = this.getClass(); - Field[] fields = myclass.getDeclaredFields(); - Class hisclass = that.getClass(); - Field[] hisfields = hisclass.getDeclaredFields(); - for (int i = 0; i < fields.length; i++) { - Field f = fields[i]; - Field g = hisfields[i]; - // Only print protected and public members. - int modifier = f.getModifiers(); - if (modifier == Modifier.PRIVATE) - continue; - Class fieldType = f.getType(); - String fieldName = f.getName(); - if (fieldName.compareTo("stringRepresentation") == 0) { - continue; - } - if (fieldName.compareTo("indentation") == 0) { - continue; - } - try { - // Primitive fields are printed with type: value - if (fieldType.isPrimitive()) { - String fname = fieldType.toString(); - if (fname.compareTo("int") == 0) { - if (f.getInt(this) != g.getInt(that)) - return false; - } else if (fname.compareTo("short") == 0) { - if (f.getShort(this) != g.getShort(that)) - return false; - } else if (fname.compareTo("char") == 0) { - if (f.getChar(this) != g.getChar(that)) - return false; - } else if (fname.compareTo("long") == 0) { - if (f.getLong(this) != g.getLong(that)) - return false; - } else if (fname.compareTo("boolean") == 0) { - if (f.getBoolean(this) != g.getBoolean(that)) - return false; - } else if (fname.compareTo("double") == 0) { - if (f.getDouble(this) != g.getDouble(that)) - return false; - } else if (fname.compareTo("float") == 0) { - if (f.getFloat(this) != g.getFloat(that)) - return false; - } - } else if (g.get(that) == f.get(this)) - continue; - else if (f.get(this) == null && g.get(that) != null) - return false; - else if (g.get(that) == null && f.get(that) != null) - return false; - else if (!f.get(this).equals(g.get(that))) - return false; - } catch (IllegalAccessException ex1) { - InternalErrorHandler.handleException(ex1); - } - } - return true; - } - - /** - * Generic introspection based printing funciton for this package. - * Because we use introspection, this must reside in this package - * and we cannot use the superclass defintion (even though it - * is virtually identical. - */ - public String debugDump() { - stringRepresentation = ""; - Class myclass = getClass(); - sprint(myclass.getName()); - sprint("{"); - Field[] fields = myclass.getDeclaredFields(); - for (int i = 0; i < fields.length; i++) { - Field f = fields[i]; - // Only print protected and public members. - int modifier = f.getModifiers(); - if (modifier == Modifier.PRIVATE) - continue; - Class fieldType = f.getType(); - String fieldName = f.getName(); - if (fieldName.compareTo("stringRepresentation") == 0) { - // avoid nasty recursions... - continue; - } - if (fieldName.compareTo("indentation") == 0) { - // formatting stuff - not relevant here. - continue; - } - sprint(fieldName + ":"); - try { - // Primitive fields are printed with type: value - if (fieldType.isPrimitive()) { - String fname = fieldType.toString(); - sprint(fname + ":"); - if (fname.compareTo("int") == 0) { - int intfield = f.getInt(this); - sprint(intfield); - } else if (fname.compareTo("short") == 0) { - short shortField = f.getShort(this); - sprint(shortField); - } else if (fname.compareTo("char") == 0) { - char charField = f.getChar(this); - sprint(charField); - } else if (fname.compareTo("long") == 0) { - long longField = f.getLong(this); - sprint(longField); - } else if (fname.compareTo("boolean") == 0) { - boolean booleanField = f.getBoolean(this); - sprint(booleanField); - } else if (fname.compareTo("double") == 0) { - double doubleField = f.getDouble(this); - sprint(doubleField); - } else if (fname.compareTo("float") == 0) { - float floatField = f.getFloat(this); - sprint(floatField); - } - } else if ( - Class.forName( - CORE_PACKAGE + ".GenericObject").isAssignableFrom( - fieldType)) { - if (f.get(this) != null) { - sprint( - ((GenericObject) f.get(this)).debugDump( - indentation + 1)); - } else { - sprint("<null>"); - } - - } else if ( - Class.forName( - CORE_PACKAGE + ".GenericObjectList").isAssignableFrom( - fieldType)) { - if (f.get(this) != null) { - sprint( - ((GenericObjectList) f.get(this)).debugDump( - indentation + 1)); - } else { - sprint("<null>"); - } - - } else { - // Dont do recursion on things that are not - // of our header type... - if (f.get(this) != null) { - sprint(f.get(this).getClass().getName() + ":"); - } else { - sprint(fieldType.getName() + ":"); - } - - sprint("{"); - if (f.get(this) != null) { - sprint(f.get(this).toString()); - } else { - sprint("<null>"); - } - sprint("}"); - } - } catch (IllegalAccessException ex1) { - continue; // we are accessing a private field... - } catch (ClassNotFoundException ex) { - System.out.println("Cound not find " + ex.getMessage()); - ex.printStackTrace(); - System.exit(0); - } - } - sprint("}"); - return stringRepresentation; - } - - /** An introspection based predicate matching using a template - * object. Allows for partial match of two protocl Objects. - *@param other the match pattern to test against. The match object - * has to be of the same type (class). Primitive types - * and non-sip fields that are non null are matched for equality. - * Null in any field matches anything. Some book-keeping fields - * are ignored when making the comparison. - */ - - public boolean match(Object other) { - if (other == null) - return true; - if (!this.getClass().equals(other.getClass())) - return false; - GenericObject that = (GenericObject) other; - Class myclass = this.getClass(); - Field[] fields = myclass.getDeclaredFields(); - Class hisclass = other.getClass(); - Field[] hisfields = hisclass.getDeclaredFields(); - for (int i = 0; i < fields.length; i++) { - Field f = fields[i]; - Field g = hisfields[i]; - // Only print protected and public members. - int modifier = f.getModifiers(); - if (modifier == Modifier.PRIVATE) - continue; - Class fieldType = f.getType(); - String fieldName = f.getName(); - if (fieldName.compareTo("stringRepresentation") == 0) { - continue; - } - if (fieldName.compareTo("indentation") == 0) { - continue; - } - try { - // Primitive fields are printed with type: value - if (fieldType.isPrimitive()) { - String fname = fieldType.toString(); - if (fname.compareTo("int") == 0) { - if (f.getInt(this) != g.getInt(that)) - return false; - } else if (fname.compareTo("short") == 0) { - if (f.getShort(this) != g.getShort(that)) - return false; - } else if (fname.compareTo("char") == 0) { - if (f.getChar(this) != g.getChar(that)) - return false; - } else if (fname.compareTo("long") == 0) { - if (f.getLong(this) != g.getLong(that)) - return false; - } else if (fname.compareTo("boolean") == 0) { - if (f.getBoolean(this) != g.getBoolean(that)) - return false; - } else if (fname.compareTo("double") == 0) { - if (f.getDouble(this) != g.getDouble(that)) - return false; - } else if (fname.compareTo("float") == 0) { - if (f.getFloat(this) != g.getFloat(that)) - return false; - } - } else { - Object myObj = f.get(this); - Object hisObj = g.get(that); - if (hisObj == myObj) - return true; - else if (hisObj != null && myObj == null) - return false; - else if ( - hisObj instanceof java.lang.String - && myObj instanceof java.lang.String) { - if (((String) myObj) - .compareToIgnoreCase((String) hisObj) - != 0) - return false; - } else if ( - hisObj != null - && GenericObject.isMySubclass(myObj.getClass()) - && GenericObject.isMySubclass(hisObj.getClass()) - && myObj.getClass().equals(hisObj.getClass()) - && ((GenericObject) hisObj).getMatcher() != null) { - String myObjEncoded = ((GenericObject) myObj).encode(); - return ((GenericObject) hisObj).getMatcher().match( - myObjEncoded); - } else if ( - GenericObject.isMySubclass(myObj.getClass()) - && !((GenericObject) myObj).match(hisObj)) - return false; - else if ( - GenericObjectList.isMySubclass(myObj.getClass()) - && !((GenericObjectList) myObj).match(hisObj)) - return false; - } - } catch (IllegalAccessException ex1) { - InternalErrorHandler.handleException(ex1); - } - } - return true; - } - - - /** - * Formatter with a given starting indentation. - */ - public String dbgPrint(int indent) { - int save = indentation; - indentation = indent; - String retval = this.toString(); - indentation = save; - return retval; - } - - -} - diff --git a/java/gov/nist/javax/sdp/fields/SDPObjectList.java b/java/gov/nist/javax/sdp/fields/SDPObjectList.java deleted file mode 100644 index 782640c..0000000 --- a/java/gov/nist/javax/sdp/fields/SDPObjectList.java +++ /dev/null @@ -1,117 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -/******************************************************************************* -* Product of NIST/ITL Advanced Networking Technologies Division (ANTD). * -*******************************************************************************/ -package gov.nist.javax.sdp.fields; -import gov.nist.core.*; -import java.util.ListIterator; -import java.util.Iterator; -import java.util.LinkedList; -import java.lang.reflect.*; - -public class SDPObjectList extends GenericObjectList { - protected static final String SDPFIELDS_PACKAGE = - PackageNames.SDP_PACKAGE + ".fields"; - - /** - * Do a merge of the GenericObjects contained in this list with the - * GenericObjects in the mergeList. Note that this does an inplace - * modification of the given list. This does an object by object - * merge of the given objects. - * - *@param mergeList is the list of Generic objects that we want to do - * an object by object merge with. Note that no new objects are - * added to this list. - * - */ - - public void mergeObjects(GenericObjectList mergeList) { - - Iterator<GenericObject> it1 = this.listIterator(); - Iterator<GenericObject> it2 = mergeList.listIterator(); - while (it1.hasNext()) { - GenericObject outerObj = (GenericObject) it1.next(); - while (it2.hasNext()) { - Object innerObj = it2.next(); - outerObj.merge(innerObj); - } - } - } - - /** - * Add an sdp object to this list. - */ - public void add(SDPObject s) { - super.add(s); - } - - /** - * Get the input text of the sdp object (from which the object was - * generated). - */ - - public SDPObjectList(String lname, String classname) { - super(lname, classname); - } - - public SDPObjectList() { - super(null, SDPObject.class); - } - - public SDPObjectList(String lname) { - super(lname, SDPFIELDS_PACKAGE + ".SDPObject"); - } - - public GenericObject first() { - return (SDPObject) super.first(); - } - - public GenericObject next() { - return (SDPObject) super.next(); - } - - - - public String encode() { - StringBuffer retval = new StringBuffer(); - SDPObject sdpObject; - for (sdpObject = (SDPObject) this.first(); - sdpObject != null; - sdpObject = (SDPObject) this.next()) { - retval.append (sdpObject.encode()); - } - return retval.toString(); - } - - public String toString() { - return this.encode(); - } - - - -} - diff --git a/java/gov/nist/javax/sdp/fields/SessionNameField.java b/java/gov/nist/javax/sdp/fields/SessionNameField.java deleted file mode 100644 index 3eeb88f..0000000 --- a/java/gov/nist/javax/sdp/fields/SessionNameField.java +++ /dev/null @@ -1,77 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -/******************************************************************************* -* Product of NIST/ITL Advanced Networking Technologies Division (ANTD). * -*******************************************************************************/ -package gov.nist.javax.sdp.fields; -import gov.nist.core.*; -import javax.sdp.*; - -public class SessionNameField extends SDPField implements SessionName { - protected String sessionName; - - public SessionNameField() { - super(SDPFieldNames.SESSION_NAME_FIELD); - } - public String getSessionName() { - return sessionName; - } - /** - * Set the sessionName member - */ - public void setSessionName(String s) { - sessionName = s; - } - - /** Returns the value. - * @throws SdpParseException - * @return the value - */ - public String getValue() throws SdpParseException { - return getSessionName(); - } - - /** Sets the value - * @param value the - new information. - * @throws SdpException if the value is null - */ - public void setValue(String value) throws SdpException { - if (value == null) - throw new SdpException("The value is null"); - else { - setSessionName(value); - } - } - - /** - * Get the string encoded version of this object - * @since v1.0 - */ - public String encode() { - return SESSION_NAME_FIELD + sessionName + Separators.NEWLINE; - } - -} diff --git a/java/gov/nist/javax/sdp/fields/TimeField.java b/java/gov/nist/javax/sdp/fields/TimeField.java deleted file mode 100644 index b88cca0..0000000 --- a/java/gov/nist/javax/sdp/fields/TimeField.java +++ /dev/null @@ -1,175 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -/******************************************************************************* -* Product of NIST/ITL Advanced Networking Technologies Division (ANTD). * -*******************************************************************************/ -package gov.nist.javax.sdp.fields; -import gov.nist.core.*; -import javax.sdp.*; -import java.util.*; -/** -* Time Field. -*@version JSR141-PUBLIC-REVIEW (subject to change). -* -*@author Olivier Deruelle <deruelle@antd.nist.gov> -*@author M. Ranganathan -* -*Bug Report contributed by Brian J. Collins. -* -*/ -public class TimeField extends SDPField implements Time { - protected long startTime; - protected long stopTime; - public TimeField() { - super(TIME_FIELD); - } - public long getStartTime() { - return startTime; - } - public long getStopTime() { - return stopTime; - } - /** - * Set the startTime member - */ - public void setStartTime(long startTime) { - this.startTime = startTime; - } - /** - * Set the stopTime member - */ - public void setStopTime(long stopTime) { - this.stopTime = stopTime; - } - - /** Returns the start time of the conference/session. - * @throws SdpParseException - * @return the date - */ - public Date getStart() throws SdpParseException { - return SdpFactory.getDateFromNtp(startTime); - } - - /** Returns the stop time of the session - * @throws SdpParseException - * @return the stop time of the session. - */ - public Date getStop() throws SdpParseException { - return SdpFactory.getDateFromNtp(stopTime); - } - - /** Sets the stop time of the session. - * @param stop start - the start time - * @throws SdpException if the date is null - */ - public void setStop(Date stop) throws SdpException { - if (stop == null) - throw new SdpException("The date is null"); - else { - this.stopTime = SdpFactory.getNtpTime(stop); - } - } - - /** Sets the start time of the conference/session. - * @param start start - the start time for the session. - * @throws SdpException if the date is null - */ - public void setStart(Date start) throws SdpException { - if (start == null) - throw new SdpException("The date is null"); - else { - this.startTime = SdpFactory.getNtpTime(start); - } - } - - /** Returns whether the field will be output as a typed time - * or a integer value. - * - * Typed time is formatted as an integer followed by a unit character. - * The unit indicates an appropriate multiplier for - * the integer. - * - * The following unit types are allowed. - * d - days (86400 seconds) - * h - hours (3600 seconds) - * m - minutes (60 seconds) - * s - seconds ( 1 seconds) - * @return true, if the field will be output as a - * typed time; false, if as an integer value. - */ - public boolean getTypedTime() { - return false; - } - - /** Sets whether the field will be output as a typed time or a integer value. - * - * Typed time is formatted as an integer followed by a unit character. - * The unit indicates an appropriate multiplier for - * the integer. - * - * The following unit types are allowed. - * d - days (86400 seconds) - * h - hours (3600 seconds) - * m - minutes (60 seconds) - * s - seconds ( 1 seconds) - * @param typedTime typedTime - if set true, the start and stop times will - * be output in an optimal typed time format; if false, the - * times will be output as integers. - */ - public void setTypedTime(boolean typedTime) { - - } - - /** Returns whether the start and stop times were set to zero (in NTP). - * @return boolean - */ - public boolean isZero() { - return getStartTime()==0 && getStopTime()==0; - } - - /** Sets the start and stop times to zero (in NTP). - */ - public void setZero() { - setStopTime(0); - setStartTime(0); - } - - /** - * Get the string encoded version of this object - * @since v1.0 - */ - public String encode() { - return new StringBuffer() - .append(TIME_FIELD) - .append(startTime) - .append(Separators.SP) - .append(stopTime) - .append(Separators.NEWLINE) - .toString(); - } - -} - diff --git a/java/gov/nist/javax/sdp/fields/TypedTime.java b/java/gov/nist/javax/sdp/fields/TypedTime.java deleted file mode 100644 index 936a582..0000000 --- a/java/gov/nist/javax/sdp/fields/TypedTime.java +++ /dev/null @@ -1,65 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -/************************************************************************** -* Product of NIST/ITL Advanced Networking Technologies Division (ANTD). * -***************************************************************************/ -package gov.nist.javax.sdp.fields; - -/** - * Typed time SDP field. - * - * @author M. Ranganathan - * - */ -public class TypedTime extends SDPObject { - String unit; - int time; - - public String encode() { - String retval = ""; - retval += Integer.toString(time); - if (unit != null) - retval += unit; - return retval; - } - - public void setTime(int t) { - time = t; - } - - public int getTime() { - return time; - } - - public String getUnit() { - return unit; - } - - public void setUnit(String u) { - unit = u; - } - -} diff --git a/java/gov/nist/javax/sdp/fields/URIField.java b/java/gov/nist/javax/sdp/fields/URIField.java deleted file mode 100644 index bf2db7e..0000000 --- a/java/gov/nist/javax/sdp/fields/URIField.java +++ /dev/null @@ -1,93 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -/******************************************************************************* -* Product of NIST/ITL Advanced Networking Technologies Division (ANTD). * -*******************************************************************************/ -package gov.nist.javax.sdp.fields; - -import gov.nist.core.*; -import java.net.*; - -/** Implementation of URI field. -*@version JSR141-PUBLIC-REVIEW (subject to change). -* -*@author Olivier Deruelle <deruelle@antd.nist.gov> -*@author M. Ranganathan <br/> -* -* -*/ - -public class URIField extends SDPField implements javax.sdp.URI { - - private static final long serialVersionUID = -4322063343955734258L; - protected URL url; - protected String urlString; - - public URIField() { - super(URI_FIELD); - } - - public String getURI() { - return urlString; - } - - public void setURI(String uri) { - this.urlString = uri; - this.url = null; - } - - public URL get() { - if (this.url != null) { - return this.url; - } else { - try { - this.url = new URL(this.urlString); - return this.url; - } catch (Exception ex) { - return null; - } - } - } - - public void set(URL uri) { - this.url = uri; - this.urlString = null; - } - - /** - * Get the string encoded version of this object - * @since v1.0 - */ - public String encode() { - if (urlString != null) { - return URI_FIELD + urlString + Separators.NEWLINE; - } else if (url != null) { - return URI_FIELD + url.toString() + Separators.NEWLINE; - } else - return ""; - } - -} diff --git a/java/gov/nist/javax/sdp/fields/ZoneAdjustment.java b/java/gov/nist/javax/sdp/fields/ZoneAdjustment.java deleted file mode 100644 index 3d51283..0000000 --- a/java/gov/nist/javax/sdp/fields/ZoneAdjustment.java +++ /dev/null @@ -1,105 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -/******************************************************************************* -* Product of NIST/ITL Advanced Networking Technologies Division (ANTD). * -*******************************************************************************/ -package gov.nist.javax.sdp.fields; -import gov.nist.core.*; - -/** -* Zone adjustment class. -* -*@version 1.2 -* -*@author M. Ranganathan <br/> -* -* -* -*/ -public class ZoneAdjustment extends SDPObject { - protected long time; - protected String sign; - protected TypedTime offset; - - /** - * Set the time. - *@param t time to set. - */ - public void setTime(long t) { - time = t; - } - - /** - * Get the time. - */ - public long getTime() { - return time; - } - - /** - * get the offset. - */ - public TypedTime getOffset() { - return offset; - } - - /** - * Set the offset. - *@param off typed time offset to set. - */ - public void setOffset(TypedTime off) { - offset = off; - } - - /** - * Set the sign. - *@param s sign for the offset. - */ - public void setSign(String s) { - sign = s; - } - - /** - * Encode this structure into canonical form. - *@return encoded form of the header. - */ - public String encode() { - String retval = Long.toString(time); - retval += Separators.SP; - if (sign != null) - retval += sign; - retval += offset.encode(); - return retval; - } - - public Object clone() { - ZoneAdjustment retval = (ZoneAdjustment) super.clone(); - if (this.offset != null) - retval.offset = (TypedTime) this.offset.clone(); - return retval; - } - -} diff --git a/java/gov/nist/javax/sdp/fields/ZoneField.java b/java/gov/nist/javax/sdp/fields/ZoneField.java deleted file mode 100644 index c67f63e..0000000 --- a/java/gov/nist/javax/sdp/fields/ZoneField.java +++ /dev/null @@ -1,188 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -/******************************************************************************* -* Product of NIST/ITL Advanced Networking Technologies Division (ANTD). * -*******************************************************************************/ -package gov.nist.javax.sdp.fields; -import gov.nist.core.*; -import java.util.*; -import javax.sdp.*; - -/** -* Z= SDP field. -* -*@version JSR141-PUBLIC-REVIEW (subject to change). -* -*@author Olivier Deruelle <deruelle@antd.nist.gov> -*@author M. Ranganathan <br/> -* -* -* -*/ - -public class ZoneField - extends SDPField - implements javax.sdp.TimeZoneAdjustment { - - protected SDPObjectList zoneAdjustments; - - /** - * Constructor. - */ - public ZoneField() { - super(ZONE_FIELD); - zoneAdjustments = new SDPObjectList(); - } - - /** - * Add an element to the zone adjustment list. - *@param za zone adjustment to add. - */ - public void addZoneAdjustment(ZoneAdjustment za) { - zoneAdjustments.add(za); - } - - /** - * Get the zone adjustment list. - *@return the list of zone adjustments. - */ - - public SDPObjectList getZoneAdjustments() { - return zoneAdjustments; - } - - /** - * Encode this structure into a canonical form. - */ - public String encode() { - StringBuffer retval = new StringBuffer(ZONE_FIELD); - ListIterator li = zoneAdjustments.listIterator(); - int num = 0; - while (li.hasNext()) { - ZoneAdjustment za = (ZoneAdjustment) li.next(); - if (num > 0) - retval.append(Separators.SP); - retval.append(za.encode()); - num++; - } - retval.append(Separators.NEWLINE); - return retval.toString(); - } - - /** Returns a Hashtable of adjustment times, where: - * key = Date. This is the equivalent of the decimal NTP time value. - * value = Int Adjustment. This is a relative time value in seconds. - * @param create to set - * @throws SdpParseException - * @return create - when true, an empty Hashtable is created, if it is null. - */ - public Hashtable getZoneAdjustments(boolean create) - throws SdpParseException { - Hashtable result = new Hashtable(); - SDPObjectList zoneAdjustments = getZoneAdjustments(); - ZoneAdjustment zone; - if (zoneAdjustments == null) - if (create) - return new Hashtable(); - else - return null; - else { - while ((zone = (ZoneAdjustment) zoneAdjustments.next()) != null) { - Long l = Long.valueOf(zone.getTime()); - Integer time = Integer.valueOf(l.toString()); - Date date = new Date(zone.getTime()); - result.put(date, time); - } - return result; - } - } - - /** Sets the Hashtable of adjustment times, where: - * key = Date. This is the equivalent of the decimal NTP time value. - * value = Int Adjustment. This is a relative time value in seconds. - * @param map Hashtable to set - * @throws SdpException if the parameter is null - */ - public void setZoneAdjustments(Hashtable map) throws SdpException { - if (map == null) - throw new SdpException("The map is null"); - else { - for (Enumeration e = map.keys(); e.hasMoreElements();) { - Object o = e.nextElement(); - if (o instanceof Date) { - Date date = (Date) o; - ZoneAdjustment zone = new ZoneAdjustment(); - zone.setTime(date.getTime()); - addZoneAdjustment(zone); - } else - throw new SdpException("The map is not well-formated "); - } - } - } - - /** Sets whether the field will be output as a typed time or a integer value. - * - * Typed time is formatted as an integer followed by a unit character. - * The unit indicates an appropriate multiplier for - * the integer. - * - * The following unit types are allowed. - * d - days (86400 seconds) - * h - hours (3600 seconds) - * m - minutes (60 seconds) - * s - seconds ( 1 seconds) - * @param typedTime typedTime - if set true, the start and stop times will be - * output in an optimal typed time format; if false, the - * times will be output as integers. - */ - public void setTypedTime(boolean typedTime) { - // Dummy -- feature not implemented. - } - - /** Returns whether the field will be output as a typed time or a integer value. - * - * Typed time is formatted as an integer followed by a unit character. - * The unit indicates an appropriate multiplier for - * the integer. - * - * The following unit types are allowed. - * d - days (86400 seconds) - * h - hours (3600 seconds) - * m - minutes (60 seconds) - * s - seconds ( 1 seconds) - * @return true, if the field will be output as a typed time; false, if as an integer value. - */ - public boolean getTypedTime() { - return false; - } - - public Object clone() { - ZoneField retval = (ZoneField) super.clone(); - if (this.zoneAdjustments != null) - retval.zoneAdjustments = (SDPObjectList) this.zoneAdjustments.clone(); - return retval; - } -} diff --git a/java/gov/nist/javax/sdp/fields/package.html b/java/gov/nist/javax/sdp/fields/package.html deleted file mode 100644 index a438088..0000000 --- a/java/gov/nist/javax/sdp/fields/package.html +++ /dev/null @@ -1,4 +0,0 @@ - -<body> -Classes for SDP Fields. -</body> diff --git a/java/gov/nist/javax/sdp/package.html b/java/gov/nist/javax/sdp/package.html deleted file mode 100644 index f88067f..0000000 --- a/java/gov/nist/javax/sdp/package.html +++ /dev/null @@ -1,5 +0,0 @@ - -<body> -Preliminary -implementation of the javax.sdp package (JSR 141 see <a href="http://www.jcp.org/jsr/detail/141.jsp"> JSR 141 </a> ) -</body> diff --git a/java/gov/nist/javax/sdp/parser/AttributeFieldParser.java b/java/gov/nist/javax/sdp/parser/AttributeFieldParser.java deleted file mode 100644 index a99d95d..0000000 --- a/java/gov/nist/javax/sdp/parser/AttributeFieldParser.java +++ /dev/null @@ -1,187 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -/* - * AttributeFieldParser.java - * - * Created on February 19, 2002, 10:09 AM - */ - -package gov.nist.javax.sdp.parser; -import gov.nist.javax.sdp.fields.*; -import gov.nist.core.*; -import java.text.*; - -/** - * @author Olivier Deruelle - * @version JAIN-SDP-PUBLIC-RELEASE $Revision: 1.6 $ $Date: 2009/07/17 18:57:15 $ - */ -public class AttributeFieldParser extends SDPParser { - - /** Creates new AttributeFieldParser */ - public AttributeFieldParser(String attributeField) { - - this.lexer = new Lexer("charLexer", attributeField); - } - - public AttributeField attributeField() throws ParseException { - try { - AttributeField attributeField = new AttributeField(); - - this.lexer.match('a'); - - this.lexer.SPorHT(); - this.lexer.match('='); - - this.lexer.SPorHT(); - - NameValue nameValue = new NameValue(); - - int ptr = this.lexer.markInputPosition(); - try { - String name = lexer.getNextToken(':'); - this.lexer.consume(1); - String value = lexer.getRest(); - nameValue = new NameValue(name.trim(), value.trim()); - } catch (ParseException ex) { - this.lexer.rewindInputPosition(ptr); - String rest = this.lexer.getRest(); - if (rest == null) - throw new ParseException( - this.lexer.getBuffer(), - this.lexer.getPtr()); - nameValue = new NameValue(rest.trim(), null); - } - attributeField.setAttribute(nameValue); - - this.lexer.SPorHT(); - - return attributeField; - } catch (Exception e) { - e.printStackTrace(); - throw new ParseException(e.getMessage(), 0); - } - } - - public SDPField parse() throws ParseException { - return this.attributeField(); - } - - /** - public static void main(String[] args) throws ParseException { - String attribute[] = { - "a=rtpmap:0 PCMU/8000\n", - "a=rtpmap:31 LPC\n", - "a=rtpmap:0 PCMU/8000\n", - "a=rtpmap:4 G723/8000\n", - "a=rtpmap:18 G729A/8000\n", - "a=ptime:30\n", - "a=orient:landscape\n", - "a=recvonly\n", - "a=T38FaxVersion:0\n", - "a=T38maxBitRate:14400\n", - "a=T38FaxFillBitRemoval:0\n", - "a=T38FaxTranscodingMMR:0\n", - "a=T38FaxTranscodingJBIG:0\n", - "a=T38FaxRateManagement:transferredTCF\n", - "a=T38FaxMaxBuffer:72\n", - "a=T38FaxMaxDatagram:316\n", - "a=T38FaxUdpEC:t38UDPRedundancy\n" - }; - - for (int i = 0; i < attribute.length; i++) { - AttributeFieldParser attributeFieldParser = new AttributeFieldParser( - attribute[i] ); - AttributeField attributeField= attributeFieldParser.attributeField(); - System.out.println("encoded: " + attributeField.encode()); - } - - } - **/ -} -/* - * $Log: AttributeFieldParser.java,v $ - * Revision 1.6 2009/07/17 18:57:15 emcho - * Converts indentation tabs to spaces so that we have a uniform indentation policy in the whole project. - * - * Revision 1.5 2006/07/13 09:02:35 mranga - * Issue number: - * Obtained from: - * Submitted by: jeroen van bemmel - * Reviewed by: mranga - * Moved some changes from jain-sip-1.2 to java.net - * - * CVS: ---------------------------------------------------------------------- - * CVS: Issue number: - * CVS: If this change addresses one or more issues, - * CVS: then enter the issue number(s) here. - * CVS: Obtained from: - * CVS: If this change has been taken from another system, - * CVS: then name the system in this line, otherwise delete it. - * CVS: Submitted by: - * CVS: If this code has been contributed to the project by someone else; i.e., - * CVS: they sent us a patch or a set of diffs, then include their name/email - * CVS: address here. If this is your work then delete this line. - * CVS: Reviewed by: - * CVS: If we are doing pre-commit code reviews and someone else has - * CVS: reviewed your changes, include their name(s) here. - * CVS: If you have not had it reviewed then delete this line. - * - * Revision 1.3 2006/06/19 06:47:26 mranga - * javadoc fixups - * - * Revision 1.2 2006/06/16 15:26:28 mranga - * Added NIST disclaimer to all public domain files. Clean up some javadoc. Fixed a leak - * - * Revision 1.1.1.1 2005/10/04 17:12:34 mranga - * - * Import - * - * - * Revision 1.2 2004/01/22 13:26:28 sverker - * Issue number: - * Obtained from: - * Submitted by: sverker - * Reviewed by: mranga - * - * Major reformat of code to conform with style guide. Resolved compiler and javadoc warnings. Added CVS tags. - * - * CVS: ---------------------------------------------------------------------- - * CVS: Issue number: - * CVS: If this change addresses one or more issues, - * CVS: then enter the issue number(s) here. - * CVS: Obtained from: - * CVS: If this change has been taken from another system, - * CVS: then name the system in this line, otherwise delete it. - * CVS: Submitted by: - * CVS: If this code has been contributed to the project by someone else; i.e., - * CVS: they sent us a patch or a set of diffs, then include their name/email - * CVS: address here. If this is your work then delete this line. - * CVS: Reviewed by: - * CVS: If we are doing pre-commit code reviews and someone else has - * CVS: reviewed your changes, include their name(s) here. - * CVS: If you have not had it reviewed then delete this line. - * - */ diff --git a/java/gov/nist/javax/sdp/parser/BandwidthFieldParser.java b/java/gov/nist/javax/sdp/parser/BandwidthFieldParser.java deleted file mode 100644 index ef2b4df..0000000 --- a/java/gov/nist/javax/sdp/parser/BandwidthFieldParser.java +++ /dev/null @@ -1,162 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -package gov.nist.javax.sdp.parser; - -import gov.nist.javax.sdp.fields.*; -import gov.nist.core.*; -import java.text.*; - -/** - * @author deruelle - * @version JAIN-SDP-PUBLIC-RELEASE $Revision: 1.6 $ $Date: 2009/07/17 18:57:15 $ - */ -public class BandwidthFieldParser extends SDPParser { - - /** Creates new BandwidthFieldParser */ - public BandwidthFieldParser(String bandwidthField) { - this.lexer = new Lexer("charLexer", bandwidthField); - } - - public BandwidthField bandwidthField() throws ParseException { - try { - this.lexer.match('b'); - this.lexer.SPorHT(); - this.lexer.match('='); - this.lexer.SPorHT(); - - BandwidthField bandwidthField = new BandwidthField(); - - NameValue nameValue = nameValue(':'); - String name = nameValue.getName(); - String value = (String) nameValue.getValueAsObject(); - - bandwidthField.setBandwidth(Integer.parseInt(value.trim())); - bandwidthField.setBwtype(name); - - this.lexer.SPorHT(); - return bandwidthField; - } catch (Exception e) { - e.printStackTrace(); - throw new ParseException(lexer.getBuffer(), lexer.getPtr()); - } - } - - public SDPField parse() throws ParseException { - return this.bandwidthField(); - } - - /** - public static void main(String[] args) throws ParseException { - String bandwidth[] = { - "b=X-YZ:128\n", - "b=CT: 31\n", - "b=AS:0 \n", - "b= AS:4\n" - }; - - for (int i = 0; i < bandwidth.length; i++) { - BandwidthFieldParser bandwidthFieldParser=new BandwidthFieldParser( - bandwidth[i] ); - System.out.println("toParse: " + bandwidth[i]); - BandwidthField bandwidthField = bandwidthFieldParser.bandwidthField(); - System.out.println("encoded: " + bandwidthField.encode()); - } - - } - **/ -} -/* - * $Log: BandwidthFieldParser.java,v $ - * Revision 1.6 2009/07/17 18:57:15 emcho - * Converts indentation tabs to spaces so that we have a uniform indentation policy in the whole project. - * - * Revision 1.5 2007/10/22 03:38:26 mranga - * Issue number: - * Obtained from: - * Submitted by: mranga - * Reviewed by: mranga - * - * Java 5 porting. - * - * Revision 1.4 2006/07/13 09:02:41 mranga - * Issue number: - * Obtained from: - * Submitted by: jeroen van bemmel - * Reviewed by: mranga - * Moved some changes from jain-sip-1.2 to java.net - * - * CVS: ---------------------------------------------------------------------- - * CVS: Issue number: - * CVS: If this change addresses one or more issues, - * CVS: then enter the issue number(s) here. - * CVS: Obtained from: - * CVS: If this change has been taken from another system, - * CVS: then name the system in this line, otherwise delete it. - * CVS: Submitted by: - * CVS: If this code has been contributed to the project by someone else; i.e., - * CVS: they sent us a patch or a set of diffs, then include their name/email - * CVS: address here. If this is your work then delete this line. - * CVS: Reviewed by: - * CVS: If we are doing pre-commit code reviews and someone else has - * CVS: reviewed your changes, include their name(s) here. - * CVS: If you have not had it reviewed then delete this line. - * - * Revision 1.3 2006/06/19 06:47:26 mranga - * javadoc fixups - * - * Revision 1.2 2006/06/16 15:26:28 mranga - * Added NIST disclaimer to all public domain files. Clean up some javadoc. Fixed a leak - * - * Revision 1.1.1.1 2005/10/04 17:12:34 mranga - * - * Import - * - * - * Revision 1.2 2004/01/22 13:26:28 sverker - * Issue number: - * Obtained from: - * Submitted by: sverker - * Reviewed by: mranga - * - * Major reformat of code to conform with style guide. Resolved compiler and javadoc warnings. Added CVS tags. - * - * CVS: ---------------------------------------------------------------------- - * CVS: Issue number: - * CVS: If this change addresses one or more issues, - * CVS: then enter the issue number(s) here. - * CVS: Obtained from: - * CVS: If this change has been taken from another system, - * CVS: then name the system in this line, otherwise delete it. - * CVS: Submitted by: - * CVS: If this code has been contributed to the project by someone else; i.e., - * CVS: they sent us a patch or a set of diffs, then include their name/email - * CVS: address here. If this is your work then delete this line. - * CVS: Reviewed by: - * CVS: If we are doing pre-commit code reviews and someone else has - * CVS: reviewed your changes, include their name(s) here. - * CVS: If you have not had it reviewed then delete this line. - * - */ diff --git a/java/gov/nist/javax/sdp/parser/ConnectionFieldParser.java b/java/gov/nist/javax/sdp/parser/ConnectionFieldParser.java deleted file mode 100644 index fd3ec31..0000000 --- a/java/gov/nist/javax/sdp/parser/ConnectionFieldParser.java +++ /dev/null @@ -1,194 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -package gov.nist.javax.sdp.parser; -import gov.nist.javax.sdp.fields.*; -import gov.nist.core.*; - -import java.text.*; - -/** - * Parser for Connection Field. - * - * @version JAIN-SDP-PUBLIC-RELEASE $Revision: 1.5 $ $Date: 2009/07/17 18:57:15 $ - * - * @author Olivier Deruelle - * @author M. Ranganathan - * - * - */ -public class ConnectionFieldParser extends SDPParser { - - /** Creates new ConnectionFieldParser */ - public ConnectionFieldParser(String connectionField) { - this.lexer = new Lexer("charLexer", connectionField); - } - - public ConnectionAddress connectionAddress(String address) { - ConnectionAddress connectionAddress = new ConnectionAddress(); - - int begin = address.indexOf("/"); - - if (begin != -1) { - connectionAddress.setAddress(new Host(address.substring(0, begin))); - - int middle = address.indexOf("/", begin + 1); - if (middle != -1) { - String ttl = address.substring(begin + 1, middle); - connectionAddress.setTtl(Integer.parseInt(ttl.trim())); - - String addressNumber = address.substring(middle + 1); - connectionAddress.setPort( - Integer.parseInt(addressNumber.trim())); - } else { - String ttl = address.substring(begin + 1); - connectionAddress.setTtl(Integer.parseInt(ttl.trim())); - } - } else - connectionAddress.setAddress(new Host(address)); - - return connectionAddress; - } - - public ConnectionField connectionField() throws ParseException { - try { - this.lexer.match('c'); - this.lexer.SPorHT(); - this.lexer.match('='); - this.lexer.SPorHT(); - - ConnectionField connectionField = new ConnectionField(); - - lexer.match(LexerCore.ID); - this.lexer.SPorHT(); - Token token = lexer.getNextToken(); - connectionField.setNettype(token.getTokenValue()); - - lexer.match(LexerCore.ID); - this.lexer.SPorHT(); - token = lexer.getNextToken(); - connectionField.setAddressType(token.getTokenValue()); - this.lexer.SPorHT(); - String rest = lexer.getRest(); - ConnectionAddress connectionAddress = - connectionAddress(rest.trim()); - - connectionField.setAddress(connectionAddress); - - return connectionField; - } catch (Exception e) { - throw new ParseException(lexer.getBuffer(), lexer.getPtr()); - } - } - - public SDPField parse() throws ParseException { - return this.connectionField(); - } - - /** - public static void main(String[] args) throws ParseException { - String connection[] = { - "c=IN IP4 224.2.17.12/127\n", - "c=IN IP4 224.2.1.1/127/3 \n", - "c=IN IP4 135.180.130.88\n" - }; - - for (int i = 0; i < connection.length; i++) { - ConnectionFieldParser connectionFieldParser= - new ConnectionFieldParser( - connection[i] ); - ConnectionField connectionField=connectionFieldParser. - connectionField(); - System.out.println("toParse: " +connection[i]); - System.out.println("encoded: " +connectionField.encode()); - } - - } - **/ -} -/* - * $Log: ConnectionFieldParser.java,v $ - * Revision 1.5 2009/07/17 18:57:15 emcho - * Converts indentation tabs to spaces so that we have a uniform indentation policy in the whole project. - * - * Revision 1.4 2006/07/13 09:02:43 mranga - * Issue number: - * Obtained from: - * Submitted by: jeroen van bemmel - * Reviewed by: mranga - * Moved some changes from jain-sip-1.2 to java.net - * - * CVS: ---------------------------------------------------------------------- - * CVS: Issue number: - * CVS: If this change addresses one or more issues, - * CVS: then enter the issue number(s) here. - * CVS: Obtained from: - * CVS: If this change has been taken from another system, - * CVS: then name the system in this line, otherwise delete it. - * CVS: Submitted by: - * CVS: If this code has been contributed to the project by someone else; i.e., - * CVS: they sent us a patch or a set of diffs, then include their name/email - * CVS: address here. If this is your work then delete this line. - * CVS: Reviewed by: - * CVS: If we are doing pre-commit code reviews and someone else has - * CVS: reviewed your changes, include their name(s) here. - * CVS: If you have not had it reviewed then delete this line. - * - * Revision 1.3 2006/06/19 06:47:26 mranga - * javadoc fixups - * - * Revision 1.2 2006/06/16 15:26:28 mranga - * Added NIST disclaimer to all public domain files. Clean up some javadoc. Fixed a leak - * - * Revision 1.1.1.1 2005/10/04 17:12:34 mranga - * - * Import - * - * - * Revision 1.2 2004/01/22 13:26:28 sverker - * Issue number: - * Obtained from: - * Submitted by: sverker - * Reviewed by: mranga - * - * Major reformat of code to conform with style guide. Resolved compiler and javadoc warnings. Added CVS tags. - * - * CVS: ---------------------------------------------------------------------- - * CVS: Issue number: - * CVS: If this change addresses one or more issues, - * CVS: then enter the issue number(s) here. - * CVS: Obtained from: - * CVS: If this change has been taken from another system, - * CVS: then name the system in this line, otherwise delete it. - * CVS: Submitted by: - * CVS: If this code has been contributed to the project by someone else; i.e., - * CVS: they sent us a patch or a set of diffs, then include their name/email - * CVS: address here. If this is your work then delete this line. - * CVS: Reviewed by: - * CVS: If we are doing pre-commit code reviews and someone else has - * CVS: reviewed your changes, include their name(s) here. - * CVS: If you have not had it reviewed then delete this line. - * - */ diff --git a/java/gov/nist/javax/sdp/parser/EmailFieldParser.java b/java/gov/nist/javax/sdp/parser/EmailFieldParser.java deleted file mode 100644 index b12c937..0000000 --- a/java/gov/nist/javax/sdp/parser/EmailFieldParser.java +++ /dev/null @@ -1,248 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -package gov.nist.javax.sdp.parser; - -import gov.nist.javax.sdp.fields.*; -import java.text.ParseException; - -/** - * Parser for Email Field - * - * @version JAIN-SDP-PUBLIC-RELEASE $Revision: 1.6 $ $Date: 2009/07/17 18:57:16 $ - * - * @author Olivier Deruelle - * @author M. Ranganathan - * - * - */ -public class EmailFieldParser extends SDPParser { - - /** Creates new EmailFieldParser */ - public EmailFieldParser(String emailField) { - this.lexer = new Lexer("charLexer", emailField); - } - - public String getDisplayName(String rest) { - String retval = null; - - try { - int begin = rest.indexOf("("); - int end = rest.indexOf(")"); - - if (begin != -1) { - // e=mjh@isi.edu (Mark Handley) - retval = rest.substring(begin + 1, end); - } else { - // The alternative RFC822 name quoting convention - // is also allowed for - // email addresses. ex: e=Mark Handley <mjh@isi.edu> - int ind = rest.indexOf("<"); - if (ind != -1) { - retval = rest.substring(0, ind); - } else { - // There is no display name !!! - } - } - - } catch (Exception e) { - e.printStackTrace(); - } - return retval; - } - - public Email getEmail(String rest) { - Email email = new Email(); - - try { - int begin = rest.indexOf("("); - - if (begin != -1) { - // e=mjh@isi.edu (Mark Handley) - String emailTemp = rest.substring(0, begin); - int i = emailTemp.indexOf("@"); - if (i != -1) { - email.setUserName(emailTemp.substring(0, i)); - email.setHostName(emailTemp.substring(i + 1)); - } else { - // Pb: the email is not well formatted - } - } else { - // The alternative RFC822 name quoting convention is - // also allowed for - // email addresses. ex: e=Mark Handley <mjh@isi.edu> - int ind = rest.indexOf("<"); - int end = rest.indexOf(">"); - - if (ind != -1) { - String emailTemp = rest.substring(ind + 1, end); - int i = emailTemp.indexOf("@"); - if (i != -1) { - email.setUserName(emailTemp.substring(0, i)); - email.setHostName(emailTemp.substring(i + 1)); - } else { - // Pb: the email is not well formatted - } - - } else { - int i = rest.indexOf("@"); - int j = rest.indexOf("\n"); - if (i != -1) { - email.setUserName(rest.substring(0, i)); - email.setHostName(rest.substring(i + 1)); - } else { - // Pb: the email is not well formatted - } - } - } - - } catch (Exception e) { - e.printStackTrace(); - } - return email; - } - - public EmailField emailField() throws ParseException { - try { - - this.lexer.match('e'); - this.lexer.SPorHT(); - this.lexer.match('='); - this.lexer.SPorHT(); - - EmailField emailField = new EmailField(); - EmailAddress emailAddress = new EmailAddress(); - - String rest = lexer.getRest(); - - String displayName = getDisplayName(rest.trim()); - emailAddress.setDisplayName(displayName); - Email email = getEmail(rest); - emailAddress.setEmail(email); - - emailField.setEmailAddress(emailAddress); - return emailField; - } catch (Exception e) { - throw new ParseException(lexer.getBuffer(), lexer.getPtr()); - } - } - - public SDPField parse() throws ParseException { - return this.emailField(); - } - - -/* - public static void main(String[] args) throws ParseException { - String email[] = { - "e=mjh@isi.edu (Mark Handley)\n", - "e=Mark Handley <mjh@isi.edu>\n", - "e= <mjh@isi.edu>\n", - "e=mjh@isi.edu\n" - }; - - for (int i = 0; i < email.length; i++) { - EmailFieldParser emailFieldParser=new EmailFieldParser( - email[i] ); - EmailField emailFields=emailFieldParser.emailField(); - System.out.println("toParse: " +email[i]); - System.out.println("encoded: " +emailFields.encode()); - } - - } -*/ - -} -/* - * $Log: EmailFieldParser.java,v $ - * Revision 1.6 2009/07/17 18:57:16 emcho - * Converts indentation tabs to spaces so that we have a uniform indentation policy in the whole project. - * - * Revision 1.5 2006/07/13 09:02:36 mranga - * Issue number: - * Obtained from: - * Submitted by: jeroen van bemmel - * Reviewed by: mranga - * Moved some changes from jain-sip-1.2 to java.net - * - * CVS: ---------------------------------------------------------------------- - * CVS: Issue number: - * CVS: If this change addresses one or more issues, - * CVS: then enter the issue number(s) here. - * CVS: Obtained from: - * CVS: If this change has been taken from another system, - * CVS: then name the system in this line, otherwise delete it. - * CVS: Submitted by: - * CVS: If this code has been contributed to the project by someone else; i.e., - * CVS: they sent us a patch or a set of diffs, then include their name/email - * CVS: address here. If this is your work then delete this line. - * CVS: Reviewed by: - * CVS: If we are doing pre-commit code reviews and someone else has - * CVS: reviewed your changes, include their name(s) here. - * CVS: If you have not had it reviewed then delete this line. - * - * Revision 1.3 2006/06/19 06:47:26 mranga - * javadoc fixups - * - * Revision 1.2 2006/06/16 15:26:28 mranga - * Added NIST disclaimer to all public domain files. Clean up some javadoc. Fixed a leak - * - * Revision 1.1.1.1 2005/10/04 17:12:34 mranga - * - * Import - * - * - * Revision 1.3 2004/12/13 15:01:39 mranga - * Issue number: 47 - * Submitted by: espen@dev.java.net - * Reviewed by: mranga - * - * Bug in parsing email field. - * - * Revision 1.2 2004/01/22 13:26:28 sverker - * Issue number: - * Obtained from: - * Submitted by: sverker - * Reviewed by: mranga - * - * Major reformat of code to conform with style guide. Resolved compiler and javadoc warnings. Added CVS tags. - * - * CVS: ---------------------------------------------------------------------- - * CVS: Issue number: - * CVS: If this change addresses one or more issues, - * CVS: then enter the issue number(s) here. - * CVS: Obtained from: - * CVS: If this change has been taken from another system, - * CVS: then name the system in this line, otherwise delete it. - * CVS: Submitted by: - * CVS: If this code has been contributed to the project by someone else; i.e., - * CVS: they sent us a patch or a set of diffs, then include their name/email - * CVS: address here. If this is your work then delete this line. - * CVS: Reviewed by: - * CVS: If we are doing pre-commit code reviews and someone else has - * CVS: reviewed your changes, include their name(s) here. - * CVS: If you have not had it reviewed then delete this line. - * - */ diff --git a/java/gov/nist/javax/sdp/parser/InformationFieldParser.java b/java/gov/nist/javax/sdp/parser/InformationFieldParser.java deleted file mode 100644 index f938f15..0000000 --- a/java/gov/nist/javax/sdp/parser/InformationFieldParser.java +++ /dev/null @@ -1,149 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -/* - * InformationFieldParser.java - * - * Created on February 19, 2002, 5:28 PM - */ -package gov.nist.javax.sdp.parser; - -import gov.nist.javax.sdp.fields.*; -import java.text.*; - -/** - * @author deruelle - * @version JAIN-SDP-PUBLIC-RELEASE $Revision: 1.5 $ $Date: 2009/07/17 18:57:16 $ - */ -public class InformationFieldParser extends SDPParser { - - /** Creates new InformationFieldParser */ - public InformationFieldParser(String informationField) { - this.lexer = new Lexer("charLexer", informationField); - } - - public InformationField informationField() throws ParseException { - try { - this.lexer.match('i'); - this.lexer.SPorHT(); - this.lexer.match('='); - this.lexer.SPorHT(); - - InformationField informationField = new InformationField(); - String rest = lexer.getRest(); - informationField.setInformation(rest.trim()); - - return informationField; - } catch (Exception e) { - throw new ParseException(lexer.getBuffer(), lexer.getPtr()); - } - } - - public SDPField parse() throws ParseException { - return this.informationField(); - } - - /** - public static void main(String[] args) throws ParseException { - String information[] = { - "i=A Seminar on the session description protocol\n" - }; - - for (int i = 0; i < information.length; i++) { - InformationFieldParser informationFieldParser=new InformationFieldParser( - information[i] ); - InformationField informationField= - informationFieldParser.informationField(); - - System.out.println("encoded: " +informationField.encode()); - } - - } - **/ -} -/* - * $Log: InformationFieldParser.java,v $ - * Revision 1.5 2009/07/17 18:57:16 emcho - * Converts indentation tabs to spaces so that we have a uniform indentation policy in the whole project. - * - * Revision 1.4 2006/07/13 09:02:34 mranga - * Issue number: - * Obtained from: - * Submitted by: jeroen van bemmel - * Reviewed by: mranga - * Moved some changes from jain-sip-1.2 to java.net - * - * CVS: ---------------------------------------------------------------------- - * CVS: Issue number: - * CVS: If this change addresses one or more issues, - * CVS: then enter the issue number(s) here. - * CVS: Obtained from: - * CVS: If this change has been taken from another system, - * CVS: then name the system in this line, otherwise delete it. - * CVS: Submitted by: - * CVS: If this code has been contributed to the project by someone else; i.e., - * CVS: they sent us a patch or a set of diffs, then include their name/email - * CVS: address here. If this is your work then delete this line. - * CVS: Reviewed by: - * CVS: If we are doing pre-commit code reviews and someone else has - * CVS: reviewed your changes, include their name(s) here. - * CVS: If you have not had it reviewed then delete this line. - * - * Revision 1.3 2006/06/19 06:47:26 mranga - * javadoc fixups - * - * Revision 1.2 2006/06/16 15:26:28 mranga - * Added NIST disclaimer to all public domain files. Clean up some javadoc. Fixed a leak - * - * Revision 1.1.1.1 2005/10/04 17:12:34 mranga - * - * Import - * - * - * Revision 1.2 2004/01/22 13:26:28 sverker - * Issue number: - * Obtained from: - * Submitted by: sverker - * Reviewed by: mranga - * - * Major reformat of code to conform with style guide. Resolved compiler and javadoc warnings. Added CVS tags. - * - * CVS: ---------------------------------------------------------------------- - * CVS: Issue number: - * CVS: If this change addresses one or more issues, - * CVS: then enter the issue number(s) here. - * CVS: Obtained from: - * CVS: If this change has been taken from another system, - * CVS: then name the system in this line, otherwise delete it. - * CVS: Submitted by: - * CVS: If this code has been contributed to the project by someone else; i.e., - * CVS: they sent us a patch or a set of diffs, then include their name/email - * CVS: address here. If this is your work then delete this line. - * CVS: Reviewed by: - * CVS: If we are doing pre-commit code reviews and someone else has - * CVS: reviewed your changes, include their name(s) here. - * CVS: If you have not had it reviewed then delete this line. - * - */ diff --git a/java/gov/nist/javax/sdp/parser/KeyFieldParser.java b/java/gov/nist/javax/sdp/parser/KeyFieldParser.java deleted file mode 100644 index 82a75d4..0000000 --- a/java/gov/nist/javax/sdp/parser/KeyFieldParser.java +++ /dev/null @@ -1,176 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -package gov.nist.javax.sdp.parser; - -import gov.nist.javax.sdp.fields.*; -import gov.nist.core.*; -import java.text.*; - -/** - * Parser for key field. Ack: bug fix contributed by espen@java.net - * - * @author deruelle - * @version JAIN-SDP-PUBLIC-RELEASE $Revision: 1.7 $ $Date: 2009/07/17 18:57:16 $ - */ -public class KeyFieldParser extends SDPParser { - - /** Creates new KeyFieldParser */ - public KeyFieldParser(String keyField) { - this.lexer = new Lexer("charLexer", keyField); - } - - public KeyField keyField() throws ParseException { - try { - this.lexer.match('k'); - this.lexer.SPorHT(); - this.lexer.match('='); - this.lexer.SPorHT(); - - KeyField keyField = new KeyField(); - //Espen: Stealing the approach from AttributeFieldParser from from here... - NameValue nameValue = new NameValue(); - - int ptr = this.lexer.markInputPosition(); - try { - String name = lexer.getNextToken(':'); - this.lexer.consume(1); - String value = lexer.getRest(); - nameValue = new NameValue(name.trim(), value.trim()); - } catch (ParseException ex) { - this.lexer.rewindInputPosition(ptr); - String rest = this.lexer.getRest(); - if (rest == null) - throw new ParseException( - this.lexer.getBuffer(), - this.lexer.getPtr()); - nameValue = new NameValue(rest.trim(), null); - } - keyField.setType(nameValue.getName()); - keyField.setKeyData((String) nameValue.getValueAsObject()); - this.lexer.SPorHT(); - - return keyField; - } catch (Exception e) { - throw new ParseException(lexer.getBuffer(), lexer.getPtr()); - } - } - - public SDPField parse() throws ParseException { - return this.keyField(); - } - - /** - public static void main(String[] args) throws ParseException { - String key[] = { - "k=clear:1234124\n", - "k=base64:12\n", - "k=http://www.cs.ucl.ac.uk/staff/M.Handley/sdp.03.ps\n", - "k=prompt\n" - }; - - for (int i = 0; i < key.length; i++) { - KeyFieldParser keyFieldParser=new KeyFieldParser( - key[i] ); - KeyField keyField=keyFieldParser.keyField(); - System.out.println("toParse: " +key[i]); - System.out.println("encoded: " +keyField.encode()); - } - - } - **/ -} -/* - * $Log: KeyFieldParser.java,v $ - * Revision 1.7 2009/07/17 18:57:16 emcho - * Converts indentation tabs to spaces so that we have a uniform indentation policy in the whole project. - * - * Revision 1.6 2007/10/22 03:38:26 mranga - * Issue number: - * Obtained from: - * Submitted by: mranga - * Reviewed by: mranga - * - * Java 5 porting. - * - * Revision 1.5 2006/07/13 09:02:42 mranga - * Issue number: - * Obtained from: - * Submitted by: jeroen van bemmel - * Reviewed by: mranga - * Moved some changes from jain-sip-1.2 to java.net - * - * CVS: ---------------------------------------------------------------------- - * CVS: Issue number: - * CVS: If this change addresses one or more issues, - * CVS: then enter the issue number(s) here. - * CVS: Obtained from: - * CVS: If this change has been taken from another system, - * CVS: then name the system in this line, otherwise delete it. - * CVS: Submitted by: - * CVS: If this code has been contributed to the project by someone else; i.e., - * CVS: they sent us a patch or a set of diffs, then include their name/email - * CVS: address here. If this is your work then delete this line. - * CVS: Reviewed by: - * CVS: If we are doing pre-commit code reviews and someone else has - * CVS: reviewed your changes, include their name(s) here. - * CVS: If you have not had it reviewed then delete this line. - * - * Revision 1.3 2006/06/19 06:47:26 mranga - * javadoc fixups - * - * Revision 1.2 2006/06/16 15:26:28 mranga - * Added NIST disclaimer to all public domain files. Clean up some javadoc. Fixed a leak - * - * Revision 1.1.1.1 2005/10/04 17:12:34 mranga - * - * Import - * - * - * Revision 1.3 2004/01/22 13:26:28 sverker - * Issue number: - * Obtained from: - * Submitted by: sverker - * Reviewed by: mranga - * - * Major reformat of code to conform with style guide. Resolved compiler and javadoc warnings. Added CVS tags. - * - * CVS: ---------------------------------------------------------------------- - * CVS: Issue number: - * CVS: If this change addresses one or more issues, - * CVS: then enter the issue number(s) here. - * CVS: Obtained from: - * CVS: If this change has been taken from another system, - * CVS: then name the system in this line, otherwise delete it. - * CVS: Submitted by: - * CVS: If this code has been contributed to the project by someone else; i.e., - * CVS: they sent us a patch or a set of diffs, then include their name/email - * CVS: address here. If this is your work then delete this line. - * CVS: Reviewed by: - * CVS: If we are doing pre-commit code reviews and someone else has - * CVS: reviewed your changes, include their name(s) here. - * CVS: If you have not had it reviewed then delete this line. - * - */ diff --git a/java/gov/nist/javax/sdp/parser/Lexer.java b/java/gov/nist/javax/sdp/parser/Lexer.java deleted file mode 100644 index 5c68105..0000000 --- a/java/gov/nist/javax/sdp/parser/Lexer.java +++ /dev/null @@ -1,109 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -package gov.nist.javax.sdp.parser; -import gov.nist.core.*; - -public class Lexer extends LexerCore { - public Lexer(String lexerName, String buffer) { - super(lexerName, buffer); - - } - - public void selectLexer(String lexerName) { - } - - public static String getFieldName(String line) { - int i = line.indexOf("="); - if (i == -1) - return null; - else - return line.substring(0, i); - } -} -/* - * $Log: Lexer.java,v $ - * Revision 1.5 2009/07/17 18:57:16 emcho - * Converts indentation tabs to spaces so that we have a uniform indentation policy in the whole project. - * - * Revision 1.4 2006/07/13 09:02:41 mranga - * Issue number: - * Obtained from: - * Submitted by: jeroen van bemmel - * Reviewed by: mranga - * Moved some changes from jain-sip-1.2 to java.net - * - * CVS: ---------------------------------------------------------------------- - * CVS: Issue number: - * CVS: If this change addresses one or more issues, - * CVS: then enter the issue number(s) here. - * CVS: Obtained from: - * CVS: If this change has been taken from another system, - * CVS: then name the system in this line, otherwise delete it. - * CVS: Submitted by: - * CVS: If this code has been contributed to the project by someone else; i.e., - * CVS: they sent us a patch or a set of diffs, then include their name/email - * CVS: address here. If this is your work then delete this line. - * CVS: Reviewed by: - * CVS: If we are doing pre-commit code reviews and someone else has - * CVS: reviewed your changes, include their name(s) here. - * CVS: If you have not had it reviewed then delete this line. - * - * Revision 1.3 2006/06/19 06:47:26 mranga - * javadoc fixups - * - * Revision 1.2 2006/06/16 15:26:28 mranga - * Added NIST disclaimer to all public domain files. Clean up some javadoc. Fixed a leak - * - * Revision 1.1.1.1 2005/10/04 17:12:34 mranga - * - * Import - * - * - * Revision 1.2 2004/01/22 13:26:28 sverker - * Issue number: - * Obtained from: - * Submitted by: sverker - * Reviewed by: mranga - * - * Major reformat of code to conform with style guide. Resolved compiler and javadoc warnings. Added CVS tags. - * - * CVS: ---------------------------------------------------------------------- - * CVS: Issue number: - * CVS: If this change addresses one or more issues, - * CVS: then enter the issue number(s) here. - * CVS: Obtained from: - * CVS: If this change has been taken from another system, - * CVS: then name the system in this line, otherwise delete it. - * CVS: Submitted by: - * CVS: If this code has been contributed to the project by someone else; i.e., - * CVS: they sent us a patch or a set of diffs, then include their name/email - * CVS: address here. If this is your work then delete this line. - * CVS: Reviewed by: - * CVS: If we are doing pre-commit code reviews and someone else has - * CVS: reviewed your changes, include their name(s) here. - * CVS: If you have not had it reviewed then delete this line. - * - */ diff --git a/java/gov/nist/javax/sdp/parser/MediaFieldParser.java b/java/gov/nist/javax/sdp/parser/MediaFieldParser.java deleted file mode 100644 index 3d35f5b..0000000 --- a/java/gov/nist/javax/sdp/parser/MediaFieldParser.java +++ /dev/null @@ -1,224 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -package gov.nist.javax.sdp.parser; -import gov.nist.javax.sdp.fields.*; -import gov.nist.core.*; -import java.text.*; -import java.util.*; - -/** - * Parser for Media field. - * - * @version JAIN-SDP-PUBLIC-RELEASE $Revision: 1.6 $ $Date: 2009/07/17 18:57:16 $ - * - * @author Olivier Deruelle - * @author M. Ranganathan <br/> - * - * - * - */ -public class MediaFieldParser extends SDPParser { - - /** Creates new MediaFieldParser */ - public MediaFieldParser(String mediaField) { - lexer = new Lexer("charLexer", mediaField); - } - - public MediaField mediaField() throws ParseException { - if (Debug.parserDebug) - dbg_enter("mediaField"); - try { - MediaField mediaField = new MediaField(); - - lexer.match('m'); - lexer.SPorHT(); - lexer.match('='); - lexer.SPorHT(); - - lexer.match(Lexer.ID); - Token media = lexer.getNextToken(); - mediaField.setMedia(media.getTokenValue()); - this.lexer.SPorHT(); - - lexer.match(Lexer.ID); - Token port = lexer.getNextToken(); - mediaField.setPort(Integer.parseInt(port.getTokenValue())); - - this.lexer.SPorHT(); - - // Some strange media formatting from Sun Ray systems with media - // reported by Emil Ivov and Iain Macdonnell at Sun - if (lexer.hasMoreChars() && lexer.lookAhead(1) == '\n') - return mediaField; - - if (lexer.lookAhead(0) == '/') { - // The number of ports is present: - lexer.consume(1); - lexer.match(Lexer.ID); - Token portsNumber = lexer.getNextToken(); - mediaField.setNports( - Integer.parseInt(portsNumber.getTokenValue())); - this.lexer.SPorHT(); - } - - lexer.match(Lexer.ID); - Token token = lexer.getNextToken(); - this.lexer.SPorHT(); - String transport = token.getTokenValue(); - if (lexer.lookAhead(0) == '/') { - lexer.consume(1); - lexer.match(Lexer.ID); - Token transportTemp = lexer.getNextToken(); - transport = transport + "/" + transportTemp.getTokenValue(); - this.lexer.SPorHT(); - } - - mediaField.setProto(transport); - - // The formats list: - Vector formatList = new Vector(); - while (lexer.hasMoreChars()) { - char la = lexer.lookAhead(0); - if (la == '\n' || la == '\r') - break; - this.lexer.SPorHT(); - //while(lexer.lookAhead(0) == ' ') lexer.consume(1); - lexer.match(Lexer.ID); - Token tok = lexer.getNextToken(); - this.lexer.SPorHT(); - String format = tok.getTokenValue().trim(); - if (!format.equals("")) - formatList.add(format); - } - mediaField.setFormats(formatList); - - return mediaField; - } catch (Exception e) { - e.printStackTrace(); - //System.out.println(lexer.getPtr()); - //System.out.println("char = [" + lexer.lookAhead(0) +"]"); - throw new ParseException(lexer.getBuffer(), lexer.getPtr()); - } finally { - dbg_leave("mediaField"); - } - } - - public SDPField parse() throws ParseException { - return this.mediaField(); - } - - /** - public static void main(String[] args) throws ParseException { - String media[] = { - "m=video 0\r\n", - "m=audio 50006 RTP/AVP 0 8 4 18\r\n", - "m=video 49170/2 RTP/AVP 31\n", - "m=video 49232 RTP/AVP 0\n", - "m=audio 49230 RTP/AVP 96 97 98\n", - "m=application 32416 udp wb\n", - "m=control 49234 H323 mc\n", - "m=audio 50012 RTP/AVP 0 8 4 18\n", - "m=image 49172 udptl t38\n" - }; - - for (int i = 0; i < media.length; i++) { - MediaFieldParser mediaFieldParser=new MediaFieldParser( - media[i] ); - System.out.println("toParse: " + media[i]); - MediaField mediaField=mediaFieldParser.mediaField(); - System.out.println("encoded: " +mediaField.encode()); - } - - } - **/ -} -/* - * $Log: MediaFieldParser.java,v $ - * Revision 1.6 2009/07/17 18:57:16 emcho - * Converts indentation tabs to spaces so that we have a uniform indentation policy in the whole project. - * - * Revision 1.5 2007/02/06 16:40:00 belangery - * Introduced simple code optimizations. - * - * Revision 1.4 2006/07/13 09:02:42 mranga - * Issue number: - * Obtained from: - * Submitted by: jeroen van bemmel - * Reviewed by: mranga - * Moved some changes from jain-sip-1.2 to java.net - * - * CVS: ---------------------------------------------------------------------- - * CVS: Issue number: - * CVS: If this change addresses one or more issues, - * CVS: then enter the issue number(s) here. - * CVS: Obtained from: - * CVS: If this change has been taken from another system, - * CVS: then name the system in this line, otherwise delete it. - * CVS: Submitted by: - * CVS: If this code has been contributed to the project by someone else; i.e., - * CVS: they sent us a patch or a set of diffs, then include their name/email - * CVS: address here. If this is your work then delete this line. - * CVS: Reviewed by: - * CVS: If we are doing pre-commit code reviews and someone else has - * CVS: reviewed your changes, include their name(s) here. - * CVS: If you have not had it reviewed then delete this line. - * - * Revision 1.3 2006/06/19 06:47:26 mranga - * javadoc fixups - * - * Revision 1.2 2006/06/16 15:26:28 mranga - * Added NIST disclaimer to all public domain files. Clean up some javadoc. Fixed a leak - * - * Revision 1.1.1.1 2005/10/04 17:12:34 mranga - * - * Import - * - * - * Revision 1.2 2004/01/22 13:26:28 sverker - * Issue number: - * Obtained from: - * Submitted by: sverker - * Reviewed by: mranga - * - * Major reformat of code to conform with style guide. Resolved compiler and javadoc warnings. Added CVS tags. - * - * CVS: ---------------------------------------------------------------------- - * CVS: Issue number: - * CVS: If this change addresses one or more issues, - * CVS: then enter the issue number(s) here. - * CVS: Obtained from: - * CVS: If this change has been taken from another system, - * CVS: then name the system in this line, otherwise delete it. - * CVS: Submitted by: - * CVS: If this code has been contributed to the project by someone else; i.e., - * CVS: they sent us a patch or a set of diffs, then include their name/email - * CVS: address here. If this is your work then delete this line. - * CVS: Reviewed by: - * CVS: If we are doing pre-commit code reviews and someone else has - * CVS: reviewed your changes, include their name(s) here. - * CVS: If you have not had it reviewed then delete this line. - * - */ diff --git a/java/gov/nist/javax/sdp/parser/OriginFieldParser.java b/java/gov/nist/javax/sdp/parser/OriginFieldParser.java deleted file mode 100644 index 9b40e00..0000000 --- a/java/gov/nist/javax/sdp/parser/OriginFieldParser.java +++ /dev/null @@ -1,225 +0,0 @@ -/* - * Conditions Of Use - * - * This software was developed by employees of the National Institute of - * Standards and Technology (NIST), an agency of the Federal Government. - * Pursuant to title 15 Untied States Code Section 105, works of NIST - * employees are not subject to copyright protection in the United States - * and are considered to be in the public domain. As a result, a formal - * license is not needed to use the software. - * - * This software is provided by NIST as a service and is expressly - * provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED - * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT - * AND DATA ACCURACY. NIST does not warrant or make any representations - * regarding the use of the software or the results thereof, including but - * not limited to the correctness, accuracy, reliability or usefulness of - * the software. - * - * Permission to use this software is contingent upon your acceptance - * of the terms of this agreement - * - * . - * - */ -package gov.nist.javax.sdp.parser; - -import gov.nist.javax.sdp.fields.*; -import gov.nist.core.*; -import java.text.*; - -/** - * @author deruelle - * @version JAIN-SDP-PUBLIC-RELEASE $Revision: 1.8 $ $Date: 2009/07/17 18:57:16 $ - */ -public class OriginFieldParser extends SDPParser { - - /** Creates new OriginFieldParser */ - public OriginFieldParser(String originField) { - lexer = new Lexer("charLexer", originField); - } - - public OriginField originField() throws ParseException { - try { - OriginField originField = new OriginField(); - - lexer.match('o'); - lexer.SPorHT(); - lexer.match('='); - lexer.SPorHT(); - - lexer.match(LexerCore.SAFE); - Token userName = lexer.getNextToken(); - originField.setUsername(userName.getTokenValue()); - this.lexer.SPorHT(); - - lexer.match(LexerCore.ID); - //lexer.ttokenSafe(); - Token sessionId = lexer.getNextToken(); - // guard against very long session IDs - String sessId = sessionId.getTokenValue(); - if (sessId.length() > 18) - sessId = sessId.substring(sessId.length() - 18); - try { - originField.setSessId(Long.parseLong(sessId)); - } catch (NumberFormatException ex) { - originField.setSessionId(sessId); - } - this.lexer.SPorHT(); - - lexer.match(LexerCore.ID); - Token sessionVersion = lexer.getNextToken(); - // guard against very long session Verion - String sessVer = sessionVersion.getTokenValue(); - if (sessVer.length() > 18) - sessVer = sessVer.substring(sessVer.length() - 18); - try { - originField.setSessVersion(Long.parseLong(sessVer)); - } catch (NumberFormatException ex) { - originField.setSessVersion(sessVer); - - } - this.lexer.SPorHT(); - - lexer.match(LexerCore.ID); - Token networkType = lexer.getNextToken(); - originField.setNettype(networkType.getTokenValue()); - this.lexer.SPorHT(); - - lexer.match(LexerCore.ID); - Token addressType = lexer.getNextToken(); - originField.setAddrtype(addressType.getTokenValue()); - this.lexer.SPorHT(); - - String host = lexer.getRest(); - HostNameParser hostNameParser = new HostNameParser(host); - Host h = hostNameParser.host(); - originField.setAddress(h); - - return originField; - } catch (Exception e) { - e.printStackTrace(); - throw new ParseException(lexer.getBuffer(), lexer.getPtr()); - } - } - - public SDPField parse() throws ParseException { - return this.originField(); - } - - public static void main(String[] args) throws ParseException { - String origin[] = { - "o=- 45ec4ba1.1 45ec4ba1 in ip4 10.1.80.200\r\n", - "o=- 4322650003578 0 IN IP4 192.53.18.122\r\n", - "o=4855 12345678901234567890 12345678901234567890 IN IP4 166.35.224.216\n", - "o=mh/andley 2890844526 2890842807 IN IP4 126.16.64.4\n", - "o=UserB 2890844527 2890844527 IN IP4 everywhere.com\n", - "o=UserA 2890844526 2890844526 IN IP4 here.com\n", - "o=IFAXTERMINAL01 2890844527 2890844527 IN IP4 ift.here.com\n", - "o=GATEWAY1 2890844527 2890844527 IN IP4 gatewayone.wcom.com\n", - "o=- 2890844527 2890844527 IN IP4 gatewayone.wcom.com\n" }; - - for (int i = 0; i < origin.length; i++) { - OriginFieldParser originFieldParser = new OriginFieldParser( - origin[i]); - OriginField originField = originFieldParser.originField(); - System.out.println("toParse :" + origin[i]); - System.out.println("encoded: " + originField.encode()); - } - - } -} -/* - * $Log: OriginFieldParser.java,v $ - * Revision 1.8 2009/07/17 18:57:16 emcho - * Converts indentation tabs to spaces so that we have a uniform indentation policy in the whole project. - * - * Revision 1.7 2007/03/08 05:20:20 mranga - * Issue number: - * Obtained from: - * Submitted by: - * Reviewed by: mranga - * Fix logging code. Losen up on Sdp parsing (allow for extra long origin fields) - * CVS: ---------------------------------------------------------------------- - * CVS: Issue number: - * CVS: If this change addresses one or more issues, - * CVS: then enter the issue number(s) here. - * CVS: Obtained from: - * CVS: If this change has been taken from another system, - * CVS: then name the system in this line, otherwise delete it. - * CVS: Submitted by: - * CVS: If this code has been contributed to the project by someone else; i.e., - * CVS: they sent us a patch or a set of diffs, then include their name/email - * CVS: address here. If this is your work then delete this line. - * CVS: Reviewed by: - * CVS: If we are doing pre-commit code reviews and someone else has - * CVS: reviewed your changes, include their name(s) here. - * CVS: If you have not had it reviewed then delete this line. - * Revision 1.6 2006/11/16 19:05:44 pmusgrave - * Issue number: 82 - SDP with Origin/Time or Zone creater than 18 digits causes - * parse exception Obtained from: Submitted by: pmusgrave@newheights.com - * Reviewed by: CVS: - * ---------------------------------------------------------------------- CVS: - * Issue number: CVS: If this change addresses one or more issues, CVS: then - * enter the issue number(s) here. CVS: Obtained from: CVS: If this change has - * been taken from another system, CVS: then name the system in this line, - * otherwise delete it. CVS: Submitted by: CVS: If this code has been - * contributed to the project by someone else; i.e., CVS: they sent us a patch - * or a set of diffs, then include their name/email CVS: address here. If this - * is your work then delete this line. CVS: Reviewed by: CVS: If we are doing - * pre-commit code reviews and someone else has CVS: reviewed your changes, - * include their name(s) here. CVS: If you have not had it reviewed then delete - * this line. - * - * Revision 1.5 2006/07/13 09:02:36 mranga Issue number: Obtained from: - * Submitted by: jeroen van bemmel Reviewed by: mranga Moved some changes from - * jain-sip-1.2 to java.net - * - * CVS: ---------------------------------------------------------------------- - * CVS: Issue number: CVS: If this change addresses one or more issues, CVS: - * then enter the issue number(s) here. CVS: Obtained from: CVS: If this change - * has been taken from another system, CVS: then name the system in this line, - * otherwise delete it. CVS: Submitted by: CVS: If this code has been - * contributed to the project by someone else; i.e., CVS: they sent us a patch - * or a set of diffs, then include their name/email CVS: address here. If this - * is your work then delete this line. CVS: Reviewed by: CVS: If we are doing - * pre-commit code reviews and someone else has CVS: reviewed your changes, - * include their name(s) here. CVS: If you have not had it reviewed then delete - * this line. - * - * Revision 1.4 2006/06/19 06:47:26 mranga javadoc fixups - * - * Revision 1.3 2006/06/16 15:26:28 mranga Added NIST disclaimer to all public - * domain files. Clean up some javadoc. Fixed a leak - * - * Revision 1.2 2006/04/01 04:52:22 mranga *** empty log message *** - * - * Revision 1.1.1.1 2005/10/04 17:12:34 mranga - * - * Import - * - * - * Revision 1.3 2004/10/21 14:57:17 mranga Reviewed by: mranga - * - * Fixed origin field parser for sdp. - * - * Revision 1.2 2004/01/22 13:26:28 sverker Issue number: Obtained from: - * Submitted by: sverker Reviewed by: mranga - * - * Major reformat of code to conform with style guide. Resolved compiler and - * javadoc warnings. Added CVS tags. - * - * CVS: ---------------------------------------------------------------------- - * CVS: Issue number: CVS: If this change addresses one or more issues, CVS: - * then enter the issue number(s) here. CVS: Obtained from: CVS: If this change - * has been taken from another system, CVS: then name the system in this line, - * otherwise delete it. CVS: Submitted by: CVS: If this code has been - * contributed to the project by someone else; i.e., CVS: they sent us a patch - * or a set of diffs, then include their name/email CVS: address here. If this - * is your work then delete this line. CVS: Reviewed by: CVS: If we are doing - * pre-commit code reviews and someone else has CVS: reviewed your changes, - * include their name(s) here. CVS: If you have not had it reviewed then delete - * this line. - * - */ diff --git a/java/gov/nist/javax/sdp/parser/ParserFactory.java b/java/gov/nist/javax/sdp/parser/ParserFactory.java deleted file mode 100644 index 2f28604..0000000 --- a/java/gov/nist/javax/sdp/parser/ParserFactory.java +++ /dev/null @@ -1,170 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -package gov.nist.javax.sdp.parser; -import java.util.*; -import gov.nist.core.*; -import java.text.ParseException; -import java.lang.reflect.*; - -/** Factory for creating parsers for the SDP stuff. -* -*@version 1.2 -* -*@author M. Ranganathan <br/> -* -* -*/ -public class ParserFactory { - private static Hashtable parserTable; - private static Class[] constructorArgs; - private static final String packageName = - PackageNames.SDP_PACKAGE + ".parser"; - - private static Class getParser(String parserClass) { - try { - return Class.forName(packageName + "." + parserClass); - } catch (ClassNotFoundException ex) { - System.out.println("Could not find class"); - ex.printStackTrace(); - System.exit(0); - return null; // dummy - } - } - - static { - constructorArgs = new Class[1]; - constructorArgs[0] = String.class; - parserTable = new Hashtable(); - parserTable.put("a", getParser("AttributeFieldParser")); - parserTable.put("b", getParser("BandwidthFieldParser")); - parserTable.put("c", getParser("ConnectionFieldParser")); - parserTable.put("e", getParser("EmailFieldParser")); - parserTable.put("i", getParser("InformationFieldParser")); - parserTable.put("k", getParser("KeyFieldParser")); - parserTable.put("m", getParser("MediaFieldParser")); - parserTable.put("o", getParser("OriginFieldParser")); - parserTable.put("p", getParser("PhoneFieldParser")); - parserTable.put("v", getParser("ProtoVersionFieldParser")); - parserTable.put("r", getParser("RepeatFieldParser")); - parserTable.put("s", getParser("SessionNameFieldParser")); - parserTable.put("t", getParser("TimeFieldParser")); - parserTable.put("u", getParser("URIFieldParser")); - parserTable.put("z", getParser("ZoneFieldParser")); - } - - public static SDPParser createParser(String field) throws ParseException { - String fieldName = Lexer.getFieldName(field); - if (fieldName == null) - return null; - Class parserClass = (Class) parserTable.get(fieldName.toLowerCase()); - - if (parserClass != null) { - try { - - Constructor cons = parserClass.getConstructor(constructorArgs); - Object[] args = new Object[1]; - args[0] = field; - SDPParser retval = (SDPParser) cons.newInstance(args); - return retval; - - } catch (Exception ex) { - InternalErrorHandler.handleException(ex); - return null; // to placate the compiler. - } - } else - throw new ParseException( - "Could not find parser for " + fieldName, - 0); - } - -} -/* - * $Log: ParserFactory.java,v $ - * Revision 1.6 2009/07/17 18:57:16 emcho - * Converts indentation tabs to spaces so that we have a uniform indentation policy in the whole project. - * - * Revision 1.5 2006/07/13 09:02:33 mranga - * Issue number: - * Obtained from: - * Submitted by: jeroen van bemmel - * Reviewed by: mranga - * Moved some changes from jain-sip-1.2 to java.net - * - * CVS: ---------------------------------------------------------------------- - * CVS: Issue number: - * CVS: If this change addresses one or more issues, - * CVS: then enter the issue number(s) here. - * CVS: Obtained from: - * CVS: If this change has been taken from another system, - * CVS: then name the system in this line, otherwise delete it. - * CVS: Submitted by: - * CVS: If this code has been contributed to the project by someone else; i.e., - * CVS: they sent us a patch or a set of diffs, then include their name/email - * CVS: address here. If this is your work then delete this line. - * CVS: Reviewed by: - * CVS: If we are doing pre-commit code reviews and someone else has - * CVS: reviewed your changes, include their name(s) here. - * CVS: If you have not had it reviewed then delete this line. - * - * Revision 1.3 2006/06/19 06:47:26 mranga - * javadoc fixups - * - * Revision 1.2 2006/06/16 15:26:28 mranga - * Added NIST disclaimer to all public domain files. Clean up some javadoc. Fixed a leak - * - * Revision 1.1.1.1 2005/10/04 17:12:34 mranga - * - * Import - * - * - * Revision 1.3 2005/04/04 09:29:02 dmuresan - * Replaced new String().getClass() with String.class. - * - * Revision 1.2 2004/01/22 13:26:28 sverker - * Issue number: - * Obtained from: - * Submitted by: sverker - * Reviewed by: mranga - * - * Major reformat of code to conform with style guide. Resolved compiler and javadoc warnings. Added CVS tags. - * - * CVS: ---------------------------------------------------------------------- - * CVS: Issue number: - * CVS: If this change addresses one or more issues, - * CVS: then enter the issue number(s) here. - * CVS: Obtained from: - * CVS: If this change has been taken from another system, - * CVS: then name the system in this line, otherwise delete it. - * CVS: Submitted by: - * CVS: If this code has been contributed to the project by someone else; i.e., - * CVS: they sent us a patch or a set of diffs, then include their name/email - * CVS: address here. If this is your work then delete this line. - * CVS: Reviewed by: - * CVS: If we are doing pre-commit code reviews and someone else has - * CVS: reviewed your changes, include their name(s) here. - * CVS: If you have not had it reviewed then delete this line. - * - */ diff --git a/java/gov/nist/javax/sdp/parser/PhoneFieldParser.java b/java/gov/nist/javax/sdp/parser/PhoneFieldParser.java deleted file mode 100644 index e85547f..0000000 --- a/java/gov/nist/javax/sdp/parser/PhoneFieldParser.java +++ /dev/null @@ -1,216 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -package gov.nist.javax.sdp.parser; - -import gov.nist.javax.sdp.fields.*; -import java.text.ParseException; - -/** - * Parser for the Phone field. - * - * @version JAIN-SDP-PUBLIC-RELEASE $Revision: 1.5 $ $Date: 2009/07/17 18:57:17 $ - * - * @author Olivier Deruelle - * @author M. Ranganathan - * - * - * - */ -public class PhoneFieldParser extends SDPParser { - - /** Creates new PhoneFieldParser */ - public PhoneFieldParser(String phoneField) { - lexer = new Lexer("charLexer", phoneField); - } - - public String getDisplayName(String rest) { - String retval = null; - - try { - int begin = rest.indexOf("("); - int end = rest.indexOf(")"); - - if (begin != -1) { - // p=+44-171-380-7777 (Mark Handley) - retval = rest.substring(begin + 1, end); - } else { - // The alternative RFC822 name quoting convention is - // also allowed for - // email addresses. ex: p=Mark Handley <+44-171-380-7777> - int ind = rest.indexOf("<"); - if (ind != -1) { - retval = rest.substring(0, ind); - } else { - // There is no display name !!! - } - } - - } catch (Exception e) { - e.printStackTrace(); - } - return retval; - } - - public String getPhoneNumber(String rest) throws ParseException { - String phoneNumber = null; - - try { - int begin = rest.indexOf("("); - - if (begin != -1) { - // p=+44-171-380-7777 (Mark Handley) - phoneNumber = rest.substring(0, begin).trim(); - } else { - // The alternative RFC822 name quoting convention is also allowed for - // email addresses. ex: p=Mark Handley <+44-171-380-7777> - int ind = rest.indexOf("<"); - int end = rest.indexOf(">"); - - if (ind != -1) { - phoneNumber = rest.substring(ind + 1, end); - } else { - // p=+44-171-380-7777 - phoneNumber = rest.trim(); - } - } - } catch (Exception e) { - throw new ParseException(lexer.getBuffer(), lexer.getPtr()); - } - return phoneNumber; - } - - public PhoneField phoneField() throws ParseException { - try { - - this.lexer.match('p'); - this.lexer.SPorHT(); - this.lexer.match('='); - this.lexer.SPorHT(); - - PhoneField phoneField = new PhoneField(); - String rest = lexer.getRest(); - - String displayName = getDisplayName(rest.trim()); - phoneField.setName(displayName); - String phoneNumber = getPhoneNumber(rest); - phoneField.setPhoneNumber(phoneNumber); - - return phoneField; - } catch (Exception e) { - throw new ParseException(lexer.getBuffer(), lexer.getPtr()); - } - } - - public SDPField parse() throws ParseException { - return this.phoneField(); - } - - /** - - public static void main(String[] args) throws ParseException { - String phone[] = { - "p=+44-171-380-7777 (Mark Handley)\n", - "p=Mark Handley <+1 617 253 6011>\n", - "p= <+44-171-380-7777>\n", - "p=+44-171-380-7777\n" - }; - - for (int i = 0; i < phone.length; i++) { - PhoneFieldParser phoneFieldParser=new PhoneFieldParser( - phone[i] ); - PhoneField phoneFields=phoneFieldParser.phoneField(); - System.out.println("toParse: " + phone[i]); - System.out.println("encoded: " +phoneFields.encode()); - } - - } - - **/ -} -/* - * $Log: PhoneFieldParser.java,v $ - * Revision 1.5 2009/07/17 18:57:17 emcho - * Converts indentation tabs to spaces so that we have a uniform indentation policy in the whole project. - * - * Revision 1.4 2006/07/13 09:02:34 mranga - * Issue number: - * Obtained from: - * Submitted by: jeroen van bemmel - * Reviewed by: mranga - * Moved some changes from jain-sip-1.2 to java.net - * - * CVS: ---------------------------------------------------------------------- - * CVS: Issue number: - * CVS: If this change addresses one or more issues, - * CVS: then enter the issue number(s) here. - * CVS: Obtained from: - * CVS: If this change has been taken from another system, - * CVS: then name the system in this line, otherwise delete it. - * CVS: Submitted by: - * CVS: If this code has been contributed to the project by someone else; i.e., - * CVS: they sent us a patch or a set of diffs, then include their name/email - * CVS: address here. If this is your work then delete this line. - * CVS: Reviewed by: - * CVS: If we are doing pre-commit code reviews and someone else has - * CVS: reviewed your changes, include their name(s) here. - * CVS: If you have not had it reviewed then delete this line. - * - * Revision 1.3 2006/06/19 06:47:26 mranga - * javadoc fixups - * - * Revision 1.2 2006/06/16 15:26:28 mranga - * Added NIST disclaimer to all public domain files. Clean up some javadoc. Fixed a leak - * - * Revision 1.1.1.1 2005/10/04 17:12:34 mranga - * - * Import - * - * - * Revision 1.2 2004/01/22 13:26:28 sverker - * Issue number: - * Obtained from: - * Submitted by: sverker - * Reviewed by: mranga - * - * Major reformat of code to conform with style guide. Resolved compiler and javadoc warnings. Added CVS tags. - * - * CVS: ---------------------------------------------------------------------- - * CVS: Issue number: - * CVS: If this change addresses one or more issues, - * CVS: then enter the issue number(s) here. - * CVS: Obtained from: - * CVS: If this change has been taken from another system, - * CVS: then name the system in this line, otherwise delete it. - * CVS: Submitted by: - * CVS: If this code has been contributed to the project by someone else; i.e., - * CVS: they sent us a patch or a set of diffs, then include their name/email - * CVS: address here. If this is your work then delete this line. - * CVS: Reviewed by: - * CVS: If we are doing pre-commit code reviews and someone else has - * CVS: reviewed your changes, include their name(s) here. - * CVS: If you have not had it reviewed then delete this line. - * - */ diff --git a/java/gov/nist/javax/sdp/parser/ProtoVersionFieldParser.java b/java/gov/nist/javax/sdp/parser/ProtoVersionFieldParser.java deleted file mode 100644 index 90d25b7..0000000 --- a/java/gov/nist/javax/sdp/parser/ProtoVersionFieldParser.java +++ /dev/null @@ -1,157 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -package gov.nist.javax.sdp.parser; - -import gov.nist.javax.sdp.fields.*; -import gov.nist.core.*; -import java.text.*; - -/** - * Parser for Proto Version. - * - * @version JAIN-SDP-PUBLIC-RELEASE $Revision: 1.5 $ $Date: 2009/07/17 18:57:17 $ - * - * @author Olivier Deruelle <deruelle@antd.nist.gov> - * @author M. Ranganathan - * - * - * - */ -public class ProtoVersionFieldParser extends SDPParser { - - /** Creates new ProtoVersionFieldParser */ - public ProtoVersionFieldParser(String protoVersionField) { - this.lexer = new Lexer("charLexer", protoVersionField); - } - - public ProtoVersionField protoVersionField() throws ParseException { - try { - this.lexer.match('v'); - this.lexer.SPorHT(); - this.lexer.match('='); - this.lexer.SPorHT(); - - ProtoVersionField protoVersionField = new ProtoVersionField(); - lexer.match(Lexer.ID); - Token version = lexer.getNextToken(); - protoVersionField.setProtoVersion( - Integer.parseInt(version.getTokenValue())); - this.lexer.SPorHT(); - - return protoVersionField; - } catch (Exception e) { - throw lexer.createParseException(); - } - } - - public SDPField parse() throws ParseException { - return this.protoVersionField(); - } - - /** - public static void main(String[] args) throws ParseException { - String protoVersion[] = { - "v=0\n" - }; - - for (int i = 0; i < protoVersion.length; i++) { - ProtoVersionFieldParser protoVersionFieldParser= - new ProtoVersionFieldParser( - protoVersion[i] ); - ProtoVersionField protoVersionField = - protoVersionFieldParser.protoVersionField(); - System.out.println - ("encoded: " +protoVersionField.encode()); - } - - } - **/ - -} -/* - * $Log: ProtoVersionFieldParser.java,v $ - * Revision 1.5 2009/07/17 18:57:17 emcho - * Converts indentation tabs to spaces so that we have a uniform indentation policy in the whole project. - * - * Revision 1.4 2006/07/13 09:02:39 mranga - * Issue number: - * Obtained from: - * Submitted by: jeroen van bemmel - * Reviewed by: mranga - * Moved some changes from jain-sip-1.2 to java.net - * - * CVS: ---------------------------------------------------------------------- - * CVS: Issue number: - * CVS: If this change addresses one or more issues, - * CVS: then enter the issue number(s) here. - * CVS: Obtained from: - * CVS: If this change has been taken from another system, - * CVS: then name the system in this line, otherwise delete it. - * CVS: Submitted by: - * CVS: If this code has been contributed to the project by someone else; i.e., - * CVS: they sent us a patch or a set of diffs, then include their name/email - * CVS: address here. If this is your work then delete this line. - * CVS: Reviewed by: - * CVS: If we are doing pre-commit code reviews and someone else has - * CVS: reviewed your changes, include their name(s) here. - * CVS: If you have not had it reviewed then delete this line. - * - * Revision 1.3 2006/06/19 06:47:26 mranga - * javadoc fixups - * - * Revision 1.2 2006/06/16 15:26:28 mranga - * Added NIST disclaimer to all public domain files. Clean up some javadoc. Fixed a leak - * - * Revision 1.1.1.1 2005/10/04 17:12:34 mranga - * - * Import - * - * - * Revision 1.2 2004/01/22 13:26:28 sverker - * Issue number: - * Obtained from: - * Submitted by: sverker - * Reviewed by: mranga - * - * Major reformat of code to conform with style guide. Resolved compiler and javadoc warnings. Added CVS tags. - * - * CVS: ---------------------------------------------------------------------- - * CVS: Issue number: - * CVS: If this change addresses one or more issues, - * CVS: then enter the issue number(s) here. - * CVS: Obtained from: - * CVS: If this change has been taken from another system, - * CVS: then name the system in this line, otherwise delete it. - * CVS: Submitted by: - * CVS: If this code has been contributed to the project by someone else; i.e., - * CVS: they sent us a patch or a set of diffs, then include their name/email - * CVS: address here. If this is your work then delete this line. - * CVS: Reviewed by: - * CVS: If we are doing pre-commit code reviews and someone else has - * CVS: reviewed your changes, include their name(s) here. - * CVS: If you have not had it reviewed then delete this line. - * - */ diff --git a/java/gov/nist/javax/sdp/parser/RepeatFieldParser.java b/java/gov/nist/javax/sdp/parser/RepeatFieldParser.java deleted file mode 100644 index 1f2ad07..0000000 --- a/java/gov/nist/javax/sdp/parser/RepeatFieldParser.java +++ /dev/null @@ -1,242 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -package gov.nist.javax.sdp.parser; - -import gov.nist.javax.sdp.fields.*; -import gov.nist.core.*; -import java.text.ParseException; - -/** Parser for Repeat field. -* -*@version 1.2 -* -*@author Olivier Deruelle -*@author M. Ranganathan <br/> -* -* -* - */ -public class RepeatFieldParser extends SDPParser { - - /** Creates new RepeatFieldsParser */ - public RepeatFieldParser(String repeatField) { - lexer = new Lexer("charLexer", repeatField); - } - - /** Get the typed time. - * - * @param tokenValue to convert into a typed time. - * @return the typed time - */ - public TypedTime getTypedTime(String tokenValue) { - TypedTime typedTime = new TypedTime(); - - if (tokenValue.endsWith("d")) { - typedTime.setUnit("d"); - String t = tokenValue.replace('d', ' '); - - typedTime.setTime(Integer.parseInt(t.trim())); - } else if (tokenValue.endsWith("h")) { - typedTime.setUnit("h"); - String t = tokenValue.replace('h', ' '); - typedTime.setTime(Integer.parseInt(t.trim())); - } else if (tokenValue.endsWith("m")) { - typedTime.setUnit("m"); - String t = tokenValue.replace('m', ' '); - typedTime.setTime(Integer.parseInt(t.trim())); - } else { - typedTime.setUnit("s"); - if (tokenValue.endsWith("s")) { - String t = tokenValue.replace('s', ' '); - typedTime.setTime(Integer.parseInt(t.trim())); - } else - typedTime.setTime(Integer.parseInt(tokenValue.trim())); - } - return typedTime; - } - - /** parse the field string - * @return RepeatFields - */ - public RepeatField repeatField() throws ParseException { - try { - - this.lexer.match('r'); - this.lexer.SPorHT(); - this.lexer.match('='); - this.lexer.SPorHT(); - - RepeatField repeatField = new RepeatField(); - - lexer.match(LexerCore.ID); - Token repeatInterval = lexer.getNextToken(); - this.lexer.SPorHT(); - TypedTime typedTime = getTypedTime(repeatInterval.getTokenValue()); - repeatField.setRepeatInterval(typedTime); - - lexer.match(LexerCore.ID); - Token activeDuration = lexer.getNextToken(); - this.lexer.SPorHT(); - typedTime = getTypedTime(activeDuration.getTokenValue()); - repeatField.setActiveDuration(typedTime); - - // The offsets list: - /*Patch 117 */ - while (lexer.hasMoreChars()) { - char la = lexer.lookAhead(0); - if (la == '\n' || la == '\r') - break; - lexer.match(LexerCore.ID); - Token offsets = lexer.getNextToken(); - this.lexer.SPorHT(); - typedTime = getTypedTime(offsets.getTokenValue()); - repeatField.addOffset(typedTime); - } - - return repeatField; - } catch (Exception e) { - throw lexer.createParseException(); - } - } - - public SDPField parse() throws ParseException { - return this.repeatField(); - } - - /** - - public static void main(String[] args) throws ParseException { - String repeat[] = { - "r=604800s 3600s 0s 90000s\n", - "r=7d 1h 0 25h\n", - "r=7 6 5 4 3 2 1 0 \n" - }; - - for (int i = 0; i < repeat.length; i++) { - RepeatFieldParser repeatFieldParser=new RepeatFieldParser( - repeat[i] ); - RepeatField repeatFields=repeatFieldParser.repeatField(); - System.out.println("toParse: " +repeat[i]); - System.out.println("encoded: " +repeatFields.encode()); - } - - } - **/ -} -/* - * $Log: RepeatFieldParser.java,v $ - * Revision 1.7 2009/07/17 18:57:17 emcho - * Converts indentation tabs to spaces so that we have a uniform indentation policy in the whole project. - * - * Revision 1.6 2007/07/12 15:39:53 mranga - * Issue number: 117 - * Obtained from: - * Submitted by: patrick_poglitsch (patrick_poglitsch) - * Reviewed by: mranga - * - * Revision 1.5 2006/08/23 00:00:22 mranga - * Issue number: - * Obtained from: - * Submitted by: - * Reviewed by: mranga - * - * javadoc fixups. - * - * CVS: ---------------------------------------------------------------------- - * CVS: Issue number: - * CVS: If this change addresses one or more issues, - * CVS: then enter the issue number(s) here. - * CVS: Obtained from: - * CVS: If this change has been taken from another system, - * CVS: then name the system in this line, otherwise delete it. - * CVS: Submitted by: - * CVS: If this code has been contributed to the project by someone else; i.e., - * CVS: they sent us a patch or a set of diffs, then include their name/email - * CVS: address here. If this is your work then delete this line. - * CVS: Reviewed by: - * CVS: If we are doing pre-commit code reviews and someone else has - * CVS: reviewed your changes, include their name(s) here. - * CVS: If you have not had it reviewed then delete this line. - * - * Revision 1.4 2006/07/13 09:02:39 mranga - * Issue number: - * Obtained from: - * Submitted by: jeroen van bemmel - * Reviewed by: mranga - * Moved some changes from jain-sip-1.2 to java.net - * - * CVS: ---------------------------------------------------------------------- - * CVS: Issue number: - * CVS: If this change addresses one or more issues, - * CVS: then enter the issue number(s) here. - * CVS: Obtained from: - * CVS: If this change has been taken from another system, - * CVS: then name the system in this line, otherwise delete it. - * CVS: Submitted by: - * CVS: If this code has been contributed to the project by someone else; i.e., - * CVS: they sent us a patch or a set of diffs, then include their name/email - * CVS: address here. If this is your work then delete this line. - * CVS: Reviewed by: - * CVS: If we are doing pre-commit code reviews and someone else has - * CVS: reviewed your changes, include their name(s) here. - * CVS: If you have not had it reviewed then delete this line. - * - * Revision 1.3 2006/06/19 06:47:26 mranga - * javadoc fixups - * - * Revision 1.2 2006/06/16 15:26:28 mranga - * Added NIST disclaimer to all public domain files. Clean up some javadoc. Fixed a leak - * - * Revision 1.1.1.1 2005/10/04 17:12:34 mranga - * - * Import - * - * - * Revision 1.2 2004/01/22 13:26:28 sverker - * Issue number: - * Obtained from: - * Submitted by: sverker - * Reviewed by: mranga - * - * Major reformat of code to conform with style guide. Resolved compiler and javadoc warnings. Added CVS tags. - * - * CVS: ---------------------------------------------------------------------- - * CVS: Issue number: - * CVS: If this change addresses one or more issues, - * CVS: then enter the issue number(s) here. - * CVS: Obtained from: - * CVS: If this change has been taken from another system, - * CVS: then name the system in this line, otherwise delete it. - * CVS: Submitted by: - * CVS: If this code has been contributed to the project by someone else; i.e., - * CVS: they sent us a patch or a set of diffs, then include their name/email - * CVS: address here. If this is your work then delete this line. - * CVS: Reviewed by: - * CVS: If we are doing pre-commit code reviews and someone else has - * CVS: reviewed your changes, include their name(s) here. - * CVS: If you have not had it reviewed then delete this line. - * - */ diff --git a/java/gov/nist/javax/sdp/parser/SDPAnnounceParser.java b/java/gov/nist/javax/sdp/parser/SDPAnnounceParser.java deleted file mode 100644 index 83576e4..0000000 --- a/java/gov/nist/javax/sdp/parser/SDPAnnounceParser.java +++ /dev/null @@ -1,212 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -package gov.nist.javax.sdp.parser; -import java.util.*; -import gov.nist.core.*; -import gov.nist.javax.sdp.fields.*; -import gov.nist.javax.sdp.*; -import java.text.ParseException; -// Acknowledgement: this includes a bug fix submitted by -// Rafael Barriuso rbarriuso@dit.upm.es - -/** Parser for SDP Announce messages. - */ -public class SDPAnnounceParser extends ParserCore { - - protected Lexer lexer; - protected Vector sdpMessage; - - /** Creates new SDPAnnounceParser - * @param sdpMessage Vector of messages to parse. - */ - public SDPAnnounceParser(Vector sdpMessage) { - this.sdpMessage = sdpMessage; - } - - /** Create a new SDPAnnounceParser. - *@param message string containing the sdp announce message. - * - */ - public SDPAnnounceParser(String message) { - int start = 0; - String line = null; - // Return trivially if there is no sdp announce message - // to be parsed. Bruno Konik noticed this bug. - if (message == null) return; - sdpMessage = new Vector(); - // Strip off leading and trailing junk. - String sdpAnnounce = message.trim() + "\r\n"; - // Bug fix by Andreas Bystrom. - while (start < sdpAnnounce.length()) { - // Major re-write by Ricardo Borba. - int lfPos = sdpAnnounce.indexOf("\n", start); - int crPos = sdpAnnounce.indexOf("\r", start); - - if (lfPos > 0 && crPos < 0) { - // there are only "\n" separators - line = sdpAnnounce.substring(start, lfPos); - start = lfPos + 1; - } else if (lfPos < 0 && crPos > 0) { - //bug fix: there are only "\r" separators - line = sdpAnnounce.substring(start, crPos); - start = crPos + 1; - } else if (lfPos > 0 && crPos > 0) { - // there are "\r\n" or "\n\r" (if exists) separators - if (lfPos > crPos) { - // assume "\r\n" for now - line = sdpAnnounce.substring(start, crPos); - // Check if the "\r" and "\n" are close together - if (lfPos == crPos + 1) { - start = lfPos + 1; // "\r\n" - } else { - start = crPos + 1; // "\r" followed by the next record and a "\n" further away - } - } else { - // assume "\n\r" for now - line = sdpAnnounce.substring(start, lfPos); - // Check if the "\n" and "\r" are close together - if (crPos == lfPos + 1) { - start = crPos + 1; // "\n\r" - } else { - start = lfPos + 1; // "\n" followed by the next record and a "\r" further away - } - } - } else if (lfPos < 0 && crPos < 0) { // end - break; - } - sdpMessage.addElement(line); - } - } - - public SessionDescriptionImpl parse() throws ParseException { - SessionDescriptionImpl retval = new SessionDescriptionImpl(); - for (int i = 0; i < sdpMessage.size(); i++) { - String field = (String) sdpMessage.elementAt(i); - SDPParser sdpParser = ParserFactory.createParser(field); - SDPField sdpField = null; - if (sdpParser != null) - { - sdpField = sdpParser.parse(); - } - retval.addField(sdpField); - } - return retval; - - } - - - -} -/* - * $Log: SDPAnnounceParser.java,v $ - * Revision 1.11 2009/10/16 19:27:56 mranga - * Issue number: 128 - * Reviewed by: mranga - * This would only work for SDP. - * - * Revision 1.10 2009/07/17 18:57:17 emcho - * Converts indentation tabs to spaces so that we have a uniform indentation policy in the whole project. - * - * Revision 1.9 2008/01/18 02:18:24 mranga - * Issue number: - * Obtained from: - * Submitted by: - * Reviewed by: mranga - * Moved out some test code. - * - * Revision 1.8 2006/11/22 04:08:57 rborba - * Fixed a null pointer exception when an SDP is received with an empty session name ("s="). - * - * Revision 1.7 2006/07/13 09:02:37 mranga - * Issue number: - * Obtained from: - * Submitted by: jeroen van bemmel - * Reviewed by: mranga - * Moved some changes from jain-sip-1.2 to java.net - * - * CVS: ---------------------------------------------------------------------- - * CVS: Issue number: - * CVS: If this change addresses one or more issues, - * CVS: then enter the issue number(s) here. - * CVS: Obtained from: - * CVS: If this change has been taken from another system, - * CVS: then name the system in this line, otherwise delete it. - * CVS: Submitted by: - * CVS: If this code has been contributed to the project by someone else; i.e., - * CVS: they sent us a patch or a set of diffs, then include their name/email - * CVS: address here. If this is your work then delete this line. - * CVS: Reviewed by: - * CVS: If we are doing pre-commit code reviews and someone else has - * CVS: reviewed your changes, include their name(s) here. - * CVS: If you have not had it reviewed then delete this line. - * - * Revision 1.3 2006/06/19 06:47:26 mranga - * javadoc fixups - * - * Revision 1.2 2006/06/16 15:26:28 mranga - * Added NIST disclaimer to all public domain files. Clean up some javadoc. Fixed a leak - * - * Revision 1.1.1.1 2005/10/04 17:12:34 mranga - * - * Import - * - * - * Revision 1.5 2005/01/21 21:19:24 mranga - * Reviewed by: mranga - * Strip leading whitespace while parsing Sdp Announce messages. - * - * Revision 1.4 2004/02/18 14:33:02 mranga - * Submitted by: Bruno Konik - * Reviewed by: mranga - * Remove extraneous newline in encoding messages. Test for empty sdp announce - * rather than die with null when null is passed to sdp announce parser. - * Fixed bug in checking for \n\n when looking for message end. - * - * Revision 1.3 2004/01/22 13:26:28 sverker - * Issue number: - * Obtained from: - * Submitted by: sverker - * Reviewed by: mranga - * - * Major reformat of code to conform with style guide. Resolved compiler and javadoc warnings. Added CVS tags. - * - * CVS: ---------------------------------------------------------------------- - * CVS: Issue number: - * CVS: If this change addresses one or more issues, - * CVS: then enter the issue number(s) here. - * CVS: Obtained from: - * CVS: If this change has been taken from another system, - * CVS: then name the system in this line, otherwise delete it. - * CVS: Submitted by: - * CVS: If this code has been contributed to the project by someone else; i.e., - * CVS: they sent us a patch or a set of diffs, then include their name/email - * CVS: address here. If this is your work then delete this line. - * CVS: Reviewed by: - * CVS: If we are doing pre-commit code reviews and someone else has - * CVS: reviewed your changes, include their name(s) here. - * CVS: If you have not had it reviewed then delete this line. - * - */ diff --git a/java/gov/nist/javax/sdp/parser/SDPParser.java b/java/gov/nist/javax/sdp/parser/SDPParser.java deleted file mode 100644 index 0484636..0000000 --- a/java/gov/nist/javax/sdp/parser/SDPParser.java +++ /dev/null @@ -1,107 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -package gov.nist.javax.sdp.parser; -import gov.nist.core.*; -import java.text.ParseException; -import gov.nist.javax.sdp.fields.*; - -/** -*@version 1.2 -* -*@author M. Ranganathan <br/> -* -* -* -*/ -public abstract class SDPParser extends ParserCore { - - public abstract SDPField parse() throws ParseException; - -} -/* - * $Log: SDPParser.java,v $ - * Revision 1.5 2009/07/17 18:57:17 emcho - * Converts indentation tabs to spaces so that we have a uniform indentation policy in the whole project. - * - * Revision 1.4 2006/07/13 09:02:39 mranga - * Issue number: - * Obtained from: - * Submitted by: jeroen van bemmel - * Reviewed by: mranga - * Moved some changes from jain-sip-1.2 to java.net - * - * CVS: ---------------------------------------------------------------------- - * CVS: Issue number: - * CVS: If this change addresses one or more issues, - * CVS: then enter the issue number(s) here. - * CVS: Obtained from: - * CVS: If this change has been taken from another system, - * CVS: then name the system in this line, otherwise delete it. - * CVS: Submitted by: - * CVS: If this code has been contributed to the project by someone else; i.e., - * CVS: they sent us a patch or a set of diffs, then include their name/email - * CVS: address here. If this is your work then delete this line. - * CVS: Reviewed by: - * CVS: If we are doing pre-commit code reviews and someone else has - * CVS: reviewed your changes, include their name(s) here. - * CVS: If you have not had it reviewed then delete this line. - * - * Revision 1.3 2006/06/19 06:47:26 mranga - * javadoc fixups - * - * Revision 1.2 2006/06/16 15:26:28 mranga - * Added NIST disclaimer to all public domain files. Clean up some javadoc. Fixed a leak - * - * Revision 1.1.1.1 2005/10/04 17:12:34 mranga - * - * Import - * - * - * Revision 1.2 2004/01/22 13:26:28 sverker - * Issue number: - * Obtained from: - * Submitted by: sverker - * Reviewed by: mranga - * - * Major reformat of code to conform with style guide. Resolved compiler and javadoc warnings. Added CVS tags. - * - * CVS: ---------------------------------------------------------------------- - * CVS: Issue number: - * CVS: If this change addresses one or more issues, - * CVS: then enter the issue number(s) here. - * CVS: Obtained from: - * CVS: If this change has been taken from another system, - * CVS: then name the system in this line, otherwise delete it. - * CVS: Submitted by: - * CVS: If this code has been contributed to the project by someone else; i.e., - * CVS: they sent us a patch or a set of diffs, then include their name/email - * CVS: address here. If this is your work then delete this line. - * CVS: Reviewed by: - * CVS: If we are doing pre-commit code reviews and someone else has - * CVS: reviewed your changes, include their name(s) here. - * CVS: If you have not had it reviewed then delete this line. - * - */ diff --git a/java/gov/nist/javax/sdp/parser/SessionNameFieldParser.java b/java/gov/nist/javax/sdp/parser/SessionNameFieldParser.java deleted file mode 100644 index 775cc88..0000000 --- a/java/gov/nist/javax/sdp/parser/SessionNameFieldParser.java +++ /dev/null @@ -1,151 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -/* - * SessionNameFieldParser.java - * - * Created on February 25, 2002, 10:26 AM - */ - -package gov.nist.javax.sdp.parser; -import gov.nist.javax.sdp.fields.*; -import java.text.*; - -/** - * @author deruelle - * @version JAIN-SDP-PUBLIC-RELEASE $Revision: 1.6 $ $Date: 2009/07/17 18:57:17 $ - */ -public class SessionNameFieldParser extends SDPParser { - - /** Creates new SessionNameFieldParser */ - public SessionNameFieldParser(String sessionNameField) { - this.lexer = new Lexer("charLexer", sessionNameField); - } - - /** Get the SessionNameField - * @return SessionNameField - */ - public SessionNameField sessionNameField() throws ParseException { - try { - this.lexer.match('s'); - this.lexer.SPorHT(); - this.lexer.match('='); - this.lexer.SPorHT(); - - SessionNameField sessionNameField = new SessionNameField(); - String rest = lexer.getRest(); - // Some endpoints may send us a blank session name ("s=") -- [rborba] - sessionNameField.setSessionName(rest == null ? "" : rest.trim()); - - return sessionNameField; - } catch (Exception e) { - throw lexer.createParseException(); - } - - } - - public SDPField parse() throws ParseException { - return this.sessionNameField(); - } - - public static void main(String[] args) throws ParseException { - String session[] = { "s=SDP Seminar \n", "s= Session SDP\n" }; - - for (int i = 0; i < session.length; i++) { - SessionNameFieldParser sessionNameFieldParser = - new SessionNameFieldParser(session[i]); - SessionNameField sessionNameField = - sessionNameFieldParser.sessionNameField(); - System.out.println("encoded: " + sessionNameField.encode()); - } - } -} -/* - * $Log: SessionNameFieldParser.java,v $ - * Revision 1.6 2009/07/17 18:57:17 emcho - * Converts indentation tabs to spaces so that we have a uniform indentation policy in the whole project. - * - * Revision 1.5 2006/11/22 04:22:01 rborba - * Made the SDPAnnounceParser constructor a little more robust in order to handle SDPs with mixed CR, LF, CR/LF anf LF/CR lines. - * - * Revision 1.4 2006/07/13 09:02:38 mranga - * Issue number: - * Obtained from: - * Submitted by: jeroen van bemmel - * Reviewed by: mranga - * Moved some changes from jain-sip-1.2 to java.net - * - * CVS: ---------------------------------------------------------------------- - * CVS: Issue number: - * CVS: If this change addresses one or more issues, - * CVS: then enter the issue number(s) here. - * CVS: Obtained from: - * CVS: If this change has been taken from another system, - * CVS: then name the system in this line, otherwise delete it. - * CVS: Submitted by: - * CVS: If this code has been contributed to the project by someone else; i.e., - * CVS: they sent us a patch or a set of diffs, then include their name/email - * CVS: address here. If this is your work then delete this line. - * CVS: Reviewed by: - * CVS: If we are doing pre-commit code reviews and someone else has - * CVS: reviewed your changes, include their name(s) here. - * CVS: If you have not had it reviewed then delete this line. - * - * Revision 1.3 2006/06/19 06:47:26 mranga - * javadoc fixups - * - * Revision 1.2 2006/06/16 15:26:28 mranga - * Added NIST disclaimer to all public domain files. Clean up some javadoc. Fixed a leak - * - * Revision 1.1.1.1 2005/10/04 17:12:34 mranga - * - * Import - * - * - * Revision 1.2 2004/01/22 13:26:28 sverker - * Issue number: - * Obtained from: - * Submitted by: sverker - * Reviewed by: mranga - * - * Major reformat of code to conform with style guide. Resolved compiler and javadoc warnings. Added CVS tags. - * - * CVS: ---------------------------------------------------------------------- - * CVS: Issue number: - * CVS: If this change addresses one or more issues, - * CVS: then enter the issue number(s) here. - * CVS: Obtained from: - * CVS: If this change has been taken from another system, - * CVS: then name the system in this line, otherwise delete it. - * CVS: Submitted by: - * CVS: If this code has been contributed to the project by someone else; i.e., - * CVS: they sent us a patch or a set of diffs, then include their name/email - * CVS: address here. If this is your work then delete this line. - * CVS: Reviewed by: - * CVS: If we are doing pre-commit code reviews and someone else has - * CVS: reviewed your changes, include their name(s) here. - * CVS: If you have not had it reviewed then delete this line. - * - */ diff --git a/java/gov/nist/javax/sdp/parser/TimeFieldParser.java b/java/gov/nist/javax/sdp/parser/TimeFieldParser.java deleted file mode 100644 index 429aa4d..0000000 --- a/java/gov/nist/javax/sdp/parser/TimeFieldParser.java +++ /dev/null @@ -1,248 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -/* - * TimeFieldParser.java - * - * Created on February 25, 2002, 9:58 AM - */ -package gov.nist.javax.sdp.parser; - -import gov.nist.javax.sdp.fields.*; -import java.text.*; - -/** - * @author deruelle - * @version JAIN-SDP-PUBLIC-RELEASE $Revision: 1.7 $ $Date: 2009/07/17 18:57:18 $ - */ -public class TimeFieldParser extends SDPParser { - - /** Creates new TimeFieldParser */ - public TimeFieldParser(String timeField) { - lexer = new Lexer("charLexer", timeField); - } - - /** Get the typed time. - * - * @param tokenValue to convert to typedTime. - * @return TypedTime - */ - public TypedTime getTypedTime(String tokenValue) { - TypedTime typedTime = new TypedTime(); - - if (tokenValue.endsWith("d")) { - typedTime.setUnit("d"); - String t = tokenValue.replace('d', ' '); - - typedTime.setTime(Integer.parseInt(t.trim())); - } else if (tokenValue.endsWith("h")) { - typedTime.setUnit("h"); - String t = tokenValue.replace('h', ' '); - typedTime.setTime(Integer.parseInt(t.trim())); - } else if (tokenValue.endsWith("m")) { - typedTime.setUnit("m"); - String t = tokenValue.replace('m', ' '); - typedTime.setTime(Integer.parseInt(t.trim())); - } else { - typedTime.setUnit("s"); - if (tokenValue.endsWith("s")) { - String t = tokenValue.replace('s', ' '); - typedTime.setTime(Integer.parseInt(t.trim())); - } else - typedTime.setTime(Integer.parseInt(tokenValue.trim())); - } - return typedTime; - } - - private long getTime() throws ParseException { - try { - String startTime = this.lexer.number(); - if ( startTime.length() > 18) - startTime = startTime.substring( startTime.length() - 18); - return Long.parseLong(startTime); - } catch (NumberFormatException ex) { - throw lexer.createParseException(); - } - - } - - /** parse the field string - * @return TimeField - */ - public TimeField timeField() throws ParseException { - try { - this.lexer.match('t'); - this.lexer.SPorHT(); - this.lexer.match('='); - this.lexer.SPorHT(); - - TimeField timeField = new TimeField(); - - long st = this.getTime(); - timeField.setStartTime(st); - this.lexer.SPorHT(); - - st = this.getTime(); - timeField.setStopTime(st); - - return timeField; - } catch (Exception e) { - throw lexer.createParseException(); - } - } - - public SDPField parse() throws ParseException { - return this.timeField(); - } - - /** - public static void main(String[] args) throws ParseException { - String time[] = { - "t=3033434331 3042462419\n", - "t=7d 1h \n", - "t=3149328700 0 \n", - "t=0 0\n" - }; - - - for (int i = 0; i < time.length; i++) { - TimeFieldParser timeFieldParser=new TimeFieldParser( - time[i] ); - TimeField timeField=timeFieldParser.timeField(); - System.out.println("encoded: " +timeField.encode()); - } - - } - **/ -} -/* - * $Log: TimeFieldParser.java,v $ - * Revision 1.7 2009/07/17 18:57:18 emcho - * Converts indentation tabs to spaces so that we have a uniform indentation policy in the whole project. - * - * Revision 1.6 2006/11/16 19:05:44 pmusgrave - * Issue number: 82 - SDP with Origin/Time or Zone creater than 18 digits causes parse exception - * Obtained from: - * Submitted by: pmusgrave@newheights.com - * Reviewed by: - * CVS: ---------------------------------------------------------------------- - * CVS: Issue number: - * CVS: If this change addresses one or more issues, - * CVS: then enter the issue number(s) here. - * CVS: Obtained from: - * CVS: If this change has been taken from another system, - * CVS: then name the system in this line, otherwise delete it. - * CVS: Submitted by: - * CVS: If this code has been contributed to the project by someone else; i.e., - * CVS: they sent us a patch or a set of diffs, then include their name/email - * CVS: address here. If this is your work then delete this line. - * CVS: Reviewed by: - * CVS: If we are doing pre-commit code reviews and someone else has - * CVS: reviewed your changes, include their name(s) here. - * CVS: If you have not had it reviewed then delete this line. - * - * Revision 1.5 2006/08/23 00:00:23 mranga - * Issue number: - * Obtained from: - * Submitted by: - * Reviewed by: mranga - * - * javadoc fixups. - * - * CVS: ---------------------------------------------------------------------- - * CVS: Issue number: - * CVS: If this change addresses one or more issues, - * CVS: then enter the issue number(s) here. - * CVS: Obtained from: - * CVS: If this change has been taken from another system, - * CVS: then name the system in this line, otherwise delete it. - * CVS: Submitted by: - * CVS: If this code has been contributed to the project by someone else; i.e., - * CVS: they sent us a patch or a set of diffs, then include their name/email - * CVS: address here. If this is your work then delete this line. - * CVS: Reviewed by: - * CVS: If we are doing pre-commit code reviews and someone else has - * CVS: reviewed your changes, include their name(s) here. - * CVS: If you have not had it reviewed then delete this line. - * - * Revision 1.4 2006/07/13 09:02:38 mranga - * Issue number: - * Obtained from: - * Submitted by: jeroen van bemmel - * Reviewed by: mranga - * Moved some changes from jain-sip-1.2 to java.net - * - * CVS: ---------------------------------------------------------------------- - * CVS: Issue number: - * CVS: If this change addresses one or more issues, - * CVS: then enter the issue number(s) here. - * CVS: Obtained from: - * CVS: If this change has been taken from another system, - * CVS: then name the system in this line, otherwise delete it. - * CVS: Submitted by: - * CVS: If this code has been contributed to the project by someone else; i.e., - * CVS: they sent us a patch or a set of diffs, then include their name/email - * CVS: address here. If this is your work then delete this line. - * CVS: Reviewed by: - * CVS: If we are doing pre-commit code reviews and someone else has - * CVS: reviewed your changes, include their name(s) here. - * CVS: If you have not had it reviewed then delete this line. - * - * Revision 1.3 2006/06/19 06:47:26 mranga - * javadoc fixups - * - * Revision 1.2 2006/06/16 15:26:28 mranga - * Added NIST disclaimer to all public domain files. Clean up some javadoc. Fixed a leak - * - * Revision 1.1.1.1 2005/10/04 17:12:34 mranga - * - * Import - * - * - * Revision 1.2 2004/01/22 13:26:28 sverker - * Issue number: - * Obtained from: - * Submitted by: sverker - * Reviewed by: mranga - * - * Major reformat of code to conform with style guide. Resolved compiler and javadoc warnings. Added CVS tags. - * - * CVS: ---------------------------------------------------------------------- - * CVS: Issue number: - * CVS: If this change addresses one or more issues, - * CVS: then enter the issue number(s) here. - * CVS: Obtained from: - * CVS: If this change has been taken from another system, - * CVS: then name the system in this line, otherwise delete it. - * CVS: Submitted by: - * CVS: If this code has been contributed to the project by someone else; i.e., - * CVS: they sent us a patch or a set of diffs, then include their name/email - * CVS: address here. If this is your work then delete this line. - * CVS: Reviewed by: - * CVS: If we are doing pre-commit code reviews and someone else has - * CVS: reviewed your changes, include their name(s) here. - * CVS: If you have not had it reviewed then delete this line. - * - */ diff --git a/java/gov/nist/javax/sdp/parser/URIFieldParser.java b/java/gov/nist/javax/sdp/parser/URIFieldParser.java deleted file mode 100644 index d1a08d3..0000000 --- a/java/gov/nist/javax/sdp/parser/URIFieldParser.java +++ /dev/null @@ -1,162 +0,0 @@ -/* -* Conditions Of Use -* -* This software was developed by employees of the National Institute of -* Standards and Technology (NIST), an agency of the Federal Government. -* Pursuant to title 15 Untied States Code Section 105, works of NIST -* employees are not subject to copyright protection in the United States -* and are considered to be in the public domain. As a result, a formal -* license is not needed to use the software. -* -* This software is provided by NIST as a service and is expressly -* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT -* AND DATA ACCURACY. NIST does not warrant or make any representations -* regarding the use of the software or the results thereof, including but -* not limited to the correctness, accuracy, reliability or usefulness of -* the software. -* -* Permission to use this software is contingent upon your acceptance -* of the terms of this agreement -* -* . -* -*/ -/* - * URIFieldParser.java - * - * Created on February 25, 2002, 11:10 AM - */ -package gov.nist.javax.sdp.parser; - -import gov.nist.javax.sdp.fields.*; -import java.text.ParseException; - -/** - * URI Field Parser. - * - * @version JAIN-SDP-PUBLIC-RELEASE $Revision: 1.5 $ $Date: 2009/07/17 18:57:18 $ - * - * @author Olivier Deruelle - * @author M. Ranganathan <br/> - * - * - * - */ -public class URIFieldParser extends SDPParser { - - /** Creates new URIFieldParser */ - public URIFieldParser(String uriField) { - this.lexer = new Lexer("charLexer", uriField); - } - - /** Get the URI field - * @return URIField - */ - public URIField uriField() throws ParseException { - try { - this.lexer.match('u'); - this.lexer.SPorHT(); - this.lexer.match('='); - this.lexer.SPorHT(); - - URIField uriField = new URIField(); - String rest = lexer.getRest().trim(); - uriField.setURI(rest); - return uriField; - } catch (Exception e) { - throw lexer.createParseException(); - } - } - - public SDPField parse() throws ParseException { - return this.uriField(); - } - - /** - - public static void main(String[] args) throws ParseException { - String uri[] = { - "u=http://www.cs.ucl.ac.uk/staff/M.Handley/sdp.03.ps\n", - "u=sip:j.doe@big.com\n", - "u=sip:j.doe:secret@big.com;transport=tcp\n", - "u=sip:j.doe@big.com?subject=project\n", - "u=sip:+1-212-555-1212:1234@gateway.com;user=phone\n" - }; - - for (int i = 0; i < uri.length; i++) { - URIFieldParser uriFieldParser=new URIFieldParser( - uri[i] ); - URIField uriField=uriFieldParser.uriField(); - System.out.println("toParse: " +uri[i]); - System.out.println("encoded: " +uriField.encode()); - } - - } - **/ -} -/* - * $Log: URIFieldParser.java,v $ - * Revision 1.5 2009/07/17 18:57:18 emcho - * Converts indentation tabs to spaces so that we have a uniform indentation policy in the whole project. - * - * Revision 1.4 2006/07/13 09:02:41 mranga - * Issue number: - * Obtained from: - * Submitted by: jeroen van bemmel - * Reviewed by: mranga - * Moved some changes from jain-sip-1.2 to java.net - * - * CVS: ---------------------------------------------------------------------- - * CVS: Issue number: - * CVS: If this change addresses one or more issues, - * CVS: then enter the issue number(s) here. - * CVS: Obtained from: - * CVS: If this change has been taken from another system, - * CVS: then name the system in this line, otherwise delete it. - * CVS: Submitted by: - * CVS: If this code has been contributed to the project by someone else; i.e., - * CVS: they sent us a patch or a set of diffs, then include their name/email - * CVS: address here. If this is your work then delete this line. - * CVS: Reviewed by: - * CVS: If we are doing pre-commit code reviews and someone else has - * CVS: reviewed your changes, include their name(s) here. - * CVS: If you have not had it reviewed then delete this line. - * - * Revision 1.3 2006/06/19 06:47:26 mranga - * javadoc fixups - * - * Revision 1.2 2006/06/16 15:26:28 mranga - * Added NIST disclaimer to all public domain files. Clean up some javadoc. Fixed a leak - * - * Revision 1.1.1.1 2005/10/04 17:12:34 mranga - * - * Import - * - * - * Revision 1.2 2004/01/22 13:26:28 sverker - * Issue number: - * Obtained from: - * Submitted by: sverker - * Reviewed by: mranga - * - * Major reformat of code to conform with style guide. Resolved compiler and javadoc warnings. Added CVS tags. - * - * CVS: ---------------------------------------------------------------------- - * CVS: Issue number: - * CVS: If this change addresses one or more issues, - * CVS: then enter the issue number(s) here. - * CVS: Obtained from: - * CVS: If this change has been taken from another system, - * CVS: then name the system in this line, otherwise delete it. - * CVS: Submitted by: - * CVS: If this code has been contributed to the project by someone else; i.e., - * CVS: they sent us a patch or a set of diffs, then include their name/email - * CVS: address here. If this is your work then delete this line. - * CVS: Reviewed by: - * CVS: If we are doing pre-commit code reviews and someone else has - * CVS: reviewed your changes, include their name(s) here. - * CVS: If you have not had it reviewed then delete this line. - * - */ diff --git a/java/gov/nist/javax/sdp/parser/ZoneFieldParser.java b/java/gov/nist/javax/sdp/parser/ZoneFieldParser.java deleted file mode 100644 index 8eacdda..0000000 --- a/java/gov/nist/javax/sdp/parser/ZoneFieldParser.java +++ /dev/null @@ -1,257 +0,0 @@ -/* - * Conditions Of Use - * - * This software was developed by employees of the National Institute of - * Standards and Technology (NIST), an agency of the Federal Government. - * Pursuant to title 15 Untied States Code Section 105, works of NIST - * employees are not subject to copyright protection in the United States - * and are considered to be in the public domain. As a result, a formal - * license is not needed to use the software. - * - * This software is provided by NIST as a service and is expressly - * provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED - * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT - * AND DATA ACCURACY. NIST does not warrant or make any representations - * regarding the use of the software or the results thereof, including but - * not limited to the correctness, accuracy, reliability or usefulness of - * the software. - * - * Permission to use this software is contingent upon your acceptance - * of the terms of this agreement - * - * . - * - */ -package gov.nist.javax.sdp.parser; - -import gov.nist.javax.sdp.fields.*; -import gov.nist.core.*; -import java.text.ParseException; - -/** - * Parser For the Zone field. - * - * @version JAIN-SDP-PUBLIC-RELEASE $Revision: 1.8 $ $Date: 2009/07/17 18:57:18 $ - * - * @author Olivier Deruelle <deruelle@antd.nist.gov> - * @author M. Ranganathan <mranga@antd.nist.gov> <br/> - * - * - * - */ -public class ZoneFieldParser extends SDPParser { - - /** Creates new ZoneFieldParser */ - public ZoneFieldParser(String zoneField) { - lexer = new Lexer("charLexer", zoneField); - } - - /** - * Get the sign of the offset. - * - * @param tokenValue - * to examine. - * @return the sign. - */ - public String getSign(String tokenValue) { - if (tokenValue.startsWith("-")) - return "-"; - else - return "+"; - } - - /** - * Get the typed time. - * - * @param tokenValue -- - * token value to convert to typed time. - * @return TypedTime -- the converted typed time value. - */ - public TypedTime getTypedTime(String tokenValue) { - TypedTime typedTime = new TypedTime(); - String offset = null; - if (tokenValue.startsWith("-")) - offset = tokenValue.replace('-', ' '); - else if (tokenValue.startsWith("+")) - offset = tokenValue.replace('+', ' '); - else - offset = tokenValue; - - if (offset.endsWith("d")) { - typedTime.setUnit("d"); - String t = offset.replace('d', ' '); - - typedTime.setTime(Integer.parseInt(t.trim())); - } else if (offset.endsWith("h")) { - typedTime.setUnit("h"); - String t = offset.replace('h', ' '); - typedTime.setTime(Integer.parseInt(t.trim())); - } else if (offset.endsWith("m")) { - typedTime.setUnit("m"); - String t = offset.replace('m', ' '); - typedTime.setTime(Integer.parseInt(t.trim())); - } else { - typedTime.setUnit("s"); - if (offset.endsWith("s")) { - String t = offset.replace('s', ' '); - typedTime.setTime(Integer.parseInt(t.trim())); - } else - typedTime.setTime(Integer.parseInt(offset.trim())); - } - return typedTime; - } - - /** - * parse the Zone field string - * - * @return ZoneField - */ - public ZoneField zoneField() throws ParseException { - try { - ZoneField zoneField = new ZoneField(); - - this.lexer.match('z'); - this.lexer.SPorHT(); - this.lexer.match('='); - this.lexer.SPorHT(); - - // The zoneAdjustment list: - // Patch 117 - while (lexer.hasMoreChars()) { - char la = lexer.lookAhead(0); - if (la == '\n' || la == '\r') - break; - ZoneAdjustment zoneAdjustment = new ZoneAdjustment(); - - lexer.match(LexerCore.ID); - Token time = lexer.getNextToken(); - this.lexer.SPorHT(); - String timeValue = time.getTokenValue(); - if (timeValue.length() > 18) - timeValue = timeValue.substring(timeValue.length() - 18); - - zoneAdjustment.setTime(Long.parseLong(timeValue)); - - lexer.match(LexerCore.ID); - Token offset = lexer.getNextToken(); - this.lexer.SPorHT(); - String sign = getSign(offset.getTokenValue()); - TypedTime typedTime = getTypedTime(offset.getTokenValue()); - zoneAdjustment.setSign(sign); - zoneAdjustment.setOffset(typedTime); - - zoneField.addZoneAdjustment(zoneAdjustment); - } - - return zoneField; - } catch (Exception e) { - throw lexer.createParseException(); - } - } - - public SDPField parse() throws ParseException { - return this.zoneField(); - } - - /** - * public static void main(String[] args) throws ParseException { String - * zone[] = { "z=2882844526 -1h 2898848070 0\n", "z=2886 +1h 2898848070 10 - * 23423 -6s \n" }; - * - * for (int i = 0; i <zone.length; i++) { ZoneFieldParser - * zoneFieldParser=new ZoneFieldParser( zone[i] ); ZoneField - * zoneField=zoneFieldParser.zoneField(); System.out.println("encoded: " - * +zoneField.encode()); } - * } - */ - -} -/* - * $Log: ZoneFieldParser.java,v $ - * Revision 1.8 2009/07/17 18:57:18 emcho - * Converts indentation tabs to spaces so that we have a uniform indentation policy in the whole project. - * - * Revision 1.7 2007/07/12 15:39:52 mranga - * Issue number: 117 - * Obtained from: - * Submitted by: patrick_poglitsch (patrick_poglitsch) - * Reviewed by: mranga - * Revision 1.6 2006/11/16 19:05:44 pmusgrave - * Issue number: 82 - SDP with Origin/Time or Zone creater than 18 digits causes - * parse exception Obtained from: Submitted by: pmusgrave@newheights.com - * Reviewed by: CVS: - * ---------------------------------------------------------------------- CVS: - * Issue number: CVS: If this change addresses one or more issues, CVS: then - * enter the issue number(s) here. CVS: Obtained from: CVS: If this change has - * been taken from another system, CVS: then name the system in this line, - * otherwise delete it. CVS: Submitted by: CVS: If this code has been - * contributed to the project by someone else; i.e., CVS: they sent us a patch - * or a set of diffs, then include their name/email CVS: address here. If this - * is your work then delete this line. CVS: Reviewed by: CVS: If we are doing - * pre-commit code reviews and someone else has CVS: reviewed your changes, - * include their name(s) here. CVS: If you have not had it reviewed then delete - * this line. - * - * Revision 1.5 2006/08/23 00:00:22 mranga Issue number: Obtained from: - * Submitted by: Reviewed by: mranga - * - * javadoc fixups. - * - * CVS: ---------------------------------------------------------------------- - * CVS: Issue number: CVS: If this change addresses one or more issues, CVS: - * then enter the issue number(s) here. CVS: Obtained from: CVS: If this change - * has been taken from another system, CVS: then name the system in this line, - * otherwise delete it. CVS: Submitted by: CVS: If this code has been - * contributed to the project by someone else; i.e., CVS: they sent us a patch - * or a set of diffs, then include their name/email CVS: address here. If this - * is your work then delete this line. CVS: Reviewed by: CVS: If we are doing - * pre-commit code reviews and someone else has CVS: reviewed your changes, - * include their name(s) here. CVS: If you have not had it reviewed then delete - * this line. - * - * Revision 1.4 2006/07/13 09:02:37 mranga Issue number: Obtained from: - * Submitted by: jeroen van bemmel Reviewed by: mranga Moved some changes from - * jain-sip-1.2 to java.net - * - * CVS: ---------------------------------------------------------------------- - * CVS: Issue number: CVS: If this change addresses one or more issues, CVS: - * then enter the issue number(s) here. CVS: Obtained from: CVS: If this change - * has been taken from another system, CVS: then name the system in this line, - * otherwise delete it. CVS: Submitted by: CVS: If this code has been - * contributed to the project by someone else; i.e., CVS: they sent us a patch - * or a set of diffs, then include their name/email CVS: address here. If this - * is your work then delete this line. CVS: Reviewed by: CVS: If we are doing - * pre-commit code reviews and someone else has CVS: reviewed your changes, - * include their name(s) here. CVS: If you have not had it reviewed then delete - * this line. - * - * Revision 1.3 2006/06/19 06:47:26 mranga javadoc fixups - * - * Revision 1.2 2006/06/16 15:26:28 mranga Added NIST disclaimer to all public - * domain files. Clean up some javadoc. Fixed a leak - * - * Revision 1.1.1.1 2005/10/04 17:12:34 mranga - * - * Import - * - * - * Revision 1.2 2004/01/22 13:26:28 sverker Issue number: Obtained from: - * Submitted by: sverker Reviewed by: mranga - * - * Major reformat of code to conform with style guide. Resolved compiler and - * javadoc warnings. Added CVS tags. - * - * CVS: ---------------------------------------------------------------------- - * CVS: Issue number: CVS: If this change addresses one or more issues, CVS: - * then enter the issue number(s) here. CVS: Obtained from: CVS: If this change - * has been taken from another system, CVS: then name the system in this line, - * otherwise delete it. CVS: Submitted by: CVS: If this code has been - * contributed to the project by someone else; i.e., CVS: they sent us a patch - * or a set of diffs, then include their name/email CVS: address here. If this - * is your work then delete this line. CVS: Reviewed by: CVS: If we are doing - * pre-commit code reviews and someone else has CVS: reviewed your changes, - * include their name(s) here. CVS: If you have not had it reviewed then delete - * this line. - * - */ diff --git a/java/javax/sdp/Attribute.java b/java/javax/sdp/Attribute.java deleted file mode 100644 index 156f051..0000000 --- a/java/javax/sdp/Attribute.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package javax.sdp; - -public interface Attribute { - String encode(); - String getName() throws SdpParseException; - void setName(String name) throws SdpException; - boolean hasValue() throws SdpParseException; - String getValue() throws SdpParseException; - void setValue(String value) throws SdpException; - void setValueAllowNull(String value) ; - Object clone(); - boolean equals(Object that ); -} diff --git a/java/javax/sdp/BandWidth.java b/java/javax/sdp/BandWidth.java deleted file mode 100644 index 4edea95..0000000 --- a/java/javax/sdp/BandWidth.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package javax.sdp; - -public interface BandWidth { - String getBwtype(); - int getBandwidth(); - void setBwtype(String b); - void setBandwidth(int b); - String encode(); - String getType() throws SdpParseException; - void setType(String type) throws SdpException; - int getValue() throws SdpParseException; - void setValue(int value) throws SdpException; -} diff --git a/java/javax/sdp/Connection.java b/java/javax/sdp/Connection.java deleted file mode 100644 index 35027ce..0000000 --- a/java/javax/sdp/Connection.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package javax.sdp; - -public interface Connection { - String getNettype(); - String getAddrtype(); - void setNettype(String n); - void setAddrType(String a); - String encode(); - String getAddress() throws SdpParseException; - String getAddressType() throws SdpParseException; - String getNetworkType() throws SdpParseException; - void setAddressType(String type) throws SdpException; - void setNetworkType(String type) throws SdpException; - Object clone(); -} diff --git a/java/javax/sdp/EMail.java b/java/javax/sdp/EMail.java deleted file mode 100644 index ef1811f..0000000 --- a/java/javax/sdp/EMail.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package javax.sdp; - -public interface EMail { - String encode(); - String getValue() throws SdpParseException; - void setValue(String value) throws SdpException; - Object clone(); -} diff --git a/java/javax/sdp/Info.java b/java/javax/sdp/Info.java deleted file mode 100644 index 6c6a7f0..0000000 --- a/java/javax/sdp/Info.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package javax.sdp; - -public interface Info { - String getInformation(); - void setInformation(String info); - String encode(); - String getValue() throws SdpParseException; - void setValue(String value) throws SdpException; - Object clone(); -} diff --git a/java/javax/sdp/Key.java b/java/javax/sdp/Key.java deleted file mode 100644 index 97ec3fa..0000000 --- a/java/javax/sdp/Key.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package javax.sdp; - -public interface Key { - String getType(); - String getKeyData(); - void setType(String t); - void setKeyData(String k); - String encode(); - String getMethod() throws SdpParseException; - void setMethod(String name) throws SdpException; - boolean hasKey() throws SdpParseException; - String getKey() throws SdpParseException; - void setKey(String key) throws SdpException; - Object clone(); -} diff --git a/java/javax/sdp/Media.java b/java/javax/sdp/Media.java deleted file mode 100644 index 0ba9c41..0000000 --- a/java/javax/sdp/Media.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package javax.sdp; - -import java.util.*; - -public interface Media { - String getMedia(); - int getPort(); - int getNports(); - Vector getFormats(); - void setMedia(String m); - void setPort(int p); - void setNports(int n); - void setProto(String p); - void setFormats(Vector formats); - void setMediaType(String mediaType) throws SdpException; - int getMediaPort() throws SdpParseException; - void setMediaPort(int port) throws SdpException; - int getPortCount() throws SdpParseException; - void setPortCount(int portCount) throws SdpException; - String getProtocol() throws SdpParseException; - void setProtocol(String protocol) throws SdpException; - void setMediaFormats(Vector mediaFormats) throws SdpException; - String encode(); - Object clone(); -} diff --git a/java/javax/sdp/MediaDescription.java b/java/javax/sdp/MediaDescription.java deleted file mode 100644 index 936b413..0000000 --- a/java/javax/sdp/MediaDescription.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package javax.sdp; - -import java.util.*; - -public interface MediaDescription { - String encode(); - Vector getAttributeFields(); - void setAttributeFields(Vector a); - Media getMedia(); - void setMedia(Media media) throws SdpException; - Info getInfo(); - void setInfo(Info i) throws SdpException; - Connection getConnection(); - void setConnection(Connection conn) throws SdpException; - Vector getBandwidths(boolean create); - void setBandwidths(Vector bandwidths) throws SdpException; - int getBandwidth(String name) throws SdpParseException; - void setBandwidth(String name, int value) throws SdpException; - void removeBandwidth(String name); - Key getKey(); - void setKey(Key key) throws SdpException; - Vector getAttributes(boolean create); - void setAttributes(Vector attributes) throws SdpException; - String getAttribute(String name) throws SdpParseException; - void setAttribute(String name, String value) throws SdpException; - void setDuplexity(String duplexity); - void removeAttribute(String name); - Vector getMimeTypes() throws SdpException; - Vector getMimeParameters() throws SdpException; - void setPreconditionFields(Vector precondition) throws SdpException; - Vector getPreconditionFields(); -} diff --git a/java/javax/sdp/Origin.java b/java/javax/sdp/Origin.java deleted file mode 100644 index a3994e7..0000000 --- a/java/javax/sdp/Origin.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package javax.sdp; - -public interface Origin { - String getUsername() throws SdpParseException; - long getSessId(); - String getSessIdAsString(); - long getSessVersion(); - String getSessVersionAsString(); - String getNettype(); - String getAddrtype(); - void setSessId(long s); - void setSessionId(String sessId); - void setSessVersion(long s); - void setSessVersion(String s); - void setNettype(String n); - void setAddrtype(String a); - void setUsername(String user) throws SdpException; - long getSessionId() throws SdpParseException; - void setSessionId(long id) throws SdpException; - long getSessionVersion() throws SdpParseException; - void setSessionVersion(long version) throws SdpException; - String getAddress() throws SdpParseException; - String getAddressType() throws SdpParseException; - String getNetworkType() throws SdpParseException; - void setAddressType(String type) throws SdpException; - void setNetworkType(String type) throws SdpException; - String encode(); - Object clone(); -} diff --git a/java/javax/sdp/Phone.java b/java/javax/sdp/Phone.java deleted file mode 100644 index c8e52ba..0000000 --- a/java/javax/sdp/Phone.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package javax.sdp; - -public interface Phone { - String getName(); - String getPhoneNumber(); - void setName(String name); - void setPhoneNumber(String phoneNumber); - String getValue() throws SdpParseException; - void setValue(String value) throws SdpException; - String encode(); -} diff --git a/java/javax/sdp/RepeatTime.java b/java/javax/sdp/RepeatTime.java deleted file mode 100644 index 0ab304a..0000000 --- a/java/javax/sdp/RepeatTime.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package javax.sdp; - -import java.util.*; - -public interface RepeatTime { - LinkedList getOffsets(); - int getRepeatInterval() throws SdpParseException; - int getActiveDuration() throws SdpParseException; - int[] getOffsetArray() throws SdpParseException; - void setOffsetArray(int[] offsets) throws SdpException; - boolean getTypedTime() throws SdpParseException; - void setTypedTime(boolean typedTime); - String encode(); - Object clone(); -} diff --git a/java/javax/sdp/SDPFieldNames.java b/java/javax/sdp/SDPFieldNames.java deleted file mode 100644 index 7cb608f..0000000 --- a/java/javax/sdp/SDPFieldNames.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package javax.sdp; - -public interface SDPFieldNames { - abstract String encode(); - boolean equals(Object that); - boolean match(Object other); -} diff --git a/java/javax/sdp/SdpConstants.java b/java/javax/sdp/SdpConstants.java deleted file mode 100644 index 6334773..0000000 --- a/java/javax/sdp/SdpConstants.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package javax.sdp; - -public class SdpConstants { - - public static final String RTPMAP = "rtpmap"; -} diff --git a/java/javax/sdp/SdpException.java b/java/javax/sdp/SdpException.java deleted file mode 100644 index 58abcfd..0000000 --- a/java/javax/sdp/SdpException.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package javax.sdp; - -import java.lang.*; - -public class SdpException extends Exception { - - public SdpException() {} - public SdpException(String msg) { - super(msg); - } - public SdpException(String msg, Exception ex) { - super(msg, ex); - } - -} diff --git a/java/javax/sdp/SdpFactory.java b/java/javax/sdp/SdpFactory.java deleted file mode 100644 index 6a7ecca..0000000 --- a/java/javax/sdp/SdpFactory.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package javax.sdp; - -import java.util.*; - -public class SdpFactory { - static final long POSIX_TIME_OFFSET = (70*365 + 70/4) * 86400L; - public SdpFactory() {} - - public static Date getDateFromNtp(long time) { - return new Date((time - POSIX_TIME_OFFSET) * 1000); - } - - public static long getNtpTime(Date time) { - if (time == null) return -1; - return time.getTime() / 1000 + POSIX_TIME_OFFSET; - } -} diff --git a/java/javax/sdp/SdpParseException.java b/java/javax/sdp/SdpParseException.java deleted file mode 100644 index 4ce41d7..0000000 --- a/java/javax/sdp/SdpParseException.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package javax.sdp; - -public class SdpParseException extends SdpException { - public SdpParseException() {} - public SdpParseException(String msg) { - super(msg); - } - public SdpParseException(String msg, Exception ex) { - super(msg, ex); - } -} diff --git a/java/javax/sdp/SessionDescription.java b/java/javax/sdp/SessionDescription.java deleted file mode 100644 index f1c8abb..0000000 --- a/java/javax/sdp/SessionDescription.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package javax.sdp; - -import java.util.*; - -public interface SessionDescription { - Version getVersion(); - void setVersion(Version v) throws SdpException; - Origin getOrigin(); - void setOrigin(Origin origin) throws SdpException; - SessionName getSessionName(); - void setSessionName(SessionName sessionName) throws SdpException; - Info getInfo(); - void setInfo(Info i) throws SdpException; - URI getURI(); - void setURI(URI uri) throws SdpException; - Vector getEmails(boolean create) throws SdpParseException; - void setEmails(Vector emails) throws SdpException; - Vector getPhones(boolean create) throws SdpException; - void setPhones(Vector phones) throws SdpException; - Vector getTimeDescriptions(boolean create) throws SdpException; - void setTimeDescriptions(Vector times) throws SdpException; - Vector getZoneAdjustments(boolean create) throws SdpException; - void setZoneAdjustments(Vector zoneAdjustments) throws SdpException; - Connection getConnection(); - void setConnection(Connection conn) throws SdpException; - Vector getBandwidths(boolean create); - void setBandwidths(Vector bandwidthList) throws SdpException; - int getBandwidth(String name) throws SdpParseException; - void setBandwidth(String name, int value) throws SdpException; - void removeBandwidth(String name); - Key getKey(); - void setKey(Key key) throws SdpException; - String getAttribute(String name) throws SdpParseException; - Vector getAttributes(boolean create); - void removeAttribute(String name); - void setAttribute(String name, String value) throws SdpException; - void setAttributes(Vector attributes) throws SdpException; - Vector getMediaDescriptions(boolean create) throws SdpException; -} diff --git a/java/javax/sdp/SessionName.java b/java/javax/sdp/SessionName.java deleted file mode 100644 index 81bbe26..0000000 --- a/java/javax/sdp/SessionName.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package javax.sdp; - -public interface SessionName { - String getSessionName(); - void setSessionName(String s); - String getValue() throws SdpParseException; - void setValue(String value) throws SdpException; - String encode(); - Object clone(); -} diff --git a/java/javax/sdp/Time.java b/java/javax/sdp/Time.java deleted file mode 100644 index 7eb7cc3..0000000 --- a/java/javax/sdp/Time.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package javax.sdp; - -import java.util.*; - -public interface Time { - long getStartTime(); - long getStopTime(); - void setStartTime(long startTime); - void setStopTime(long stopTime); - Date getStart() throws SdpParseException; - Date getStop() throws SdpParseException; - void setStop(Date stop) throws SdpException; - void setStart(Date start) throws SdpException; - boolean getTypedTime(); - void setTypedTime(boolean typedTime); - boolean isZero(); - void setZero(); - Object clone(); - String encode(); -} diff --git a/java/javax/sdp/TimeDescription.java b/java/javax/sdp/TimeDescription.java deleted file mode 100644 index 189457f..0000000 --- a/java/javax/sdp/TimeDescription.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package javax.sdp; - -import java.util.*; - -public interface TimeDescription { - Time getTime(); - void setTime(Time timeField) throws SdpException; - Vector getRepeatTimes(boolean create); - void setRepeatTimes(Vector repeatTimes) throws SdpException; -} diff --git a/java/javax/sdp/TimeZoneAdjustment.java b/java/javax/sdp/TimeZoneAdjustment.java deleted file mode 100644 index a2efcda..0000000 --- a/java/javax/sdp/TimeZoneAdjustment.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package javax.sdp; - -import java.util.*; - -public interface TimeZoneAdjustment { - String encode(); - Hashtable getZoneAdjustments(boolean create) throws SdpParseException; - void setZoneAdjustments(Hashtable map) throws SdpException; - void setTypedTime(boolean typedTime); - boolean getTypedTime(); - Object clone(); -} diff --git a/java/javax/sdp/URI.java b/java/javax/sdp/URI.java deleted file mode 100644 index 7cf5753..0000000 --- a/java/javax/sdp/URI.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package javax.sdp; - -import java.net.URL; - -public interface URI { - String getURI(); - void setURI(String uri); - URL get(); - void set(URL uri); - String encode(); -} diff --git a/java/javax/sdp/Version.java b/java/javax/sdp/Version.java deleted file mode 100644 index 563766a..0000000 --- a/java/javax/sdp/Version.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package javax.sdp; - -public interface Version { - int getProtoVersion(); - void setProtoVersion(int pv); - int getVersion() throws SdpParseException; - void setVersion(int value) throws SdpException; - String encode(); - Object clone(); -} |