webwork/src/main/webwork/util TextUtil.java,NONE,1.1

[email protected] Tue, 07 May 2002 18:39:17 -0700
Newsgroups gmane.comp.java.webwork.cvs
Message-ID <[email protected]>
Update of /cvsroot/webwork/webwork/src/main/webwork/util
In directory usw-pr-cvs1:/tmp/cvs-serv30997

Added Files:
	TextUtil.java 
Log Message:
new

--- NEW FILE: TextUtil.java ---
/*
* WebWork, Web Application Framework
*
* Distributable under Apache license.
* See terms of license at opensource.org
*/
package webwork.util;

import org.apache.log4j.Category;

/**
 * <code>TextUtil</code>
 *
 * @author Matt Baldree ([email protected])
 * @version $Revision: 1.1 $
 */
public class TextUtil
{
   private static final Category log = Category.getInstance(TextUtil.class);

   /**
    * Simple determination if string is escaped. It looks for
    * escape sequences like "&nbsp;", etc.
    */
   public static final boolean isEscaped(String s) {
      return (
         s.indexOf("&nbsp;") != -1||
         s.indexOf("&lt;") != -1 || s.indexOf("&gt;") != -1 ||
         s.indexOf("&amp;") != -1|| s.indexOf("&quot;") != -1 ||
         s.indexOf("&agrave;") != -1|| s.indexOf("&Agrave;") != -1 ||
         s.indexOf("&acirc;") != -1|| s.indexOf("&Acirc;") != -1 ||
         s.indexOf("&auml;") != -1|| s.indexOf("&Auml;") != -1 ||
         s.indexOf("&aring;") != -1|| s.indexOf("&Aring;") != -1 ||
         s.indexOf("&aelig;") != -1|| s.indexOf("&AElig;") != -1 ||
         s.indexOf("&ccedil;") != -1|| s.indexOf("&Ccedil;") != -1 ||
         s.indexOf("&eacute;") != -1|| s.indexOf("&Eacute;") != -1 ||
         s.indexOf("&egrave;") != -1|| s.indexOf("&Egrave;") != -1 ||
         s.indexOf("&ecirc;") != -1|| s.indexOf("&Ecirc;") != -1 ||
         s.indexOf("&euml;") != -1|| s.indexOf("&Euml;") != -1 ||
         s.indexOf("&iuml;") != -1|| s.indexOf("&Iuml;") != -1 ||
         s.indexOf("&ocirc;") != -1|| s.indexOf("&Ocirc;") != -1 ||
         s.indexOf("&oslash;") != -1|| s.indexOf("&Oslash;") != -1 ||
         s.indexOf("&ouml;") != -1|| s.indexOf("&Ouml;") != -1 ||
         s.indexOf("&szlig;") != -1||
         s.indexOf("&ugrave;") != -1 || s.indexOf("&Ugrave;") != -1||
         s.indexOf("&uuml;") != -1 || s.indexOf("&Uuml;") != -1||
         s.indexOf("&reg;") != -1 || s.indexOf("&copy;") != -1||
         s.indexOf("&euro;") != -1) ? true : false;
   }

   /**
    * Call escapeHTML(s, false, false, false)
    */
   public static final String escapeHTML(String s) {
      return escapeHTML(s, false, false, false);
   }

   /**
    * Escape HTML.
    *
    * @param escapeWhitespace if true, then white space will
    * be escaped with &nbsp; otherwise, it will be ignored.
    * @param s string to be escaped
    * @param escapeEmpty if true, then empty string will be escaped.
    * @param escapeOuterQuotes if true, then outer quotes will be escaped.
    *
    */
   public static final String escapeHTML(String s,
                                         boolean escapeEmpty,
                                         boolean escapeWhitespace,
                                         boolean escapeOuterQuotes)
   {
      if (!escapeEmpty &&
         ("".equals(s.trim()) || ("\"\"").equals(s.trim())))
      {
         return s;
      }

      StringBuffer sb = new StringBuffer();
      char[] chars = s.toCharArray();
      for (int i = 0; i < chars.length; i++) {
         char c = chars[i];
         switch (c) {
            case '<':
               sb.append("&lt;");
               break;
            case '>':
               sb.append("&gt;");
               break;
            case '&':
               sb.append("&amp;");
               break;
            case '"':
               if (!escapeOuterQuotes &&
                     //string is quoted
                     (chars[0]=='"' && chars[chars.length-1]=='"') &&
                     //this is the outer quote char
                     (i==0 || i==chars.length-1))
               {
               } else {
                  sb.append("&quot;");
               }
               break;
            case 'à':
               sb.append("&agrave;");
               break;
            case 'À':
               sb.append("&Agrave;");
               break;
            case 'â':
               sb.append("&acirc;");
               break;
            case 'Â':
               sb.append("&Acirc;");
               break;
            case 'ä':
               sb.append("&auml;");
               break;
            case 'Ä':
               sb.append("&Auml;");
               break;
            case 'å':
               sb.append("&aring;");
               break;
            case 'Å':
               sb.append("&Aring;");
               break;
            case 'æ':
               sb.append("&aelig;");
               break;
            case 'Æ':
               sb.append("&AElig;");
               break;
            case 'ç':
               sb.append("&ccedil;");
               break;
            case 'Ç':
               sb.append("&Ccedil;");
               break;
            case 'é':
               sb.append("&eacute;");
               break;
            case 'É':
               sb.append("&Eacute;");
               break;
            case 'è':
               sb.append("&egrave;");
               break;
            case 'È':
               sb.append("&Egrave;");
               break;
            case 'ê':
               sb.append("&ecirc;");
               break;
            case 'Ê':
               sb.append("&Ecirc;");
               break;
            case 'ë':
               sb.append("&euml;");
               break;
            case 'Ë':
               sb.append("&Euml;");
               break;
            case 'ï':
               sb.append("&iuml;");
               break;
            case 'Ï':
               sb.append("&Iuml;");
               break;
            case 'ô':
               sb.append("&ocirc;");
               break;
            case 'Ô':
               sb.append("&Ocirc;");
               break;
            case 'ö':
               sb.append("&ouml;");
               break;
            case 'Ö':
               sb.append("&Ouml;");
               break;
            case 'ø':
               sb.append("&oslash;");
               break;
            case 'Ø':
               sb.append("&Oslash;");
               break;
            case 'ß':
               sb.append("&szlig;");
               break;
            case 'ù':
               sb.append("&ugrave;");
               break;
            case 'Ù':
               sb.append("&Ugrave;");
               break;
            case 'û':
               sb.append("&ucirc;");
               break;
            case 'Û':
               sb.append("&Ucirc;");
               break;
            case 'ü':
               sb.append("&uuml;");
               break;
            case 'Ü':
               sb.append("&Uuml;");
               break;
            case '®':
               sb.append("&reg;");
               break;
            case '©':
               sb.append("&copy;");
               break;
            case '€':
               sb.append("&euro;");
               break;
               // be carefull with this one (non-breaking whitee space)
            case ' ':
               if (escapeWhitespace) {
                  sb.append("&nbsp;");
               } else {
                  sb.append(c);
               }
               break;

            default:
               sb.append(c);
               break;
         }
      }
      return sb.toString();
   }
}



_______________________________________________________________

Have big pipes? SourceForge.net is looking for download mirrors. We supply
the hardware. You get the recognition. Email Us: [email protected]