aboutsummaryrefslogtreecommitdiffstats
path: root/libraries/spongycastle/core/src/main/java/org/spongycastle/i18n/filter/HTMLFilter.java
blob: a6af7fe7c1eef2de98cf39bd07a670daffb8c799 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package org.spongycastle.i18n.filter;

/**
 * HTML Filter
 */
public class HTMLFilter implements Filter 
{

    public String doFilter(String input) 
    {
        StringBuffer buf = new StringBuffer(input);
        int i = 0;
        while (i < buf.length()) 
        {
            char ch = buf.charAt(i);
            switch (ch)
            {
            case '<':
                buf.replace(i,i+1,"&#60");
                break;
            case '>':
                buf.replace(i,i+1,"&#62");
                break;
            case '(':
                buf.replace(i,i+1,"&#40");
                break;
            case ')':
                buf.replace(i,i+1,"&#41");
                break;
            case '#':
                buf.replace(i,i+1,"&#35");
                break;
            case '&':
                buf.replace(i,i+1,"&#38");
                break;
            case '\"':
                buf.replace(i,i+1,"&#34");
                break;
            case '\'':
                buf.replace(i,i+1,"&#39");
                break;
            case '%':
                buf.replace(i,i+1,"&#37");
                break;
            case ';':
                buf.replace(i,i+1,"&#59");
                break;
            case '+':
                buf.replace(i,i+1,"&#43");
                break;
            case '-':
                buf.replace(i,i+1,"&#45");
                break;
            default:
                i -= 3;
            }
            i += 4;
        }
        return buf.toString();
    }
    
    public String doFilterUrl(String input)
    {
        return doFilter(input);
    }

}