src/java.base/share/classes/java/lang/ClassLoader.java

Print this page

        

*** 43,57 **** import java.util.HashMap; import java.util.HashSet; import java.util.Set; import java.util.Stack; import java.util.Map; import java.util.Vector; import java.util.Hashtable; import java.util.WeakHashMap; import java.util.concurrent.ConcurrentHashMap; - import sun.misc.CompoundEnumeration; import sun.misc.Resource; import sun.misc.URLClassPath; import sun.reflect.CallerSensitive; import sun.reflect.Reflection; import sun.reflect.misc.ReflectUtil; --- 43,57 ---- import java.util.HashMap; import java.util.HashSet; import java.util.Set; import java.util.Stack; import java.util.Map; + import java.util.NoSuchElementException; import java.util.Vector; import java.util.Hashtable; import java.util.WeakHashMap; import java.util.concurrent.ConcurrentHashMap; import sun.misc.Resource; import sun.misc.URLClassPath; import sun.reflect.CallerSensitive; import sun.reflect.Reflection; import sun.reflect.misc.ReflectUtil;
*** 2204,2208 **** --- 2204,2241 ---- new Object[] { parent }); Thread.currentThread().setContextClassLoader(sys); return sys; } } + + /* + * A utility class that will enumerate over an array of enumerations. + */ + final class CompoundEnumeration<E> implements Enumeration<E> { + private final Enumeration<E>[] enums; + private int index; + + public CompoundEnumeration(Enumeration<E>[] enums) { + this.enums = enums; + } + + private boolean next() { + while (index < enums.length) { + if (enums[index] != null && enums[index].hasMoreElements()) { + return true; + } + index++; + } + return false; + } + + public boolean hasMoreElements() { + return next(); + } + + public E nextElement() { + if (!next()) { + throw new NoSuchElementException(); + } + return enums[index].nextElement(); + } + }