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*******************************************************************************/ 27package gov.nist.javax.sip.header; 28 29import java.text.ParseException; 30 31import gov.nist.javax.sip.address.*; 32import 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 */ 45public 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 */ 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 */ 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 */ 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 */ 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 */ 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 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