279 // Heuristic: 8 characters per field 280 StringBuilder buffer = new StringBuilder(parameters.size() * 16); 281 282 Enumeration<String> keys = parameters.keys(); 283 while(keys.hasMoreElements()) 284 { 285 buffer.append("; "); 286 287 String key = keys.nextElement(); 288 buffer.append(key); 289 buffer.append('='); 290 buffer.append(quote(parameters.get(key))); 291 } 292 293 return buffer.toString(); 294 } 295 296 /** 297 * @return a clone of this object 298 */ 299 300 public Object clone() { 301 MimeTypeParameterList newObj = null; 302 try { 303 newObj = (MimeTypeParameterList)super.clone(); 304 } catch (CloneNotSupportedException cannotHappen) { 305 } 306 newObj.parameters = (Hashtable)parameters.clone(); 307 return newObj; 308 } 309 310 private Hashtable<String, String> parameters; 311 312 // below here be scary parsing related things 313 314 /** 315 * Determine whether or not a given character belongs to a legal token. 316 */ 317 private static boolean isTokenChar(char c) { 318 return ((c > 040) && (c < 0177)) && (TSPECIALS.indexOf(c) < 0); 319 } 320 321 /** 322 * return the index of the first non white space character in 323 * rawdata at or after index i. 324 */ 325 private static int skipWhiteSpace(String rawdata, int i) { 326 int length = rawdata.length(); | 279 // Heuristic: 8 characters per field 280 StringBuilder buffer = new StringBuilder(parameters.size() * 16); 281 282 Enumeration<String> keys = parameters.keys(); 283 while(keys.hasMoreElements()) 284 { 285 buffer.append("; "); 286 287 String key = keys.nextElement(); 288 buffer.append(key); 289 buffer.append('='); 290 buffer.append(quote(parameters.get(key))); 291 } 292 293 return buffer.toString(); 294 } 295 296 /** 297 * @return a clone of this object 298 */ 299 @SuppressWarnings("unchecked") // Cast from clone 300 public Object clone() { 301 MimeTypeParameterList newObj = null; 302 try { 303 newObj = (MimeTypeParameterList)super.clone(); 304 } catch (CloneNotSupportedException cannotHappen) { 305 } 306 newObj.parameters = (Hashtable<String, String>)parameters.clone(); 307 return newObj; 308 } 309 310 private Hashtable<String, String> parameters; 311 312 // below here be scary parsing related things 313 314 /** 315 * Determine whether or not a given character belongs to a legal token. 316 */ 317 private static boolean isTokenChar(char c) { 318 return ((c > 040) && (c < 0177)) && (TSPECIALS.indexOf(c) < 0); 319 } 320 321 /** 322 * return the index of the first non white space character in 323 * rawdata at or after index i. 324 */ 325 private static int skipWhiteSpace(String rawdata, int i) { 326 int length = rawdata.length(); |