1
2package org.bouncycastle.i18n.filter;
3
4/**
5 * HTML Filter
6 */
7public class HTMLFilter implements Filter
8{
9
10    public String doFilter(String input)
11    {
12        StringBuffer buf = new StringBuffer(input);
13        int i = 0;
14        while (i < buf.length())
15        {
16            char ch = buf.charAt(i);
17            switch (ch)
18            {
19            case '<':
20                buf.replace(i,i+1,"&#60");
21                break;
22            case '>':
23                buf.replace(i,i+1,"&#62");
24                break;
25            case '(':
26                buf.replace(i,i+1,"&#40");
27                break;
28            case ')':
29                buf.replace(i,i+1,"&#41");
30                break;
31            case '#':
32                buf.replace(i,i+1,"&#35");
33                break;
34            case '&':
35                buf.replace(i,i+1,"&#38");
36                break;
37            case '\"':
38                buf.replace(i,i+1,"&#34");
39                break;
40            case '\'':
41                buf.replace(i,i+1,"&#39");
42                break;
43            case '%':
44                buf.replace(i,i+1,"&#37");
45                break;
46            case ';':
47                buf.replace(i,i+1,"&#59");
48                break;
49            case '+':
50                buf.replace(i,i+1,"&#43");
51                break;
52            case '-':
53                buf.replace(i,i+1,"&#45");
54                break;
55            default:
56                i -= 3;
57            }
58            i += 4;
59        }
60        return buf.toString();
61    }
62
63}
64