test_class.declarator: storageResource =
        new NotInheritableExternalResource(GoogleCloudStorageFileSystemTest.class) {
          @Override
          public void before() throws IOException {
            // Disable logging.
            // Normally you would need to keep a strong reference to any logger used for
            // configuration, but the "root" logger is always present.
            Logger.getLogger("").setLevel(Level.OFF);
  
            if (gcsfs == null) {
              gcsfs =
                  new GoogleCloudStorageFileSystem(
                      new InMemoryGoogleCloudStorage(),
                      GoogleCloudStorageFileSystemOptions.builder()
                          .setMarkerFilePattern("_(FAILURE|SUCCESS)")
                          .build());
              gcs = gcsfs.getGcs();
              GoogleCloudStorageFileSystemIntegrationTest.postCreateInit();
            }
          }
  
          @Override
          public void after() {
            GoogleCloudStorageFileSystemIntegrationTest.storageResource.after();
          }
        }
test_class.modifier: @ClassRule
    public static
test_class.original_string: @ClassRule
    public static NotInheritableExternalResource storageResource =
        new NotInheritableExternalResource(GoogleCloudStorageFileSystemTest.class) {
          @Override
          public void before() throws IOException {
            // Disable logging.
            // Normally you would need to keep a strong reference to any logger used for
            // configuration, but the "root" logger is always present.
            Logger.getLogger("").setLevel(Level.OFF);
  
            if (gcsfs == null) {
              gcsfs =
                  new GoogleCloudStorageFileSystem(
                      new InMemoryGoogleCloudStorage(),
                      GoogleCloudStorageFileSystemOptions.builder()
                          .setMarkerFilePattern("_(FAILURE|SUCCESS)")
                          .build());
              gcs = gcsfs.getGcs();
              GoogleCloudStorageFileSystemIntegrationTest.postCreateInit();
            }
          }
  
          @Override
          public void after() {
            GoogleCloudStorageFileSystemIntegrationTest.storageResource.after();
          }
        };
test_class.type: NotInheritableExternalResource
test_class.var_name: storageResource
test_class.file: gcsio/src/test/java/com/google/cloud/hadoop/gcsio/GoogleCloudStorageFileSystemTest.java
test_class.identifier: GoogleCloudStorageFileSystemTest
test_class.superclass: extends GoogleCloudStorageFileSystemIntegrationTest
test_case.body: @Test
    public void testFileInfo()
        throws IOException {
      assertThat(gcsfs.getFileInfo(GoogleCloudStorageFileSystem.GCS_ROOT).getPath())
          .isEqualTo(GoogleCloudStorageFileSystem.GCS_ROOT);
      assertThat(gcsfs.getFileInfo(GoogleCloudStorageFileSystem.GCS_ROOT).getItemInfo())
          .isEqualTo(GoogleCloudStorageItemInfo.ROOT_INFO);
    }
test_case.class_method_signature: GoogleCloudStorageFileSystemTest.testFileInfo()
test_case.full_signature: @Test public void testFileInfo()
test_case.identifier: testFileInfo
test_case.invocations: isEqualTo assertThat getPath getFileInfo isEqualTo assertThat getItemInfo getFileInfo
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testFileInfo()
focal_class.declarator: logger = GoogleLogger.forEnclosingClass()
focal_class.modifier: private static final
focal_class.original_string: private static final GoogleLogger logger = GoogleLogger.forEnclosingClass();
focal_class.type: GoogleLogger
focal_class.var_name: logger
focal_class.declarator: DAEMON_THREAD_FACTORY =
        new ThreadFactoryBuilder().setNameFormat("gcsfs-thread-%d").setDaemon(true).build()
focal_class.modifier: private static final
focal_class.original_string: private static final ThreadFactory DAEMON_THREAD_FACTORY =
        new ThreadFactoryBuilder().setNameFormat("gcsfs-thread-%d").setDaemon(true).build();
focal_class.type: ThreadFactory
focal_class.var_name: DAEMON_THREAD_FACTORY
focal_class.declarator: SCHEME = "gs"
focal_class.modifier: public static final
focal_class.original_string: public static final String SCHEME = "gs";
focal_class.type: String
focal_class.var_name: SCHEME
focal_class.declarator: GCS_ROOT = URI.create(SCHEME + ":/")
focal_class.modifier: public static final
focal_class.original_string: public static final URI GCS_ROOT = URI.create(SCHEME + ":/");
focal_class.type: URI
focal_class.var_name: GCS_ROOT
focal_class.declarator: LIST_SINGLE_OBJECT_OPTIONS =
        ListObjectOptions.DEFAULT.toBuilder().setMaxResults(1).build()
focal_class.modifier: public static final
focal_class.original_string: public static final ListObjectOptions LIST_SINGLE_OBJECT_OPTIONS =
        ListObjectOptions.DEFAULT.toBuilder().setMaxResults(1).build();
focal_class.type: ListObjectOptions
focal_class.var_name: LIST_SINGLE_OBJECT_OPTIONS
focal_class.declarator: gcs
focal_class.modifier: private
focal_class.original_string: private GoogleCloudStorage gcs;
focal_class.type: GoogleCloudStorage
focal_class.var_name: gcs
focal_class.declarator: options
focal_class.modifier: private final
focal_class.original_string: private final GoogleCloudStorageFileSystemOptions options;
focal_class.type: GoogleCloudStorageFileSystemOptions
focal_class.var_name: options
focal_class.declarator: cachedExecutor = createCachedExecutor()
focal_class.modifier: private
focal_class.original_string: private ExecutorService cachedExecutor = createCachedExecutor();
focal_class.type: ExecutorService
focal_class.var_name: cachedExecutor
focal_class.declarator: PATH_COMPARATOR =
        comparing(
            URI::toString,
            (as, bs) ->
                (as.length() == bs.length())
                    ? as.compareTo(bs)
                    : Integer.compare(as.length(), bs.length()))
focal_class.modifier: @VisibleForTesting
    static final
focal_class.original_string: @VisibleForTesting
    static final Comparator<URI> PATH_COMPARATOR =
        comparing(
            URI::toString,
            (as, bs) ->
                (as.length() == bs.length())
                    ? as.compareTo(bs)
                    : Integer.compare(as.length(), bs.length()));
focal_class.type: Comparator<URI>
focal_class.var_name: PATH_COMPARATOR
focal_class.declarator: FILE_INFO_PATH_COMPARATOR =
        comparing(FileInfo::getPath, PATH_COMPARATOR)
focal_class.modifier: @VisibleForTesting
    static final
focal_class.original_string: @VisibleForTesting
    static final Comparator<FileInfo> FILE_INFO_PATH_COMPARATOR =
        comparing(FileInfo::getPath, PATH_COMPARATOR);
focal_class.type: Comparator<FileInfo>
focal_class.var_name: FILE_INFO_PATH_COMPARATOR
focal_class.file: gcsio/src/main/java/com/google/cloud/hadoop/gcsio/GoogleCloudStorageFileSystem.java
focal_class.identifier: GoogleCloudStorageFileSystem
focal_class.class_method_signature: GoogleCloudStorageFileSystem.GoogleCloudStorageFileSystem(
        Credential credential, GoogleCloudStorageFileSystemOptions options)
focal_class.full_signature: public  GoogleCloudStorageFileSystem(
        Credential credential, GoogleCloudStorageFileSystemOptions options)
focal_class.identifier: GoogleCloudStorageFileSystem
focal_class.modifiers: public
focal_class.parameters: (
        Credential credential, GoogleCloudStorageFileSystemOptions options)
focal_class.signature:  GoogleCloudStorageFileSystem(
        Credential credential, GoogleCloudStorageFileSystemOptions options)
focal_class.class_method_signature: GoogleCloudStorageFileSystem.GoogleCloudStorageFileSystem(GoogleCloudStorage gcs)
focal_class.full_signature: @VisibleForTesting public  GoogleCloudStorageFileSystem(GoogleCloudStorage gcs)
focal_class.identifier: GoogleCloudStorageFileSystem
focal_class.modifiers: @VisibleForTesting public
focal_class.parameters: (GoogleCloudStorage gcs)
focal_class.signature:  GoogleCloudStorageFileSystem(GoogleCloudStorage gcs)
focal_class.class_method_signature: GoogleCloudStorageFileSystem.GoogleCloudStorageFileSystem(
        GoogleCloudStorage gcs, GoogleCloudStorageFileSystemOptions options)
focal_class.full_signature: @VisibleForTesting public  GoogleCloudStorageFileSystem(
        GoogleCloudStorage gcs, GoogleCloudStorageFileSystemOptions options)
focal_class.identifier: GoogleCloudStorageFileSystem
focal_class.modifiers: @VisibleForTesting public
focal_class.parameters: (
        GoogleCloudStorage gcs, GoogleCloudStorageFileSystemOptions options)
focal_class.signature:  GoogleCloudStorageFileSystem(
        GoogleCloudStorage gcs, GoogleCloudStorageFileSystemOptions options)
focal_class.class_method_signature: GoogleCloudStorageFileSystem.createCachedExecutor()
focal_class.full_signature: private static ExecutorService createCachedExecutor()
focal_class.identifier: createCachedExecutor
focal_class.modifiers: private static
focal_class.parameters: ()
focal_class.return: ExecutorService
focal_class.signature: ExecutorService createCachedExecutor()
focal_class.class_method_signature: GoogleCloudStorageFileSystem.getOptions()
focal_class.full_signature: public GoogleCloudStorageFileSystemOptions getOptions()
focal_class.identifier: getOptions
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: GoogleCloudStorageFileSystemOptions
focal_class.signature: GoogleCloudStorageFileSystemOptions getOptions()
focal_class.class_method_signature: GoogleCloudStorageFileSystem.objectOptionsFromFileOptions(CreateFileOptions options)
focal_class.full_signature: public static CreateObjectOptions objectOptionsFromFileOptions(CreateFileOptions options)
focal_class.identifier: objectOptionsFromFileOptions
focal_class.modifiers: public static
focal_class.parameters: (CreateFileOptions options)
focal_class.return: CreateObjectOptions
focal_class.signature: CreateObjectOptions objectOptionsFromFileOptions(CreateFileOptions options)
focal_class.class_method_signature: GoogleCloudStorageFileSystem.create(URI path)
focal_class.full_signature: public WritableByteChannel create(URI path)
focal_class.identifier: create
focal_class.modifiers: public
focal_class.parameters: (URI path)
focal_class.return: WritableByteChannel
focal_class.signature: WritableByteChannel create(URI path)
focal_class.class_method_signature: GoogleCloudStorageFileSystem.create(URI path, CreateFileOptions options)
focal_class.full_signature: public WritableByteChannel create(URI path, CreateFileOptions options)
focal_class.identifier: create
focal_class.modifiers: public
focal_class.parameters: (URI path, CreateFileOptions options)
focal_class.return: WritableByteChannel
focal_class.signature: WritableByteChannel create(URI path, CreateFileOptions options)
focal_class.class_method_signature: GoogleCloudStorageFileSystem.open(URI path)
focal_class.full_signature: public SeekableByteChannel open(URI path)
focal_class.identifier: open
focal_class.modifiers: public
focal_class.parameters: (URI path)
focal_class.return: SeekableByteChannel
focal_class.signature: SeekableByteChannel open(URI path)
focal_class.class_method_signature: GoogleCloudStorageFileSystem.open(URI path, GoogleCloudStorageReadOptions readOptions)
focal_class.full_signature: public SeekableByteChannel open(URI path, GoogleCloudStorageReadOptions readOptions)
focal_class.identifier: open
focal_class.modifiers: public
focal_class.parameters: (URI path, GoogleCloudStorageReadOptions readOptions)
focal_class.return: SeekableByteChannel
focal_class.signature: SeekableByteChannel open(URI path, GoogleCloudStorageReadOptions readOptions)
focal_class.class_method_signature: GoogleCloudStorageFileSystem.delete(URI path, boolean recursive)
focal_class.full_signature: public void delete(URI path, boolean recursive)
focal_class.identifier: delete
focal_class.modifiers: public
focal_class.parameters: (URI path, boolean recursive)
focal_class.return: void
focal_class.signature: void delete(URI path, boolean recursive)
focal_class.class_method_signature: GoogleCloudStorageFileSystem.deleteInternal(List<FileInfo> itemsToDelete, List<FileInfo> bucketsToDelete)
focal_class.full_signature: private void deleteInternal(List<FileInfo> itemsToDelete, List<FileInfo> bucketsToDelete)
focal_class.identifier: deleteInternal
focal_class.modifiers: private
focal_class.parameters: (List<FileInfo> itemsToDelete, List<FileInfo> bucketsToDelete)
focal_class.return: void
focal_class.signature: void deleteInternal(List<FileInfo> itemsToDelete, List<FileInfo> bucketsToDelete)
focal_class.class_method_signature: GoogleCloudStorageFileSystem.exists(URI path)
focal_class.full_signature: public boolean exists(URI path)
focal_class.identifier: exists
focal_class.modifiers: public
focal_class.parameters: (URI path)
focal_class.return: boolean
focal_class.signature: boolean exists(URI path)
focal_class.class_method_signature: GoogleCloudStorageFileSystem.mkdirs(URI path)
focal_class.full_signature: public void mkdirs(URI path)
focal_class.identifier: mkdirs
focal_class.modifiers: public
focal_class.parameters: (URI path)
focal_class.return: void
focal_class.signature: void mkdirs(URI path)
focal_class.class_method_signature: GoogleCloudStorageFileSystem.mkdirsInternal(StorageResourceId resourceId)
focal_class.full_signature: public void mkdirsInternal(StorageResourceId resourceId)
focal_class.identifier: mkdirsInternal
focal_class.modifiers: public
focal_class.parameters: (StorageResourceId resourceId)
focal_class.return: void
focal_class.signature: void mkdirsInternal(StorageResourceId resourceId)
focal_class.class_method_signature: GoogleCloudStorageFileSystem.rename(URI src, URI dst)
focal_class.full_signature: public void rename(URI src, URI dst)
focal_class.identifier: rename
focal_class.modifiers: public
focal_class.parameters: (URI src, URI dst)
focal_class.return: void
focal_class.signature: void rename(URI src, URI dst)
focal_class.class_method_signature: GoogleCloudStorageFileSystem.getDstUri(FileInfo srcInfo, FileInfo dstInfo, @Nullable FileInfo dstParentInfo)
focal_class.full_signature: private URI getDstUri(FileInfo srcInfo, FileInfo dstInfo, @Nullable FileInfo dstParentInfo)
focal_class.identifier: getDstUri
focal_class.modifiers: private
focal_class.parameters: (FileInfo srcInfo, FileInfo dstInfo, @Nullable FileInfo dstParentInfo)
focal_class.return: URI
focal_class.signature: URI getDstUri(FileInfo srcInfo, FileInfo dstInfo, @Nullable FileInfo dstParentInfo)
focal_class.class_method_signature: GoogleCloudStorageFileSystem.compose(List<URI> sources, URI destination, String contentType)
focal_class.full_signature: public void compose(List<URI> sources, URI destination, String contentType)
focal_class.identifier: compose
focal_class.modifiers: public
focal_class.parameters: (List<URI> sources, URI destination, String contentType)
focal_class.return: void
focal_class.signature: void compose(List<URI> sources, URI destination, String contentType)
focal_class.class_method_signature: GoogleCloudStorageFileSystem.renameDirectoryInternal(
        FileInfo srcInfo, URI dst, Optional<CoopLockOperationRename> coopLockOp)
focal_class.full_signature: private void renameDirectoryInternal(
        FileInfo srcInfo, URI dst, Optional<CoopLockOperationRename> coopLockOp)
focal_class.identifier: renameDirectoryInternal
focal_class.modifiers: private
focal_class.parameters: (
        FileInfo srcInfo, URI dst, Optional<CoopLockOperationRename> coopLockOp)
focal_class.return: void
focal_class.signature: void renameDirectoryInternal(
        FileInfo srcInfo, URI dst, Optional<CoopLockOperationRename> coopLockOp)
focal_class.class_method_signature: GoogleCloudStorageFileSystem.copyInternal(Map<FileInfo, URI> srcToDstItemNames)
focal_class.full_signature: private void copyInternal(Map<FileInfo, URI> srcToDstItemNames)
focal_class.identifier: copyInternal
focal_class.modifiers: private
focal_class.parameters: (Map<FileInfo, URI> srcToDstItemNames)
focal_class.return: void
focal_class.signature: void copyInternal(Map<FileInfo, URI> srcToDstItemNames)
focal_class.class_method_signature: GoogleCloudStorageFileSystem.listFileNames(FileInfo fileInfo)
focal_class.full_signature: public List<URI> listFileNames(FileInfo fileInfo)
focal_class.identifier: listFileNames
focal_class.modifiers: public
focal_class.parameters: (FileInfo fileInfo)
focal_class.return: List<URI>
focal_class.signature: List<URI> listFileNames(FileInfo fileInfo)
focal_class.class_method_signature: GoogleCloudStorageFileSystem.listFileNames(FileInfo fileInfo, boolean recursive)
focal_class.full_signature: public List<URI> listFileNames(FileInfo fileInfo, boolean recursive)
focal_class.identifier: listFileNames
focal_class.modifiers: public
focal_class.parameters: (FileInfo fileInfo, boolean recursive)
focal_class.return: List<URI>
focal_class.signature: List<URI> listFileNames(FileInfo fileInfo, boolean recursive)
focal_class.class_method_signature: GoogleCloudStorageFileSystem.repairImplicitDirectory(Future<GoogleCloudStorageItemInfo> infoFuture)
focal_class.full_signature: private void repairImplicitDirectory(Future<GoogleCloudStorageItemInfo> infoFuture)
focal_class.identifier: repairImplicitDirectory
focal_class.modifiers: private
focal_class.parameters: (Future<GoogleCloudStorageItemInfo> infoFuture)
focal_class.return: void
focal_class.signature: void repairImplicitDirectory(Future<GoogleCloudStorageItemInfo> infoFuture)
focal_class.class_method_signature: GoogleCloudStorageFileSystem.getFromFuture(Future<T> future)
focal_class.full_signature: private static T getFromFuture(Future<T> future)
focal_class.identifier: getFromFuture
focal_class.modifiers: private static
focal_class.parameters: (Future<T> future)
focal_class.return: T
focal_class.signature: T getFromFuture(Future<T> future)
focal_class.class_method_signature: GoogleCloudStorageFileSystem.listAllFileInfoForPrefix(URI prefix)
focal_class.full_signature: public List<FileInfo> listAllFileInfoForPrefix(URI prefix)
focal_class.identifier: listAllFileInfoForPrefix
focal_class.modifiers: public
focal_class.parameters: (URI prefix)
focal_class.return: List<FileInfo>
focal_class.signature: List<FileInfo> listAllFileInfoForPrefix(URI prefix)
focal_class.class_method_signature: GoogleCloudStorageFileSystem.listAllFileInfoForPrefixPage(URI prefix, String pageToken)
focal_class.full_signature: public ListPage<FileInfo> listAllFileInfoForPrefixPage(URI prefix, String pageToken)
focal_class.identifier: listAllFileInfoForPrefixPage
focal_class.modifiers: public
focal_class.parameters: (URI prefix, String pageToken)
focal_class.return: ListPage<FileInfo>
focal_class.signature: ListPage<FileInfo> listAllFileInfoForPrefixPage(URI prefix, String pageToken)
focal_class.class_method_signature: GoogleCloudStorageFileSystem.getPrefixId(URI prefix)
focal_class.full_signature: private StorageResourceId getPrefixId(URI prefix)
focal_class.identifier: getPrefixId
focal_class.modifiers: private
focal_class.parameters: (URI prefix)
focal_class.return: StorageResourceId
focal_class.signature: StorageResourceId getPrefixId(URI prefix)
focal_class.class_method_signature: GoogleCloudStorageFileSystem.listFileInfo(URI path)
focal_class.full_signature: public List<FileInfo> listFileInfo(URI path)
focal_class.identifier: listFileInfo
focal_class.modifiers: public
focal_class.parameters: (URI path)
focal_class.return: List<FileInfo>
focal_class.signature: List<FileInfo> listFileInfo(URI path)
focal_class.class_method_signature: GoogleCloudStorageFileSystem.getFileInfo(URI path)
focal_class.full_signature: public FileInfo getFileInfo(URI path)
focal_class.identifier: getFileInfo
focal_class.modifiers: public
focal_class.parameters: (URI path)
focal_class.return: FileInfo
focal_class.signature: FileInfo getFileInfo(URI path)
focal_class.class_method_signature: GoogleCloudStorageFileSystem.getFileInfoInternal(
        StorageResourceId resourceId, boolean inferImplicitDirectories)
focal_class.full_signature: private GoogleCloudStorageItemInfo getFileInfoInternal(
        StorageResourceId resourceId, boolean inferImplicitDirectories)
focal_class.identifier: getFileInfoInternal
focal_class.modifiers: private
focal_class.parameters: (
        StorageResourceId resourceId, boolean inferImplicitDirectories)
focal_class.return: GoogleCloudStorageItemInfo
focal_class.signature: GoogleCloudStorageItemInfo getFileInfoInternal(
        StorageResourceId resourceId, boolean inferImplicitDirectories)
focal_class.class_method_signature: GoogleCloudStorageFileSystem.getFileInfos(List<URI> paths)
focal_class.full_signature: public List<FileInfo> getFileInfos(List<URI> paths)
focal_class.identifier: getFileInfos
focal_class.modifiers: public
focal_class.parameters: (List<URI> paths)
focal_class.return: List<FileInfo>
focal_class.signature: List<FileInfo> getFileInfos(List<URI> paths)
focal_class.class_method_signature: GoogleCloudStorageFileSystem.close()
focal_class.full_signature: public void close()
focal_class.identifier: close
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void close()
focal_class.class_method_signature: GoogleCloudStorageFileSystem.mkdir(URI path)
focal_class.full_signature: @VisibleForTesting public void mkdir(URI path)
focal_class.identifier: mkdir
focal_class.modifiers: @VisibleForTesting public
focal_class.parameters: (URI path)
focal_class.return: void
focal_class.signature: void mkdir(URI path)
focal_class.class_method_signature: GoogleCloudStorageFileSystem.getSubDirs(String objectName)
focal_class.full_signature: static List<String> getSubDirs(String objectName)
focal_class.identifier: getSubDirs
focal_class.modifiers: static
focal_class.parameters: (String objectName)
focal_class.return: List<String>
focal_class.signature: List<String> getSubDirs(String objectName)
focal_class.class_method_signature: GoogleCloudStorageFileSystem.getItemName(URI path)
focal_class.full_signature:  String getItemName(URI path)
focal_class.identifier: getItemName
focal_class.parameters: (URI path)
focal_class.return: String
focal_class.signature: String getItemName(URI path)
focal_class.class_method_signature: GoogleCloudStorageFileSystem.getGcs()
focal_class.full_signature: public GoogleCloudStorage getGcs()
focal_class.identifier: getGcs
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: GoogleCloudStorage
focal_class.signature: GoogleCloudStorage getGcs()
focal_method.body: public FileInfo getFileInfo(URI path) throws IOException {
      checkArgument(path != null, "path must not be null");
      // Validate the given path. true == allow empty object name.
      // One should be able to get info about top level directory (== bucket),
      // therefore we allow object name to be empty.
      StorageResourceId resourceId = StorageResourceId.fromUriPath(path, true);
      FileInfo fileInfo =
          FileInfo.fromItemInfo(
              getFileInfoInternal(resourceId, gcs.getOptions().isInferImplicitDirectoriesEnabled()));
      logger.atFinest().log("getFileInfo(path: %s): %s", path, fileInfo);
      return fileInfo;
    }
focal_method.class_method_signature: GoogleCloudStorageFileSystem.getFileInfo(URI path)
focal_method.full_signature: public FileInfo getFileInfo(URI path)
focal_method.identifier: getFileInfo
focal_method.invocations: checkArgument fromUriPath fromItemInfo getFileInfoInternal isInferImplicitDirectoriesEnabled getOptions log atFinest
focal_method.modifiers: public
focal_method.parameters: (URI path)
focal_method.return: FileInfo
focal_method.signature: FileInfo getFileInfo(URI path)