Save This Page
Home » cglib-src-2.2 » net.sf.cglib.core » [javadoc | source]
    1   /*
    2    * Copyright 2003,2004 The Apache Software Foundation
    3    *
    4    *  Licensed under the Apache License, Version 2.0 (the "License");
    5    * you may not use this file except in compliance with the License.
    6    * You may obtain a copy of the License at
    7    *
    8    *      http://www.apache.org/licenses/LICENSE-2.0
    9    *
   10    *  Unless required by applicable law or agreed to in writing, software
   11    * distributed under the License is distributed on an "AS IS" BASIS,
   12    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   13    * See the License for the specific language governing permissions and
   14    * limitations under the License.
   15    */
   16   package net.sf.cglib.core;
   17   
   18   import java.lang.reflect.Method;
   19   import java.util;
   20   
   21   public class MethodWrapper {
   22       private static final MethodWrapperKey KEY_FACTORY =
   23         (MethodWrapperKey)KeyFactory.create(MethodWrapperKey.class);
   24   
   25       /** Internal interface, only public due to ClassLoader issues. */
   26       public interface MethodWrapperKey {
   27           public Object newInstance(String name, String[] parameterTypes, String returnType);
   28       }
   29       
   30       private MethodWrapper() {
   31       }
   32   
   33       public static Object create(Method method) {
   34           return KEY_FACTORY.newInstance(method.getName(),
   35                                          ReflectUtils.getNames(method.getParameterTypes()),
   36                                          method.getReturnType().getName());
   37       }
   38   
   39       public static Set createSet(Collection methods) {
   40           Set set = new HashSet();
   41           for (Iterator it = methods.iterator(); it.hasNext();) {
   42               set.add(create((Method)it.next()));
   43           }
   44           return set;
   45       }
   46   }

Save This Page
Home » cglib-src-2.2 » net.sf.cglib.core » [javadoc | source]