craigmcc    01/01/27 20:51:14

  Modified:    src/share/org/apache/struts/util BeanUtils.java
  Log:
  Improve the efficiency of BeanUtils.filter() by using a switch statement.
  
  Submitted by:  Matthias Kerkhoff <[EMAIL PROTECTED]>
    (an oldie but a goodie ... submitted last October :-)
  
  Revision  Changes    Path
  1.25      +20 -13    jakarta-struts/src/share/org/apache/struts/util/BeanUtils.java
  
  Index: BeanUtils.java
  ===================================================================
  RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/util/BeanUtils.java,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- BeanUtils.java    2001/01/10 01:54:21     1.24
  +++ BeanUtils.java    2001/01/28 04:51:13     1.25
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-struts/src/share/org/apache/struts/util/BeanUtils.java,v 1.24 
2001/01/10 01:54:21 craigmcc Exp $
  - * $Revision: 1.24 $
  - * $Date: 2001/01/10 01:54:21 $
  + * $Header: 
/home/cvs/jakarta-struts/src/share/org/apache/struts/util/BeanUtils.java,v 1.25 
2001/01/28 04:51:13 craigmcc Exp $
  + * $Revision: 1.25 $
  + * $Date: 2001/01/28 04:51:13 $
    *
    * ====================================================================
    *
  @@ -83,7 +83,7 @@
    * @author Craig R. McClanahan
    * @author Ralph Schaer
    * @author Chris Audley
  - * @version $Revision: 1.24 $ $Date: 2001/01/10 01:54:21 $
  + * @version $Revision: 1.25 $ $Date: 2001/01/28 04:51:13 $
    */
   
   public final class BeanUtils {
  @@ -164,19 +164,26 @@
           if (value == null)
               return (null);
   
  -        StringBuffer result = new StringBuffer();
  -        for (int i = 0; i < value.length(); i++) {
  -            char ch = value.charAt(i);
  -            if (ch == '<')
  +        char content[] = new char[value.length()];
  +        value.getChars(0, value.length(), content, 0);
  +        StringBuffer result = new StringBuffer(content.length + 50);
  +        for (int i = 0; i < content.length; i++) {
  +            switch (content[i]) {
  +            case '<':
                   result.append("&lt;");
  -            else if (ch == '>')
  +                break;
  +            case '>':
                   result.append("&gt;");
  -            else if (ch == '&')
  +                break;
  +            case '&':
                   result.append("&amp;");
  -            else if (ch == '"')
  +                break;
  +            case '"':
                   result.append("&quot;");
  -            else
  -                result.append(ch);
  +                break;
  +            default:
  +                result.append(content[i]);
  +            }
           }
           return (result.toString());
   
  
  
  

Reply via email to