Home » displaytag-1.1.1-src » org » displaytag » util » [javadoc | source]

    1   /**
    2    * Licensed under the Artistic License; you may not use this file
    3    * except in compliance with the License.
    4    * You may obtain a copy of the License at
    5    *
    6    *      http://displaytag.sourceforge.net/license.html
    7    *
    8    * THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
    9    * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   10    * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   11    */
   12   package org.displaytag.util;
   13   
   14   /**
   15    * Utility method for reflection.
   16    * @author Fabrizio Giustina
   17    * @version $Revision: 1081 $ ($Author: fgiust $)
   18    */
   19   public final class ReflectHelper
   20   {
   21   
   22       /**
   23        * Don't instantiate.
   24        */
   25       private ReflectHelper()
   26       {
   27           // unused
   28       }
   29   
   30       /**
   31        * Tries to load a class with more classloaders. Can be useful in J2EE applications if jar is loaded from a
   32        * different classloader than user classes. If class is not found using the standard classloader, tries whit the
   33        * thread classloader.
   34        * @param className class name
   35        * @return Class loaded class
   36        * @throws ClassNotFoundException if none of the ClassLoaders is able to found the reuested class
   37        */
   38       public static Class classForName(String className) throws ClassNotFoundException
   39       {
   40           try
   41           {
   42               // trying with the default ClassLoader
   43               return Class.forName(className);
   44           }
   45           catch (ClassNotFoundException cnfe)
   46           {
   47               try
   48               {
   49                   // trying with thread ClassLoader
   50                   Thread thread = Thread.currentThread();
   51                   ClassLoader threadClassLoader = thread.getContextClassLoader();
   52                   return Class.forName(className, false, threadClassLoader);
   53               }
   54               catch (ClassNotFoundException cnfe2)
   55               {
   56                   throw cnfe2;
   57               }
   58           }
   59       }
   60   
   61   }

Home » displaytag-1.1.1-src » org » displaytag » util » [javadoc | source]