01: /*
02: * Copyright 2003 Sun Microsystems, Inc. All rights reserved.
03: *
04: * Redistribution and use in source and binary forms, with or without
05: * modification, are permitted provided that the following conditions
06: * are met:
07: *
08: * - Redistributions of source code must retain the above copyright
09: * notice, this list of conditions and the following disclaimer.
10: *
11: * - Redistribution in binary form must reproduce the above copyright
12: * notice, this list of conditions and the following disclaimer in
13: * the documentation and/or other materials provided with the
14: * distribution.
15: *
16: * Neither the name of Sun Microsystems, Inc. or the names of
17: * contributors may be used to endorse or promote products derived
18: * from this software without specific prior written permission.
19: *
20: * This software is provided "AS IS," without a warranty of any
21: * kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND
22: * WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY,
23: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY
24: * EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES
25: * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
26: * DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN
27: * OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR
28: * FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR
29: * PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF
30: * LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE SOFTWARE,
31: * EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
32: *
33: * You acknowledge that Software is not designed, licensed or intended
34: * for use in the design, construction, operation or maintenance of
35: * any nuclear facility.
36: */
37:
38: package com.sun.portal.portlet.samples.bookmarkportlet;
39:
40: class HTMLEncoder implements TypeEncoder {
41: public String encode(String text) {
42:
43: StringBuffer escaped = new StringBuffer();
44: //
45: // XXX(susu): this portion of the code has been borrowed from
46: // JAXP 1.1 source
47: //
48: for (int i = 0; i < text.length(); i++) {
49: char c = text.charAt(i);
50: switch (c) {
51: // XXX only a few of these are necessary; we
52: // do what "Canonical XML" expects
53: case '<':
54: escaped.append("<");
55: continue;
56: case '>':
57: escaped.append(">");
58: continue;
59: case '&':
60: escaped.append("&");
61: continue;
62: case '"':
63: escaped.append(""");
64: continue;
65: default:
66: escaped.append(c);
67: continue;
68: }
69: }
70: return escaped.toString();
71: }
72: }
|