Class FileDataStoreFactory

java.lang.Object
com.google.api.client.util.store.AbstractDataStoreFactory
com.google.api.client.util.store.FileDataStoreFactory
All Implemented Interfaces:
DataStoreFactory

public class FileDataStoreFactory extends AbstractDataStoreFactory
Thread-safe file implementation of a credential store.

For security purposes, the file's permissions are set such that the file is only accessible by the file's owner.

Note: this class is not compatible with Android lower than API level 26 (Oreo). For an implementation compatible with Android invalid input: '<' 26, please use com.google.api.client.extensions.android.util.store.FileDataStoreFactory which is provided by com.google.http-client:google-http-client-android.

Since:
1.16
  • Field Details

    • IS_WINDOWS

      private static final boolean IS_WINDOWS
    • dataDirectory

      private final File dataDirectory
      Directory to store data.
  • Constructor Details

    • FileDataStoreFactory

      public FileDataStoreFactory(File dataDirectory) throws IOException
      Parameters:
      dataDirectory - data directory
      Throws:
      IOException
  • Method Details

    • getDataDirectory

      public final File getDataDirectory()
      Returns the data directory.
    • createDataStore

      protected <V extends Serializable> DataStore<V> createDataStore(String id) throws IOException
      Description copied from class: AbstractDataStoreFactory
      Returns a new instance of a type-specific data store based on the given unique ID.

      The DataStore.getId() must match the id parameter from this method.

      Specified by:
      createDataStore in class AbstractDataStoreFactory
      Type Parameters:
      V - serializable type of the mapped value
      Parameters:
      id - unique ID to refer to typed data store
      Throws:
      IOException
    • setPermissionsToOwnerOnly

      private static void setPermissionsToOwnerOnly(File file) throws IOException
      Attempts to set the given file's permissions such that it can only be read, written, and executed by the file's owner.
      Parameters:
      file - the file's permissions to modify
      Throws:
      IOException - if the permissions can't be set
    • setPermissionsToOwnerOnlyWindows

      private static void setPermissionsToOwnerOnlyWindows(File file) throws IOException
      Throws:
      IOException