Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * JBoss, Home of Professional Open Source.
   * Copyright 2013, Red Hat Middleware LLC, and individual contributors
   * as indicated by the @author tags. See the copyright.txt file in the
   * distribution for a full listing of individual contributors.
   *
   * This is free software; you can redistribute it and/or modify it
   * under the terms of the GNU Lesser General Public License as
   * published by the Free Software Foundation; either version 2.1 of
  * the License, or (at your option) any later version.
  *
  * This software is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
  * License along with this software; if not, write to the Free
  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  */
 package org.jboss.ws.common.utils;
 
 import java.net.URL;
A delegate classloader

Author(s):
alessio.soldano@jboss.com
 
 public class DelegateClassLoader extends SecureClassLoader
 {
    private final ClassLoader delegate;
 
    private final ClassLoader parent;
 
    public DelegateClassLoader(final ClassLoader delegatefinal ClassLoader parent)
    {
       super(parent);
       this. = delegate;
       this. = parent;
    }

   
 
    @Override
    public Class<?> loadClass(final String classNamethrows ClassNotFoundException
    {
       if ( != null)
       {
          try
          {
             return .loadClass(className);
          }
          catch (ClassNotFoundException cnfe)
          {
             //NOOP, use delegate
          }
       }
       return .loadClass(className);
    }

   
 
    @Override
    public URL getResource(final String name)
    {
       URL url = null;
       if ( != null)
       {
          url = .getResource(name);
       }
       return (url == null) ? .getResource(name) : url;
    }

   
 
    @Override
    public Enumeration<URLgetResources(final String namethrows IOException
    {
       final ArrayList<Enumeration<URL>> foundResources = new ArrayList<Enumeration<URL>>();
 
       foundResources.add(.getResources(name));
       if ( != null)
       {
          foundResources.add(.getResources(name));
       }
 
       return new Enumeration<URL>()
       {
          private int position = foundResources.size() - 1;
 
          public boolean hasMoreElements()
          {
             while ( >= 0)
            {
               if (foundResources.get().hasMoreElements())
               {
                  return true;
               }
               --;
            }
            return false;
         }
         public URL nextElement()
         {
            while ( >= 0)
            {
               try
               {
                  return (foundResources.get()).nextElement();
               }
               catch (NoSuchElementException e)
               {
               }
               --;
            }
            throw new NoSuchElementException();
         }
      };
   }

   
   public InputStream getResourceAsStream(final String name)
   {
      InputStream is = .getResourceAsStream(name);
      return (is == null) ? .getResourceAsStream(name) : is;
   }
New to GrepCode? Check out our FAQ X