commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From d...@apache.org
Subject cvs commit: jakarta-commons/beanutils/src/java/org/apache/commons/beanutils MappedPropertyDescriptor.java
Date Sun, 24 Mar 2002 09:59:30 GMT
dion        02/03/24 01:59:30

  Modified:    beanutils/src/java/org/apache/commons/beanutils
                        MappedPropertyDescriptor.java
  Log:
  Last of the blanks
  
  Revision  Changes    Path
  1.11      +7 -193    jakarta-commons/beanutils/src/java/org/apache/commons/beanutils/MappedPropertyDescriptor.java
  
  Index: MappedPropertyDescriptor.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/beanutils/src/java/org/apache/commons/beanutils/MappedPropertyDescriptor.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- MappedPropertyDescriptor.java	24 Mar 2002 09:53:52 -0000	1.10
  +++ MappedPropertyDescriptor.java	24 Mar 2002 09:59:30 -0000	1.11
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-commons/beanutils/src/java/org/apache/commons/beanutils/MappedPropertyDescriptor.java,v
1.10 2002/03/24 09:53:52 dion Exp $
  - * $Revision: 1.10 $
  - * $Date: 2002/03/24 09:53:52 $
  + * $Header: /home/cvs/jakarta-commons/beanutils/src/java/org/apache/commons/beanutils/MappedPropertyDescriptor.java,v
1.11 2002/03/24 09:59:30 dion Exp $
  + * $Revision: 1.11 $
  + * $Date: 2002/03/24 09:59:30 $
    *
    * ====================================================================
    *
  @@ -86,7 +86,7 @@
    *
    * @author Rey François
    * @author Gregor Raıman
  - * @version $Revision: 1.10 $ $Date: 2002/03/24 09:53:52 $
  + * @version $Revision: 1.11 $ $Date: 2002/03/24 09:59:30 $
    */
   
   
  @@ -354,361 +354,181 @@
           return new String(chars);
       }
   
  -
  -
  -
  -
       //======================================================================
  -
       // Package private support methods (copied from java.beans.Introspector).
  -
       //======================================================================
   
  -
  -
       // Cache of Class.getDeclaredMethods:
  -
  -    private static java.util.Hashtable
  -
  -            declaredMethodCache = new java.util.Hashtable();
  -
  -
  -
  -
  +    private static java.util.Hashtable 
  +        declaredMethodCache = new java.util.Hashtable();
   
       /*
  -
        * Internal method to return *public* methods within a class.
  -
        */
  -
       private static synchronized Method[] getPublicDeclaredMethods(Class clz) {
  -
  -
           // Looking up Class.getDeclaredMethods is relatively expensive,
  -
           // so we cache the results.
  -
           final Class fclz = clz;
  -
           Method[] result = (Method[]) declaredMethodCache.get(fclz);
  -
           if (result != null) {
  -
               return result;
  -
           }
   
  -
  -
           // We have to raise privilege for getDeclaredMethods
  -
           result = (Method[])
  -
                   AccessController.doPrivileged(new PrivilegedAction() {
  -
                       public Object run() {
  -
                           return fclz.getDeclaredMethods();
  -
                       }
  -
                   });
   
  -
  -
           // Null out any non-public methods.
  -
           for (int i = 0; i < result.length; i++) {
  -
               Method method = result[i];
  -
               int mods = method.getModifiers();
  -
               if (!Modifier.isPublic(mods)) {
  -
                   result[i] = null;
  -
               }
  -
           }
   
  -
  -
           // Add it to the cache.
  -
           declaredMethodCache.put(clz, result);
  -
           return result;
  -
  -
       }
   
  -
       /**
  -
        * Internal support for finding a target methodName on a given class.
  -
        */
  -
       private static Method internalFindMethod(Class start, String methodName,
  -
                                                int argCount) {
  -
  -
           // For overridden methods we need to find the most derived version.
  -
           // So we start with the given class and walk up the superclass chain.
  -
           for (Class cl = start; cl != null; cl = cl.getSuperclass()) {
  -
               Method methods[] = getPublicDeclaredMethods(cl);
  -
               for (int i = 0; i < methods.length; i++) {
  -
                   Method method = methods[i];
  -
                   if (method == null) {
  -
                       continue;
  -
                   }
  -
                   // skip static methods.
  -
                   int mods = method.getModifiers();
  -
                   if (Modifier.isStatic(mods)) {
  -
                       continue;
  -
                   }
  -
                   if (method.getName().equals(methodName) &&
  -
                           method.getParameterTypes().length == argCount) {
  -
                       return method;
  -
                   }
  -
               }
  -
           }
   
  -
  -
           // Now check any inherited interfaces.  This is necessary both when
  -
           // the argument class is itself an interface, and when the argument
  -
           // class is an abstract class.
  -
           Class ifcs[] = start.getInterfaces();
  -
           for (int i = 0; i < ifcs.length; i++) {
  -
               Method m = internalFindMethod(ifcs[i], methodName, argCount);
  -
               if (m != null) {
  -
                   return m;
  -
               }
  -
           }
   
  -
           return null;
  -
  -
       }
   
  -
       /**
  -
        * Internal support for finding a target methodName with a given
  -
        * parameter list on a given class.
  -
        */
  -
       private static Method internalFindMethod(Class start, String methodName,
  -
                                                int argCount, Class args[]) {
  -
  -
           // For overriden methods we need to find the most derived version.
  -
           // So we start with the given class and walk up the superclass chain.
  -
           for (Class cl = start; cl != null; cl = cl.getSuperclass()) {
  -
               Method methods[] = getPublicDeclaredMethods(cl);
  -
               for (int i = 0; i < methods.length; i++) {
  -
                   Method method = methods[i];
  -
                   if (method == null) {
  -
                       continue;
  -
                   }
  -
                   // skip static methods.
  -
                   int mods = method.getModifiers();
  -
                   if (Modifier.isStatic(mods)) {
  -
                       continue;
  -
                   }
  -
                   // make sure method signature matches.
  -
                   Class params[] = method.getParameterTypes();
  -
                   if (method.getName().equals(methodName) &&
  -
                           params.length == argCount) {
  -
                       boolean different = false;
  -
                       if (argCount > 0) {
  -
                           for (int j = 0; j < argCount; j++) {
  -
                               if (params[j] != args[j]) {
  -
                                   different = true;
  -
                                   continue;
  -
                               }
  -
                           }
  -
                           if (different) {
  -
                               continue;
  -
                           }
  -
                       }
  -
                       return method;
  -
                   }
  -
               }
  -
           }
   
  -
  -
           // Now check any inherited interfaces.  This is necessary both when
  -
           // the argument class is itself an interface, and when the argument
  -
           // class is an abstract class.
  -
           Class ifcs[] = start.getInterfaces();
  -
           for (int i = 0; i < ifcs.length; i++) {
  -
               Method m = internalFindMethod(ifcs[i], methodName, argCount);
  -
               if (m != null) {
  -
                   return m;
  -
               }
  -
           }
  -
  -
  +        
           return null;
  -
  -
       }
   
  -
       /**
  -
        * Find a target methodName on a given class.
  -
        */
  -
       static Method findMethod(Class cls, String methodName, int argCount)
  -
               throws IntrospectionException {
  -
  -
           if (methodName == null) {
  -
               return null;
  -
           }
   
  -
           Method m = internalFindMethod(cls, methodName, argCount);
  -
           if (m != null) {
  -
               return m;
  -
           }
   
  -
  -
           // We failed to find a suitable method
  -
           throw new IntrospectionException("No method \"" + methodName +
  -
                   "\" with " + argCount + " arg(s)");
  -
       }
   
  -
       /**
  -
        * Find a target methodName with specific parameter list on a given class.
  -
        */
  -
       static Method findMethod(Class cls, String methodName, int argCount,
  -
                                Class args[]) throws IntrospectionException {
  -
  -
           if (methodName == null) {
  -
               return null;
  -
           }
   
  -
           Method m = internalFindMethod(cls, methodName, argCount, args);
  -
           if (m != null) {
  -
               return m;
  -
           }
   
  -
  -
           // We failed to find a suitable method
  -
           throw new IntrospectionException("No method \"" + methodName +
  -
                   "\" with " + argCount + " arg(s) of matching types.");
  -
       }
   
  -
       /**
        * Return true if class a is either equivalent to class b, or
        * if class a is a subclass of class b, ie if a either "extends"
  @@ -716,12 +536,9 @@
        * Note tht either or both "Class" objects may represent interfaces.
        */
       static boolean isSubclass(Class a, Class b) {
  -
  -
           // We rely on the fact that for any given java class or
           // primtitive type there is a unqiue Class object, so
           // we can use object equivalence in the comparisons.
  -
           if (a == b) {
               return true;
           }
  @@ -764,7 +581,4 @@
   
           return false;
       }
  -
  -
   }
  -
  
  
  

--
To unsubscribe, e-mail:   <mailto:commons-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:commons-dev-help@jakarta.apache.org>


Mime
View raw message