code: public static SgClass create(final SgClassPool pool, final String className) {
          if (pool == null) {
              throw new IllegalArgumentException("The argument 'pool' cannot be null!");
          }
          if (className == null) {
              throw new IllegalArgumentException("The argument 'className' cannot be null!");
          }
          final SgClass cached = pool.get(className);
          if (cached != null) {
              return cached;
          }
          try {
              return create(pool, Class.forName(className));
          } catch (final ClassNotFoundException e) {
              throw new IllegalArgumentException("Cannot create '" + className + "'!", e);
          }
      }
docs: Creates a model class by loading the "real" class with
  <code>Class.forName(..)</code> and analyzing it. Throws an
  <code>IllegalArgumentException</code> if the class cannot be constructed
  with "forName".
  
  @param pool
  Pool to use.
  @param className
  Full qualified name.
  
  @return Class.