protected synchronized Class loadClass(String name, boolean resolve)
     throws ClassNotFoundException {
   if (_excludedNames.contains(name)) {
     print("EXCLUDED: " + name);
     throw new ClassNotFoundException(name);
   }
   if (_cache.containsKey(name)) {
     print("CACHED: " + name);
     return (Class) _cache.get(name);
   }
   if (mustDelegate(name)) {
     print("NATIVE: " + name);
     return super.loadClass(name, resolve);
   }
   Class clazz = findRawClass(name);
   if (resolve) {
     resolveClass(clazz);
   }
   _cache.put(clazz.getName(), clazz);
   print("LOADED: " + name);
   return clazz;
 }
 public boolean moveNext() {
   if (_delegate != null) {
     if (_delegate.moveNext()) {
       return true;
     }
     _delegate = null;
   }
   _currentElement++;
   if (_currentElement >= _array.length) {
     return false;
   }
   Object obj = _array[_currentElement];
   Class clazz = obj.getClass();
   if (clazz.isArray()) {
     if (clazz.getComponentType().isArray()) {
       _delegate = new MultidimensionalArrayIterator(_reflectArray, (Object[]) obj);
     } else {
       _delegate = new ReflectArrayIterator(_reflectArray, obj);
     }
     return moveNext();
   }
   return true;
 }