• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2 * Conditions Of Use
3 *
4 * This software was developed by employees of the National Institute of
5 * Standards and Technology (NIST), an agency of the Federal Government.
6 * Pursuant to title 15 Untied States Code Section 105, works of NIST
7 * employees are not subject to copyright protection in the United States
8 * and are considered to be in the public domain.  As a result, a formal
9 * license is not needed to use the software.
10 *
11 * This software is provided by NIST as a service and is expressly
12 * provided "AS IS."  NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
13 * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
14 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
15 * AND DATA ACCURACY.  NIST does not warrant or make any representations
16 * regarding the use of the software or the results thereof, including but
17 * not limited to the correctness, accuracy, reliability or usefulness of
18 * the software.
19 *
20 * Permission to use this software is contingent upon your acceptance
21 * of the terms of this agreement.
22 *
23 */
24 /*******************************************************************************
25 * Product of NIST/ITL Advanced Networking Technologies Division (ANTD)         *
26 *******************************************************************************/
27 package gov.nist.javax.sip.header;
28 
29 import java.text.ParseException;
30 
31 import gov.nist.javax.sip.address.*;
32 import javax.sip.address.*;
33 
34 /**
35  * AlertInfo SIP Header.
36  *
37  * @author M. Ranganathan   <br/>
38  *
39  * @since 1.1
40  *
41  * @version 1.2 $Revision: 1.8 $ $Date: 2009/07/17 18:57:25 $
42  *
43  *
44  */
45 public final class AlertInfo
46     extends ParametersHeader
47     implements javax.sip.header.AlertInfoHeader {
48 
49     /**
50      * Comment for <code>serialVersionUID</code>
51      */
52     private static final long serialVersionUID = 4159657362051508719L;
53     /** URI field
54      */
55     protected GenericURI uri;
56     /** String field
57      */
58     protected String string;
59 
60     /** Constructor
61      */
AlertInfo()62     public AlertInfo() {
63         super(NAME);
64     }
65 
66     /**
67      * Return value encoding in canonical form.
68      * @return The value of the header in canonical encoding.
69      */
encodeBody()70     protected String encodeBody() {
71         StringBuffer encoding = new StringBuffer();
72         if (uri != null) {
73             encoding.append(LESS_THAN).append(uri.encode()).append(GREATER_THAN);
74         } else if (string != null) {
75             encoding.append(string);
76         }
77         if (!parameters.isEmpty()) {
78             encoding.append(SEMICOLON).append(parameters.encode());
79         }
80         return encoding.toString();
81     }
82 
83     /**
84      * Set the uri member
85      * @param uri URI to set
86      */
setAlertInfo(URI uri)87     public void setAlertInfo(URI uri) {
88         this.uri = (GenericURI) uri;
89     }
90 
91     /**
92      * Set the string member
93      * @param string String to set
94      */
setAlertInfo(String string)95     public void setAlertInfo(String string) {
96         this.string = string;
97     }
98 
99     /**
100      * Returns the AlertInfo value of this AlertInfoHeader.
101      * @return the URI representing the AlertInfo.
102      */
getAlertInfo()103     public URI getAlertInfo() {
104         URI alertInfoUri = null;
105 
106         if (this.uri != null) {
107             alertInfoUri = (URI) this.uri;
108         } else {
109             try {
110                 alertInfoUri = (URI) new GenericURI(string);
111             } catch (ParseException e) {
112                 ;  // Eat the exception.
113             }
114         }
115 
116         return alertInfoUri;
117     }
118 
clone()119     public Object clone() {
120         AlertInfo retval = (AlertInfo) super.clone();
121         if (this.uri != null) {
122             retval.uri = (GenericURI) this.uri.clone();
123         } else if (this.string != null) {
124             retval.string = this.string;
125         }
126         return retval;
127     }
128 }
129