code: public static Class getClass(final ClassLoader cl, final String className) throws ClassNotFoundException {
          if (LOADED_PLUGINS.get(cl) == null) {
              LOADED_PLUGINS.put(cl, new ClassesData());
          }
  
          ClassesData cd = LOADED_PLUGINS.get(cl);
          Class clazz = cd.getClass(className);
          if (clazz == null) {
              clazz = cl.loadClass(className);
              saveClass(cl, clazz);
          }
  
          return clazz;
      }
docs: Returns a class object. If the class is new, a new Class object is
  created, otherwise the cached object is returned.
  
  @param cl
  the classloader
  @param className
  the class name
  
  
  @return the class object associated to the given class name * @throws ClassNotFoundException
  if the class can't be loaded