1600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang/* 2600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * Conditions Of Use 3600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 4600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * This software was developed by employees of the National Institute of 5600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * Standards and Technology (NIST), an agency of the Federal Government, 6600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * and others. 7600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * Pursuant to title 15 Untied States Code Section 105, works of NIST 8600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * employees are not subject to copyright protection in the United States 9600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * and are considered to be in the public domain. As a result, a formal 10600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * license is not needed to use the software. 11600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 12600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * This software is provided by NIST as a service and is expressly 13600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED 14600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF 15600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT 16600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * AND DATA ACCURACY. NIST does not warrant or make any representations 17600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * regarding the use of the software or the results thereof, including but 18600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * not limited to the correctness, accuracy, reliability or usefulness of 19600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * the software. 20600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 21600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * Permission to use this software is contingent upon your acceptance 22600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * of the terms of this agreement. 23600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 24600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 25600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang/***************************************************************************** 26600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * PRODUCT OF PT INOVACAO - EST DEPARTMENT and Aveiro University - Portugal) * 27600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang *****************************************************************************/ 28600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 29600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangpackage gov.nist.javax.sip.header.ims; 30600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 31600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport java.text.ParseException; 32600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 33600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport javax.sip.header.ContactHeader; 34600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport javax.sip.header.ExtensionHeader; 35600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 36600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport gov.nist.javax.sip.header.ParametersHeader; 37600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 38600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang/** 39600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * <p>P-Access-Network-Info SIP Private Header</p> 40600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 41600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @author Miguel Freitas (IT) PT-Inovacao 42600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 43600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @since 1.2 44600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 45600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 46600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangpublic class PAccessNetworkInfo 47600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang extends ParametersHeader 48600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang implements PAccessNetworkInfoHeader, ExtensionHeader { 49600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 50600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang // TODO: serialVersionUID 51600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 52600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang private String accessType; 53600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 54600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang private Object extendAccessInfo; 55600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 56600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 57600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * Public constructor. 58600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 59600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public PAccessNetworkInfo() { 60600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang super(PAccessNetworkInfoHeader.NAME); 61600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang parameters.setSeparator(SEMICOLON); 62600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 63600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 64600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 65600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * Constructor. 66600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 67600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public PAccessNetworkInfo(String accessTypeVal) { 68600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang this(); 69600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang setAccessType(accessTypeVal); 70600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 71600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 72600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 73600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * Set the accessTpe 74600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 75600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @param accessTypeVal - access type 76600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @throws NullPointerException 77600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 78600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public void setAccessType(String accessTypeVal) { 79600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang if (accessTypeVal == null) 80600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang throw new NullPointerException( 81600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang "JAIN-SIP Exception, " 82600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang + "P-Access-Network-Info, setAccessType(), the accessType parameter is null."); 83600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 84600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang this.accessType = accessTypeVal; 85600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 86600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 87600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 88600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @return String access type 89600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 90600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public String getAccessType() { 91600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang return accessType; 92600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 93600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 94600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 95600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 96600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @param cgi -- String CGI value 97600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @throws NullPointerException -- if null argument passed in 98600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @throws ParseException -- if bad argument passed in. 99600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 100600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public void setCGI3GPP(String cgi) throws ParseException { 101600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 102600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang if (cgi == null) 103600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang throw new NullPointerException( 104600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang "JAIN-SIP Exception, " 105600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang + "P-Access-Network-Info, setCGI3GPP(), the cgi parameter is null."); 106600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 107600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang setParameter(ParameterNamesIms.CGI_3GPP, cgi); 108600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 109600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 110600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 111600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 112600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 113600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @return String CGI value 114600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 115600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public String getCGI3GPP() { 116600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang return getParameter(ParameterNamesIms.CGI_3GPP); 117600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 118600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 119600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 120600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * Set the UtranCellID field. 121600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 122600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @param utranCellID -- String UTRAN Cell ID value 123600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @throws NullPointerException 124600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @throws ParseException 125600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 126600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public void setUtranCellID3GPP(String utranCellID) throws ParseException { 127600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 128600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang if (utranCellID == null) 129600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang throw new NullPointerException( 130600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang "JAIN-SIP Exception, " 131600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang + "P-Access-Network-Info, setUtranCellID3GPP(), the utranCellID parameter is null."); 132600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 133600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang setParameter(ParameterNamesIms.UTRAN_CELL_ID_3GPP, utranCellID); 134600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 135600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 136600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 137600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 138600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 139600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @return String UTRAN Cell ID value 140600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 141600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public String getUtranCellID3GPP() { 142600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang return getParameter(ParameterNamesIms.UTRAN_CELL_ID_3GPP); 143600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 144600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 145600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 146600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 147600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @param dslLocation - String with the DSL location value 148600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @throws NullPointerException 149600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @throws ParseException 150600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 151600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public void setDSLLocation(String dslLocation) throws ParseException { 152600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 153600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang if (dslLocation == null) 154600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang throw new NullPointerException( 155600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang "JAIN-SIP Exception, " 156600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang + "P-Access-Network-Info, setDSLLocation(), the dslLocation parameter is null."); 157600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 158600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang setParameter(ParameterNamesIms.DSL_LOCATION, dslLocation); 159600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 160600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 161600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 162600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 163600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 164600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @return String DSL location value 165600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 166600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public String getDSLLocation() { 167600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang return getParameter(ParameterNamesIms.DSL_LOCATION); 168600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 169600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 170600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 171600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 172600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @param ci3Gpp2 -- String CI 3GPP2 value 173600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @throws NullPointerException -- if arg is null 174600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @throws ParseException -- if arg is bad. 175600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 176600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public void setCI3GPP2(String ci3Gpp2) throws ParseException { 177600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang if (ci3Gpp2 == null) 178600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang throw new NullPointerException( 179600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang "JAIN-SIP Exception, " 180600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang + "P-Access-Network-Info, setCI3GPP2(), the ci3Gpp2 parameter is null."); 181600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 182600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang setParameter(ParameterNamesIms.CI_3GPP2, ci3Gpp2); 183600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 184600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 185600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 186600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 187600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @return String CI 3GPP2 value 188600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 189600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public String getCI3GPP2() { 190600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang return getParameter(ParameterNamesIms.CI_3GPP2); 191600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 192600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 193600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 194600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 195600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @param name -- 196600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * parameter name 197600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @param value -- 198600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * value of parameter 199600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 200600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public void setParameter(String name, Object value) { 201600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 202600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @todo ParametersHeader needs to be fix!? missing "throws 203600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * ParseException" in setParameter(String, Object) 204600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 205600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 206600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang if (name.equalsIgnoreCase(ParameterNamesIms.CGI_3GPP) 207600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang || name.equalsIgnoreCase(ParameterNamesIms.UTRAN_CELL_ID_3GPP) 208600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang || name.equalsIgnoreCase(ParameterNamesIms.DSL_LOCATION) 209600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang || name.equalsIgnoreCase(ParameterNamesIms.CI_3GPP2)) { 210600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang try { 211600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang super.setQuotedParameter(name, value.toString()); 212600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } catch (ParseException e) { 213600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 214600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 215600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 216600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } else { 217600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang // value can be token either than a quoted-string 218600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang super.setParameter(name, value); 219600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 220600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 221600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 222600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 223600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 224600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 225600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * extension-access-info = gen-value gen-value = token / host / 226600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * quoted-string 227600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 228600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @param extendAccessInfo - extended Access Information 229600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 230600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public void setExtensionAccessInfo(Object extendAccessInfo) 231600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang throws ParseException { 232600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 233600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang if (extendAccessInfo == null) 234600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang throw new NullPointerException( 235600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang "JAIN-SIP Exception, " 236600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang + "P-Access-Network-Info, setExtendAccessInfo(), the extendAccessInfo parameter is null."); 237600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 238600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang // or -> setParameter("", extendAccessInfo); 239600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 240600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang this.extendAccessInfo = extendAccessInfo; 241600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 242600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 243600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 244600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public Object getExtensionAccessInfo() { 245600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang return this.extendAccessInfo; 246600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 247600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 248600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang protected String encodeBody() { 249600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 250600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang StringBuffer encoding = new StringBuffer(); 251600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 252600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang if (getAccessType() != null) 253600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang encoding.append(getAccessType()); 254600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 255600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang if (!parameters.isEmpty()) { 256600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang encoding.append(SEMICOLON + SP + this.parameters.encode()); 257600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 258600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang // else if (getExtendAccessInfo() != null) // stack deve limitar, de 259600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang // acordo com a especificação ? 260600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang if (getExtensionAccessInfo() != null) { 261600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang encoding.append(SEMICOLON + SP 262600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang + getExtensionAccessInfo().toString()); 263600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 264600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 265600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang return encoding.toString(); 266600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 267600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 268600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 269600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public void setValue(String value) throws ParseException { 270600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang throw new ParseException(value, 0); 271600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 272600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 273600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 274600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 275600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public boolean equals(Object other) { 276600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang return (other instanceof PAccessNetworkInfoHeader) && super.equals(other); 277600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 278600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 279600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /* 280600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * Makes a deep clone. (ParametersHeader) 281600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 282600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public Object clone() { 283600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang PAccessNetworkInfo retval = (PAccessNetworkInfo) super.clone(); 284600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang return retval; 285600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 286600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 287600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 288600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang} 289