costin      01/03/03 19:42:53

  Modified:    src/share/org/apache/tomcat/util/xml XmlMapper.java
  Log:
  Explicit import ( XmlMapper depends only on IntrospectionUtils ), remove
  duplicated code  ( the introspection code is also used in other
  places )
  
  Revision  Changes    Path
  1.31      +2 -103    
jakarta-tomcat/src/share/org/apache/tomcat/util/xml/XmlMapper.java
  
  Index: XmlMapper.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/util/xml/XmlMapper.java,v
  retrieving revision 1.30
  retrieving revision 1.31
  diff -u -r1.30 -r1.31
  --- XmlMapper.java    2001/02/09 07:51:34     1.30
  +++ XmlMapper.java    2001/03/04 03:42:53     1.31
  @@ -1,6 +1,6 @@
   package org.apache.tomcat.util.xml;
   
  -import org.apache.tomcat.util.*;
  +import org.apache.tomcat.util.IntrospectionUtils;
   import java.beans.*;
   import java.io.*;
   import java.io.IOException;
  @@ -692,110 +692,9 @@
            String name=attributes.getName(i);
            String value=attributes.getValue(i);
   
  -         setProperty( ctx, elem, name, value );
  +         IntrospectionUtils.setProperty( elem, name, value );
        }
  -
       }
  -
  -    /** Find a method with the right name
  -     If found, call the method ( if param is int or boolean we'll convert
  -     value to the right type before) - that means you can have setDebug(1).
  -    */
  -    static void setProperty( SaxContext ctx, Object o, String name,
  -                          String value ) {
  -     if( ctx.getDebug() > 1 ) ctx.log("setProperty(" +
  -                                      o.getClass() + " " +  name + "="  +
  -                                      value  +")" );
  -
  -     String setter= "set" +capitalize(name);
  -
  -     try {
  -         Method methods[]=o.getClass().getMethods();
  -         Method setPropertyMethod=null;
  -
  -         // First, the ideal case - a setFoo( String ) method
  -         for( int i=0; i< methods.length; i++ ) {
  -             Class paramT[]=methods[i].getParameterTypes();
  -             if( setter.equals( methods[i].getName() ) &&
  -                 paramT.length == 1 &&
  -                 "java.lang.String".equals( paramT[0].getName())) {
  -
  -                 methods[i].invoke( o, new Object[] { value } );
  -                 return;
  -             }
  -         }
  -
  -         // Try a setFoo ( int ) or ( boolean )
  -         for( int i=0; i< methods.length; i++ ) {
  -             boolean ok=true;
  -             if( setter.equals( methods[i].getName() ) &&
  -                 methods[i].getParameterTypes().length == 1) {
  -
  -                 // match - find the type and invoke it
  -                 Class paramType=methods[i].getParameterTypes()[0];
  -                 Object params[]=new Object[1];
  -                 if ("java.lang.Integer".equals( paramType.getName()) ||
  -                     "int".equals( paramType.getName())) {
  -                     try {
  -                         params[0]=new Integer(value);
  -                     } catch( NumberFormatException ex ) {ok=false;}
  -                 } else if ("java.lang.Boolean".
  -                            equals( paramType.getName()) ||
  -                     "boolean".equals( paramType.getName())) {
  -                     params[0]=new Boolean(value);
  -                 } else {
  -                     ctx.log("Unknown type " + paramType.getName() );
  -                 }
  -
  -                 if( ok ) {
  -                     methods[i].invoke( o, params );
  -                     return;
  -                 }
  -             }
  -
  -             // save "setProperty" for later
  -             if( "setProperty".equals( methods[i].getName())) {
  -                 setPropertyMethod=methods[i];
  -             }
  -         }
  -
  -         // Ok, no setXXX found, try a setProperty("name", "value")
  -         if( setPropertyMethod != null ) {
  -             Object params[]=new Object[2];
  -             params[0]=name;
  -             params[1]=value;
  -             setPropertyMethod.invoke( o, params );
  -         }
  -
  -     } catch( SecurityException ex1 ) {
  -         if( ctx.getDebug() > 0 )
  -             ctx.log("SecurityException for " + o.getClass() + " " +
  -                     name + "="  + value  +")" );
  -         if( ctx.getDebug() > 1 ) ex1.printStackTrace();
  -     } catch (IllegalAccessException iae) {
  -         if( ctx.getDebug() > 0 )
  -             ctx.log("IllegalAccessException for " +
  -                     o.getClass() + " " +  name + "="  + value  +")" );
  -         if( ctx.getDebug() > 1 ) iae.printStackTrace();
  -     } catch (InvocationTargetException ie) {
  -         if( ctx.getDebug() > 0 )
  -             ctx.log("InvocationTargetException for " + o.getClass() +
  -                     " " +  name + "="  + value  +")" );
  -         if( ctx.getDebug() > 1 ) ie.printStackTrace();
  -     }
  -    }
  -
  -    /** Reverse of Introspector.decapitalize
  -     */
  -    static String capitalize(String name) {
  -     if (name == null || name.length() == 0) {
  -         return name;
  -     }
  -     char chars[] = name.toCharArray();
  -     chars[0] = Character.toUpperCase(chars[0]);
  -     return new String(chars);
  -    }
  -
   }
   
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]

Reply via email to