class AbstractManagedChannelImplBuilder extends ManagedChannelBuilder<T> {

  @Override
  public final T nameResolverFactory(NameResolver.Factory resolverFactory) {
    Preconditions.checkState(directServerAddress == null,
        "directServerAddress is set (%s), which forbids the use of NameResolverFactory",
        directServerAddress);
    if (resolverFactory != null) {
      this.nameResolverFactory = resolverFactory;
    } else {
      this.nameResolverFactory = DEFAULT_NAME_RESOLVER_FACTORY;
    }
    return thisT();
  }

  protected  AbstractManagedChannelImplBuilder(String target);
  protected  AbstractManagedChannelImplBuilder(SocketAddress directServerAddress, String authority);

}