code: public synchronized IBigtableTableAdminClient getTableAdminClientWrapper() throws IOException {
      if (options.useGCJClient()) {
        if (adminGCJClient == null) {
          com.google.cloud.bigtable.admin.v2.BigtableTableAdminClient adminClientV2 =
              com.google.cloud.bigtable.admin.v2.BigtableTableAdminClient.create(adminSettings);
          BaseBigtableTableAdminClient baseAdminClientV2 =
              BaseBigtableTableAdminClient.create(baseAdminSettings);
          adminGCJClient = new BigtableTableAdminGCJClient(adminClientV2, baseAdminClientV2);
        }
        return adminGCJClient;
      }
      if (adminClientWrapper == null) {
        adminClientWrapper = new BigtableTableAdminClientWrapper(getTableAdminClient(), options);
      }
      return adminClientWrapper;
    }
docs: Initializes bigtableTableAdminClient based on flag to use GCJ adapter, available in
  {@link BigtableOptions}.
  
  @return a {@link BigtableTableAdminClientWrapper} object.
  @throws java.io.IOException if any.