1 3 package jxxload_help; 4 5 import org.python.core.PyJavaClass; 6 7 public class DiscardHelp extends Object { 8 9 private DiscardHelp() { 10 } 11 12 private static boolean check(Class c,ClassLoader loader,java.util.Vector interfaces) { 13 try { 14 Class s = c; 15 do { 16 if (s.getClassLoader() == loader) return true; 17 s = s.getSuperclass(); 18 } while (s != null); 19 20 for(java.util.Enumeration enumm=interfaces.elements(); enumm.hasMoreElements();) { 21 Class intf = (Class )enumm.nextElement(); 22 if (intf.isAssignableFrom(c)) return true; 23 } 24 25 } catch(SecurityException e) { 26 } 27 return false; 28 } 29 30 public static void discard(ClassLoader loader,java.util.Vector interfaces) { 32 33 org.python.core.InternalTables tbl = PyJavaClass.getInternalTables(); 34 35 tbl._beginCanonical(); 36 37 PyJavaClass jc; 38 while ((jc = (PyJavaClass)tbl._next()) != null ) { 39 Class c = (Class )jc.__tojava__(Class .class); 40 if(check(c,loader,interfaces)) tbl._flushCurrent(); 41 } 42 43 tbl._beginOverAdapterClasses(); 44 45 Class c; 46 47 while ((c = (Class )tbl._next()) != null) { 48 if(interfaces.contains(c)) tbl._flushCurrent(); 49 } 50 51 tbl._beginOverAdapters(); 52 53 while ((c = (Class )tbl._next()) != null) { 54 if(interfaces.contains(c)) tbl._flushCurrent(); 55 } 56 57 } 58 59 } 60
| Popular Tags
|