Factory for a store that manages serializable data, where the key is a string and the value is a
Serializable object.
Users should keep a single globally shared instance of the data store factory. Otherwise, some
implementations may not share the internal copies of the data, and you'll end up with multiple
data stores by the same IDs, each living in a separate implementation. Some implementations may
also have some overhead, or may have caching implemented, and so multiple instances may defeat
that. Finally, have multiple instances may defeat the thread-safety guarantee for some
implementations.
Implementation should store the data in a persistent storage such as a database.
Implementation should be thread-safe. Read the JavaDoc of the implementation for those details.
See Also: MemoryDataStoreFactory, FileDataStoreFactory
Returns a type-specific data store based on the given unique ID.
If a data store by that ID does not already exist, it should be created now, stored for
later access, and returned. Otherwise, if there is already a data store by that ID, it should
be returned. The DataStore#getId() must match the id parameter from this
method.
The ID must be at least 1 and at most 30 characters long, and must contain only alphanumeric
or underscore characters.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-28 UTC."],[],[],null,["# Interface DataStoreFactory (2.0.0)\n\nVersion latestkeyboard_arrow_down\n\n- [2.0.0 (latest)](/java/docs/reference/google-http-client/latest/com.google.api.client.util.store.DataStoreFactory)\n- [1.47.1](/java/docs/reference/google-http-client/1.47.1/com.google.api.client.util.store.DataStoreFactory)\n- [1.46.3](/java/docs/reference/google-http-client/1.46.3/com.google.api.client.util.store.DataStoreFactory)\n- [1.45.3](/java/docs/reference/google-http-client/1.45.3/com.google.api.client.util.store.DataStoreFactory)\n- [1.44.2](/java/docs/reference/google-http-client/1.44.2/com.google.api.client.util.store.DataStoreFactory)\n- [1.43.2](/java/docs/reference/google-http-client/1.43.2/com.google.api.client.util.store.DataStoreFactory)\n- [1.42.3](/java/docs/reference/google-http-client/1.42.3/com.google.api.client.util.store.DataStoreFactory)\n- [1.41.8](/java/docs/reference/google-http-client/1.41.8/com.google.api.client.util.store.DataStoreFactory) \n\n public interface DataStoreFactory\n\nFactory for a store that manages serializable data, where the key is a string and the value is a\n[Serializable](https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html) object.\n\nUsers should keep a single globally shared instance of the data store factory. Otherwise, some\nimplementations may not share the internal copies of the data, and you'll end up with multiple\ndata stores by the same IDs, each living in a separate implementation. Some implementations may\nalso have some overhead, or may have caching implemented, and so multiple instances may defeat\nthat. Finally, have multiple instances may defeat the thread-safety guarantee for some\nimplementations.\n\nImplementation should store the data in a persistent storage such as a database.\nImplementation should be thread-safe. Read the JavaDoc of the implementation for those details.\nSee Also: [MemoryDataStoreFactory](/java/docs/reference/google-http-client/latest/com.google.api.client.util.store.MemoryDataStoreFactory), [FileDataStoreFactory](/java/docs/reference/google-http-client/latest/com.google.api.client.extensions.android.util.store.FileDataStoreFactory)\n\nMethods\n-------\n\n### \\\u003cV\\\u003egetDataStore(String id)\n\n public abstract DataStore\u003cV\u003e \u003cV\u003egetDataStore(String id)\n\nReturns a type-specific data store based on the given unique ID.\n\nIf a data store by that ID does not already exist, it should be created now, stored for\nlater access, and returned. Otherwise, if there is already a data store by that ID, it should\nbe returned. The [DataStore#getId()](/java/docs/reference/google-http-client/latest/com.google.api.client.util.store.DataStore#com_google_api_client_util_store_DataStore_getId__) must match the `id` parameter from this\nmethod.\n\nThe ID must be at least 1 and at most 30 characters long, and must contain only alphanumeric\nor underscore characters."]]