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* Pursuant to title 15 Untied States Code Section 105, works of NIST 7600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang* employees are not subject to copyright protection in the United States 8600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang* and are considered to be in the public domain. As a result, a formal 9600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang* license is not needed to use the software. 10600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang* 11600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang* This software is provided by NIST as a service and is expressly 12600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED 13600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF 14600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT 15600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang* AND DATA ACCURACY. NIST does not warrant or make any representations 16600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang* regarding the use of the software or the results thereof, including but 17600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang* not limited to the correctness, accuracy, reliability or usefulness of 18600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang* the software. 19600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang* 20600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang* Permission to use this software is contingent upon your acceptance 21600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang* of the terms of this agreement 22600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang* 23600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang* . 24600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang* 25600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang*/ 26600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangpackage gov.nist.javax.sip.address; 27600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 28600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport gov.nist.core.*; 29600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 30600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport java.util.Iterator; 31600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 32600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang/** 33600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * Telephone number class. 34600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @version 1.2 35600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @version 1.2 $Revision: 1.10 $ $Date: 2009/07/17 18:57:23 $ 36600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 37600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @author M. Ranganathan 38600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 39600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 40600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangpublic class TelephoneNumber extends NetObject { 41600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public static final String POSTDIAL = ParameterNames.POSTDIAL; 42600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public static final String PHONE_CONTEXT_TAG = 43600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang ParameterNames.PHONE_CONTEXT_TAG; 44600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public static final String ISUB = ParameterNames.ISUB; 45600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public static final String PROVIDER_TAG = ParameterNames.PROVIDER_TAG; 46600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 47600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** isglobal field 48600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 49600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang protected boolean isglobal; 50600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 51600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** phoneNumber field 52600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 53600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang protected String phoneNumber; 54600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 55600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** parmeters list 56600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 57600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang protected NameValueList parameters; 58600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 59600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** Creates new TelephoneNumber */ 60600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public TelephoneNumber() { 61600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang parameters = new NameValueList(); 62600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 63600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 64600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** delete the specified parameter. 65600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @param name String to set 66600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 67600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public void deleteParm(String name) { 68600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang parameters.delete(name); 69600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 70600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 71600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** get the PhoneNumber field 72600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @return String 73600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 74600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public String getPhoneNumber() { 75600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang return phoneNumber; 76600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 77600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 78600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** get the PostDial field 79600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @return String 80600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 81600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public String getPostDial() { 82600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang return (String) parameters.getValue(POSTDIAL); 83600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 84600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 85600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 86600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * Get the isdn subaddress for this number. 87600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @return String 88600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 89600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public String getIsdnSubaddress() { 90600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang return (String) parameters.getValue(ISUB); 91600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 92600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 93600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** returns true if th PostDial field exists 94600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @return boolean 95600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 96600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public boolean hasPostDial() { 97600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang return parameters.getValue(POSTDIAL) != null; 98600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 99600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 100600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** return true if this header has parameters. 101600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @param pname String to set 102600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @return boolean 103600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 104600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public boolean hasParm(String pname) { 105600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang return parameters.hasNameValue(pname); 106600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 107600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 108600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 109600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * return true if the isdn subaddress exists. 110600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @return boolean 111600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 112600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public boolean hasIsdnSubaddress() { 113600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang return hasParm(ISUB); 114600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 115600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 116600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 117600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * is a global telephone number. 118600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @return boolean 119600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 120600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public boolean isGlobal() { 121600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang return isglobal; 122600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 123600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 124600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** remove the PostDial field 125600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 126600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public void removePostDial() { 127600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang parameters.delete(POSTDIAL); 128600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 129600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 130600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 131600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * Remove the isdn subaddress (if it exists). 132600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 133600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public void removeIsdnSubaddress() { 134600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang deleteParm(ISUB); 135600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 136600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 137600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 138600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * Set the list of parameters. 139600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @param p NameValueList to set 140600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 141600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public void setParameters(NameValueList p) { 142600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang parameters = p; 143600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 144600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 145600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** set the Global field 146600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @param g boolean to set 147600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 148600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public void setGlobal(boolean g) { 149600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang isglobal = g; 150600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 151600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 152600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** set the PostDial field 153600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @param p String to set 154600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 155600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public void setPostDial(String p) { 156600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang NameValue nv = new NameValue(POSTDIAL, p); 157600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang parameters.set(nv); 158600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 159600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 160600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** set the specified parameter 161600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @param name String to set 162600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @param value Object to set 163600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 164600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public void setParm(String name, Object value) { 165600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang NameValue nv = new NameValue(name, value); 166600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang parameters.set(nv); 167600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 168600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 169600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 170600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * set the isdn subaddress for this structure. 171600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @param isub String to set 172600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 173600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public void setIsdnSubaddress(String isub) { 174600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang setParm(ISUB, isub); 175600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 176600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 177600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** set the PhoneNumber field 178600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @param num String to set 179600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 180600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public void setPhoneNumber(String num) { 181600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang phoneNumber = num; 182600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 183600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 184600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public String encode() { 185600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang return encode(new StringBuffer()).toString(); 186600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 187600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 188600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public StringBuffer encode(StringBuffer buffer) { 189600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang if (isglobal) 190600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang buffer.append('+'); 191600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang buffer.append(phoneNumber); 192600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang if (!parameters.isEmpty()) { 193600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang buffer.append(SEMICOLON); 194600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang parameters.encode(buffer); 195600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 196600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang return buffer; 197600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 198600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 199600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 200600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * Returns the value of the named parameter, or null if it is not set. A 201600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * zero-length String indicates flag parameter. 202600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 203600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @param name name of parameter to retrieve 204600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 205600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @return the value of specified parameter 206600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 207600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 208600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public String getParameter(String name) { 209600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang Object val = parameters.getValue(name); 210600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang if (val == null) 211600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang return null; 212600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang if (val instanceof GenericObject) 213600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang return ((GenericObject) val).encode(); 214600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang else 215600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang return val.toString(); 216600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 217600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 218600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 219600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 220600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * Returns an Iterator over the names (Strings) of all parameters. 221600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 222600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @return an Iterator over all the parameter names 223600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 224600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 225600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public Iterator<String> getParameterNames() { 226600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang return this.parameters.getNames(); 227600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 228600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 229600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public void removeParameter(String parameter) { 230600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang this.parameters.delete(parameter); 231600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 232600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 233600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public void setParameter(String name, String value) { 234600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang NameValue nv = new NameValue(name, value); 235600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang this.parameters.set(nv); 236600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 237600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 238600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public Object clone() { 239600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang TelephoneNumber retval = (TelephoneNumber) super.clone(); 240600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang if (this.parameters != null) 241600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang retval.parameters = (NameValueList) this.parameters.clone(); 242600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang return retval; 243600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 244600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 245600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public NameValueList getParameters() { 246600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang return this.parameters; 247600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 248600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang} 249