Class AbstractAzureBlobStorageDatabase<F>

java.lang.Object
io.dialob.db.spi.spring.AbstractDocumentDatabase<F>
io.dialob.db.azure.blob.storage.AbstractAzureBlobStorageDatabase<F>
Type Parameters:
F - the type of the document entity
Direct Known Subclasses:
FormAzureBlobStorageDatabase, QuestionnaireAzureBlobStorageDatabase

public abstract class AbstractAzureBlobStorageDatabase<F> extends AbstractDocumentDatabase<F>
Abstract implementation for an Azure Blob Storage-based document database. This class provides functionalities to manage documents stored as blobs in Azure Blob Storage. Documents are serialized and deserialized using an ObjectMapper.
  • Constructor Details

    • AbstractAzureBlobStorageDatabase

      public AbstractAzureBlobStorageDatabase(@NonNull com.azure.storage.blob.BlobContainerClient blobContainerClient, @NonNull Class<F> documentClass, @NonNull com.fasterxml.jackson.databind.ObjectMapper objectMapper, @NonNull String prefix, String suffix)
  • Method Details

    • tenantPrefix

      protected String tenantPrefix(String tenantId)
    • objectName

      protected String objectName(String tenantId, String id)
      Construct Azure Blob object name
      Parameters:
      tenantId -
      id -
      Returns:
      object name in storage
    • extractObjectName

      protected String extractObjectName(String key)
    • findOne

      @NonNull public F findOne(@NonNull String tenantId, @NonNull String id, String rev)
    • loadFile

      public F loadFile(String objectName, InputStream inputStream)
    • findOne

      @NonNull public F findOne(@NonNull String tenantId, @NonNull String id)
    • forAllObjects

      protected void forAllObjects(String tenantId, @NonNull Consumer<com.azure.storage.blob.models.BlobItem> fileConsumer)
    • exists

      public boolean exists(@NonNull String tenantId, @NonNull String id)
    • delete

      public boolean delete(String tenantId, @NonNull String id)
    • save

      @NonNull public F save(String tenantId, @NonNull F document)
    • createUuid

      protected String createUuid()