1 52 53 package com.go.trove.util; 54 import java.io.InputStream ; 55 import java.net.URL ; 56 57 68 public class DelegateClassLoader extends ClassLoader { 69 private ClassLoader [] mScouts; 70 71 76 public DelegateClassLoader(ClassLoader parent, ClassLoader [] scouts) { 77 super(parent); 78 mScouts = (ClassLoader [])scouts.clone(); 79 } 80 81 87 public DelegateClassLoader(ClassLoader [] scouts) { 88 super(); 89 mScouts = (ClassLoader [])scouts.clone(); 90 } 91 92 protected synchronized Class findClass(String name) 93 throws ClassNotFoundException 94 { 95 for (int i=0; i<mScouts.length; i++) { 96 try { 97 return mScouts[i].loadClass(name); 98 } 99 catch (ClassNotFoundException e) { 100 } 101 } 102 throw new ClassNotFoundException (name); 103 } 104 105 protected URL findResource(String name) { 106 URL resource = null; 107 108 try { 109 for (int i=0; i<mScouts.length; i++) { 110 resource = mScouts[i].getResource(name); 111 if (resource != null) { 112 return resource; 113 } 114 } 115 } 116 catch (Exception e) { 117 e.printStackTrace(); 118 } 119 return resource; 120 } 121 } 122 | Popular Tags |