code: public static SgClass create(final SgClassPool pool, final Class<?> clasz) {
          if (pool == null) {
              throw new IllegalArgumentException("The argument 'pool' cannot be null!");
          }
          if (clasz == null) {
              throw new IllegalArgumentException("The argument 'clasz' cannot be null!");
          }
  
          final SgClass cached = pool.get(clasz.getName());
          if (cached != null) {
              return cached;
          }
  
          try {
  
              final SgClass cl = createClass(pool, clasz);
              addInterfaces(pool, cl, clasz);
              addFields(pool, cl, clasz);
              addConstructors(pool, cl, clasz);
              addMethods(pool, cl, clasz);
              addInnerClasses(pool, cl, clasz);
              return cl;
  
          } catch (final RuntimeException ex) {
              System.out.println("ERROR CLASS: " + clasz);
              throw ex;
          }
  
      }
docs: Creates a model class by analyzing the "real" class.
  
  @param pool
  Pool to use.
  @param clasz
  Class to analyze.
  
  @return Class.