code: public static AuthleteApi create(AuthleteConfiguration configuration, String className)
      {
          if (configuration == null)
          {
              throw new IllegalArgumentException("configuration is null.");
          }
  
          if (className == null)
          {
              throw new IllegalArgumentException("className is null.");
          }
  
          Class<?> clazz;
  
          try
          {
              clazz = Class.forName(className);
          }
          catch (ClassNotFoundException e)
          {
              throw new IllegalArgumentException(className + " is not found.", e);
          }
  
          if (AuthleteApi.class.isAssignableFrom(clazz) == false)
          {
              throw new IllegalArgumentException(className + " does not implement AuthleteApi interface.");
          }
  
          Constructor<?> constructor;
  
          try
          {
              constructor = clazz.getConstructor(AuthleteConfiguration.class);
          }
          catch (Exception e)
          {
              throw new IllegalArgumentException(className + " does not have a constructor which takes one AuthleteConfiguration parameter.", e);
          }
  
          AuthleteApi api;
  
          try
          {
              api = (AuthleteApi)constructor.newInstance(configuration);
          }
          catch (Exception e)
          {
              throw new IllegalStateException("Failed to create an instance of " + className + ".", e);
          }
  
          return api;
      }
docs: Create an instance of {@link AuthleteApi} from the specified class.
  
  @param configuration
  Authlete configuration.
  
  @param className
  The name of a class that implements {@link AuthleteApi}
  interface. The class must have a constructor which takes
  one argument of type {@link AuthleteConfiguration}.
  
  @return
  An instance of the specified class.
  
  @throws IllegalArgumentException
  <ul>
  <li>{@code configuration} is {@code null}.
  <li>{@code className} is {@code null}.
  <li>The specified class is not found.
  <li>The specified class does not implement {@link AuthleteApi} interface.
  <li>The specified class does not have a constructor which takes one
  argument of type {@link AuthleteConfiguration}.
  </ul>
  
  @throws IllegalStateException
  The constructor of the specified class threw an exception.