Class AbstractBlobScroll<T extends BlobStoreBlobProvider>

java.lang.Object
org.nuxeo.ecm.core.blob.scroll.AbstractBlobScroll<T>
All Implemented Interfaces:
AutoCloseable, Iterator<List<String>>, Scroll
Direct Known Subclasses:
AzureBlobScroll, GoogleStorageBlobScroll, GridFSBlobScroll, InMemoryBlobScroll, LocalBlobScroll, S3BlobScroll

public abstract class AbstractBlobScroll<T extends BlobStoreBlobProvider> extends Object implements Scroll
Abstract class to scroll blobs from a blob provider, the scroll query is the provider id.
Since:
2023
  • Field Details

    • SIZE_DELIMITER

      protected static final String SIZE_DELIMITER
      See Also:
    • isKeyPrefixed

      protected boolean isKeyPrefixed
    • keyStrategy

      protected KeyStrategy keyStrategy
    • providerId

      protected String providerId
    • size

      protected int size
    • totalBlobCount

      protected long totalBlobCount
    • totalBlobSizeCount

      protected long totalBlobSizeCount
  • Constructor Details

    • AbstractBlobScroll

      public AbstractBlobScroll()
  • Method Details

    • init

      public void init(ScrollRequest request, Map<String,String> options)
      Description copied from interface: Scroll
      Initialization of the iterator.
      Specified by:
      init in interface Scroll
    • addTo

      protected boolean addTo(List<String> list, String key, Supplier<Long> getSize)
      Adds the blob key to the list if it is valid (e.g. looks like a digest if the provider has digest strategy).

      The key added to the list will be prefixed with the provider id if it has to be.

      The key added to the list will be suffixed with the size of the associated blob with the SIZE_DELIMITER separator.

      Parameters:
      list - the list to be
      key - the blob key
      getSize - supplier to sum the total size
      Returns:
      true if the key was added to the list
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Scroll
    • init

      protected abstract void init(T provider)
    • getBlobKey

      public static String getBlobKey(String id)
    • getBlobSize

      public static Long getBlobSize(String id)