code: public static SimpleDoclet createSimpleDoclet(final String className) {
  
          final String effectiveClassName = className != null && !className.isEmpty()
                  ? className
                  : VisualizationDoclet.class.getName();
  
          final ClassLoader[] classLoaders = new ClassLoader[]{
                  Thread.currentThread().getContextClassLoader(),
                  DelegatingDoclet.class.getClassLoader()};
  
          SimpleDoclet toReturn = null;
  
          for (ClassLoader current : classLoaders) {
              try {
                  final Class<?> loadedClass = current.loadClass(effectiveClassName);
                  if (SimpleDoclet.class.isAssignableFrom(loadedClass)) {
                      toReturn = (SimpleDoclet) loadedClass.newInstance();
                  }
              } catch (Exception e) {
                  e.printStackTrace();
              }
          }
  
          // All Done.
          return toReturn == null ? new VisualizationDoclet() : toReturn;
      }
docs: Creates a SimpleDoclet instance by calling a no-argument constructor within the Class of the supplied ClassName.
  Falls back to {@link VisualizationDoclet}.
  
  @param className A fully qualified classname of a SimpleDoclet implementation.
  @return An instance of the supplied ClassName - or an {@link VisualizationDoclet} as a fallback.