code: public static final TrustManagerFactory getInstance(String algorithm)
              throws NoSuchAlgorithmException {
          GetInstance.Instance instance = GetInstance.getInstance
                  ("TrustManagerFactory", TrustManagerFactorySpi.class,
                  algorithm);
          return new TrustManagerFactory((TrustManagerFactorySpi)instance.impl,
                  instance.provider, algorithm);
      }
docs: Returns a <code>TrustManagerFactory</code> object that acts as a
  factory for trust managers.
  
  <p> This method traverses the list of registered security Providers,
  starting with the most preferred Provider.
  A new TrustManagerFactory object encapsulating the
  TrustManagerFactorySpi implementation from the first
  Provider that supports the specified algorithm is returned.
  
  <p> Note that the list of registered providers may be retrieved via
  the {@link Security#getProviders() Security.getProviders()} method.
  
  @param algorithm the standard name of the requested trust management
  algorithm.  See the <a href=
  "{@docRoot}openjdk-redirect.html?v=8&path=/technotes/guides/security/jsse/JSSERefGuide.html">
  Java Secure Socket Extension Reference Guide </a>
  for information about standard algorithm names.
  
  @return the new <code>TrustManagerFactory</code> object.
  
  @exception NoSuchAlgorithmException if no Provider supports a
  TrustManagerFactorySpi implementation for the
  specified algorithm.
  @exception NullPointerException if algorithm is null.
  
  @see java.security.Provider