diff options
Diffstat (limited to 'core/src/main/java/org/spongycastle/i18n/filter/HTMLFilter.java')
-rw-r--r-- | core/src/main/java/org/spongycastle/i18n/filter/HTMLFilter.java | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/core/src/main/java/org/spongycastle/i18n/filter/HTMLFilter.java b/core/src/main/java/org/spongycastle/i18n/filter/HTMLFilter.java new file mode 100644 index 00000000..a6af7fe7 --- /dev/null +++ b/core/src/main/java/org/spongycastle/i18n/filter/HTMLFilter.java @@ -0,0 +1,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,"<"); + break; + case '>': + buf.replace(i,i+1,">"); + break; + case '(': + buf.replace(i,i+1,"("); + break; + case ')': + buf.replace(i,i+1,")"); + break; + case '#': + buf.replace(i,i+1,"#"); + break; + case '&': + buf.replace(i,i+1,"&"); + break; + case '\"': + buf.replace(i,i+1,"""); + break; + case '\'': + buf.replace(i,i+1,"'"); + break; + case '%': + buf.replace(i,i+1,"%"); + break; + case ';': + buf.replace(i,i+1,";"); + break; + case '+': + buf.replace(i,i+1,"+"); + break; + case '-': + buf.replace(i,i+1,"-"); + break; + default: + i -= 3; + } + i += 4; + } + return buf.toString(); + } + + public String doFilterUrl(String input) + { + return doFilter(input); + } + +} |