code: public static AlgorithmParameterGenerator getInstance(String algorithm,
                                                            String provider)
          throws NoSuchAlgorithmException, NoSuchProviderException
      {
          if (provider == null || provider.length() == 0)
              throw new IllegalArgumentException("missing provider");
          Object[] objs = Security.getImpl(algorithm,
                                           "AlgorithmParameterGenerator",
                                           provider);
          return new AlgorithmParameterGenerator
              ((AlgorithmParameterGeneratorSpi)objs[0], (Provider)objs[1],
               algorithm);
      }
docs: Returns an AlgorithmParameterGenerator object for generating
  a set of parameters to be used with the specified algorithm.
  
  <p> A new AlgorithmParameterGenerator object encapsulating the
  AlgorithmParameterGeneratorSpi implementation from the specified provider
  is returned.  The specified provider must be registered
  in the security provider list.
  
  <p> Note that the list of registered providers may be retrieved via
  the {@link Security#getProviders() Security.getProviders()} method.
  
  @param algorithm the name of the algorithm this
  parameter generator is associated with.
  See the AlgorithmParameterGenerator section in the <a href=
  "{@docRoot}openjdk-redirect.html?v=8&path=/technotes/guides/security/StandardNames.html#AlgorithmParameterGenerator">
  Java Cryptography Architecture Standard Algorithm Name Documentation</a>
  for information about standard algorithm names.
  
  @param provider the string name of the Provider.
  
  @return the new AlgorithmParameterGenerator object.
  
  @exception NoSuchAlgorithmException if an AlgorithmParameterGeneratorSpi
  implementation for the specified algorithm is not
  available from the specified provider.
  
  @exception NoSuchProviderException if the specified provider is not
  registered in the security provider list.
  
  @exception IllegalArgumentException if the provider name is null
  or empty.
  
  @see Provider