Class JpaLobStorageService<D extends com.broadleafcommerce.dataimport.provider.jpa.domain.JpaImportLob>

java.lang.Object
com.broadleafcommerce.dataimport.provider.jpa.service.JpaLobStorageService<D>
All Implemented Interfaces:
StorageService

public class JpaLobStorageService<D extends com.broadleafcommerce.dataimport.provider.jpa.domain.JpaImportLob> extends Object implements StorageService
Utilizes Jpa to save and retrieve files for import

TODO this is a stopgap implementation for completeness - it will load the entire file into memory. The long term solution is likely to replace this with a local filesystem-based storage service in the core module.

Author:
Chad Harchar (charchar)
  • Constructor Details

    • JpaLobStorageService

      public JpaLobStorageService(JpaImportLobRepository<D> importLobRepository, com.broadleafcommerce.common.extension.TypeFactory typeFactory)
  • Method Details

    • store

      public void store(InputStream content, String path)
      Description copied from interface: StorageService
      Stores a stream to a backing provider, overwriting any data existing at the path
      Specified by:
      store in interface StorageService
      Parameters:
      content - the data to store
      path - a path to reference the data by for further operations
    • read

      @Transactional("importTransactionManager") public Optional<InputStream> read(String path)
      Description copied from interface: StorageService
      Reads out previously-stored data with StorageService.store(InputStream, String)
      Specified by:
      read in interface StorageService
      Parameters:
      path - the original path that was used to store the file
      Returns:
      a stream to the resource or an empty optional if nothing was found at the given path
    • remove

      public void remove(String path)
      Description copied from interface: StorageService
      Deletes the resource at the given path
      Specified by:
      remove in interface StorageService
      Parameters:
      path - the path that should be deleted from the store
    • getImportLobRepository

      @NonNull protected JpaImportLobRepository<D> getImportLobRepository()