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