Class DefaultExportService<P extends Export>
java.lang.Object
com.broadleafcommerce.data.tracking.core.service.BaseMappableCrudEntityService<P>
com.broadleafcommerce.data.tracking.core.service.BaseRsqlMappableCrudEntityService<P>
com.broadleafcommerce.common.dataexport.service.DefaultExportService<P>
- All Implemented Interfaces:
ExportService<P>
,com.broadleafcommerce.data.tracking.core.service.MappableCrudEntityService<P>
,com.broadleafcommerce.data.tracking.core.service.RsqlMappableCrudEntityService<P>
public class DefaultExportService<P extends Export>
extends com.broadleafcommerce.data.tracking.core.service.BaseRsqlMappableCrudEntityService<P>
implements ExportService<P>
- Author:
- Samarth Dhruva (samarthd)
-
Constructor Summary
ConstructorDescriptionDefaultExportService
(ExportRepository<com.broadleafcommerce.data.tracking.core.Identifiable> repository, com.broadleafcommerce.data.tracking.core.service.RsqlMappableCrudEntityHelper helper, com.broadleafcommerce.common.messaging.notification.NotificationManager notificationManager) -
Method Summary
Modifier and TypeMethodDescription<D,
R extends org.springframework.data.repository.CrudRepository<D, String> & com.broadleafcommerce.common.extension.DomainTypeAware>
POverriding to add notification behavior.protected com.broadleafcommerce.common.messaging.notification.NotificationManager
protected ExportRepository<com.broadleafcommerce.data.tracking.core.Identifiable>
org.springframework.data.domain.Page<P>
readByTargetAndApplicationIdAndTenantId
(String target, String applicationId, @NonNull String tenantId, cz.jirutka.rsql.parser.ast.Node filters, org.springframework.data.domain.Pageable pageable) Reads the exports with the givenExport.target
andExport.applicationId
.org.springframework.data.domain.Page<P>
readByTargetAndAuthorAndApplicationIdAndTenantId
(String target, String author, String applicationId, @NonNull String tenantId, cz.jirutka.rsql.parser.ast.Node filters, org.springframework.data.domain.Pageable pageable) Reads the exports with the givenExport.target
,Export.author
, andExport.applicationId
.org.springframework.data.domain.Page<P>
readByTargetAndAuthorAndApplicationIdAndTenantIdAndParentId
(String target, String author, String applicationId, @NonNull String tenantId, @NonNull String parentId, cz.jirutka.rsql.parser.ast.Node filters, org.springframework.data.domain.Pageable pageable) Reads the exports with the givenExport.target
,Export.author
, andExport.applicationId
.Reads the exports which are incomplete (those with statusExportStatus.REQUESTED
orExportStatus.PROCESSING
) whoseExport.lastUpdated
is before the givencutoff
.readIncompleteLastUpdatedBeforeAndTenantId
(Instant cutoff, String tenantId) Reads the exports which are incomplete (those with statusExportStatus.REQUESTED
orExportStatus.PROCESSING
) whoseExport.lastUpdated
is before the givencutoff
, within the specified tenant.boolean
Atomically finds and updates the given export: finds the export with the ID matching the givenexport
, sets the export'sExport.errorMessage
to the given value, setsExport.status
toExportStatus.ERROR
, and renewsExport.lastUpdated
.boolean
setFileLocationAndFinishedStatus
(String exportId, String fileLocation) Atomically finds and updates the export with the givenexportId
: sets theExport.status
toExportStatus.FINISHED
, sets theExport.fileLocation
tofileLocation
, and renewsExport.lastUpdated
.boolean
setNumberOfRecordsProcessed
(String exportId, long numberOfRecordsProcessed) Atomically finds and updates the export with the givenexportId
: setsExport.numberOfRecordsProcessed
to the given value and renewsExport.lastUpdated
.setProcessingStatus
(String exportId) Atomically finds and updates the export with the givenexportId
, setting theExport.status
toExportStatus.PROCESSING
and renewingExport.lastUpdated
.Methods inherited from class com.broadleafcommerce.data.tracking.core.service.BaseRsqlMappableCrudEntityService
getRsqlHelper, readAll, readAll, readAll, readAll
Methods inherited from class com.broadleafcommerce.data.tracking.core.service.BaseMappableCrudEntityService
convertFromPersistentDomain, createAll, createAllAllowingPartialSuccess, delete, getHelper, readAll, readAll, readAll, readAllByIds, readById, replace, replaceAll, replaceAllAllowingPartialSuccess, update, updateAll, updateAllAllowingPartialSuccess
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.broadleafcommerce.data.tracking.core.service.MappableCrudEntityService
createAll, createAllAllowingPartialSuccess, delete, readAll, readAll, readAll, readAllByIds, readById, replace, replaceAll, replaceAllAllowingPartialSuccess, update, updateAll, updateAllAllowingPartialSuccess
Methods inherited from interface com.broadleafcommerce.data.tracking.core.service.RsqlMappableCrudEntityService
readAll, readAll, readAll, readAll
-
Constructor Details
-
DefaultExportService
public DefaultExportService(ExportRepository<com.broadleafcommerce.data.tracking.core.Identifiable> repository, com.broadleafcommerce.data.tracking.core.service.RsqlMappableCrudEntityHelper helper, com.broadleafcommerce.common.messaging.notification.NotificationManager notificationManager)
-
-
Method Details
-
create
public <D,R extends org.springframework.data.repository.CrudRepository<D, P createString> & com.broadleafcommerce.common.extension.DomainTypeAware> (P businessInstance) Overriding to add notification behavior.Will create the
Export
and emit anProcessExportRequest
message. -
setProcessingStatus
Description copied from interface:ExportService
Atomically finds and updates the export with the givenexportId
, setting theExport.status
toExportStatus.PROCESSING
and renewingExport.lastUpdated
.The update is applied only if the export is found to have a
Export.status
ofExportStatus.REQUESTED
.- Specified by:
setProcessingStatus
in interfaceExportService<P extends Export>
- Parameters:
exportId
- the ID of the export to find and update- Returns:
- the updated
Export
if successfully found and updated,null
otherwise
-
setError
Description copied from interface:ExportService
Atomically finds and updates the given export: finds the export with the ID matching the givenexport
, sets the export'sExport.errorMessage
to the given value, setsExport.status
toExportStatus.ERROR
, and renewsExport.lastUpdated
.The update is applied only if the export is found to have a
Export.status
ofExportStatus.REQUESTED
orExportStatus.PROCESSING
.- Specified by:
setError
in interfaceExportService<P extends Export>
- Parameters:
exportId
- the ID of the export to find and updateerrorMessage
- the error message to set on the export- Returns:
- true if the export update was successfully performed, false otherwise
-
setNumberOfRecordsProcessed
Description copied from interface:ExportService
Atomically finds and updates the export with the givenexportId
: setsExport.numberOfRecordsProcessed
to the given value and renewsExport.lastUpdated
.The update is applied only if the export is found to have a
Export.status
ofExportStatus.PROCESSING
- Specified by:
setNumberOfRecordsProcessed
in interfaceExportService<P extends Export>
- Parameters:
exportId
- the ID of the export to find and updatenumberOfRecordsProcessed
- the new value to set forExport.numberOfRecordsProcessed
- Returns:
- true if the update was successfully performed, false otherwise
-
setFileLocationAndFinishedStatus
Description copied from interface:ExportService
Atomically finds and updates the export with the givenexportId
: sets theExport.status
toExportStatus.FINISHED
, sets theExport.fileLocation
tofileLocation
, and renewsExport.lastUpdated
.The update is applied only if the export is found to have a
Export.status
ofExportStatus.PROCESSING
- Specified by:
setFileLocationAndFinishedStatus
in interfaceExportService<P extends Export>
- Parameters:
exportId
- the ID of the export to modifyfileLocation
- the file location to set on the export- Returns:
- true if the update was successfully performed, false otherwise
-
readByTargetAndApplicationIdAndTenantId
public org.springframework.data.domain.Page<P> readByTargetAndApplicationIdAndTenantId(String target, @Nullable String applicationId, @NonNull @NonNull String tenantId, cz.jirutka.rsql.parser.ast.Node filters, org.springframework.data.domain.Pageable pageable) Description copied from interface:ExportService
Reads the exports with the givenExport.target
andExport.applicationId
.- Specified by:
readByTargetAndApplicationIdAndTenantId
in interfaceExportService<P extends Export>
- Parameters:
target
- theExport.target
to filter byapplicationId
- theExport.applicationId
to filter by. Note that if this isnull
, only exports with null application IDs will be returned.tenantId
- theExport.tenantId
to filter bypageable
- information about which page of results to return from the database- Returns:
- the exports with the given
Export.target
andExport.applicationId
-
readByTargetAndAuthorAndApplicationIdAndTenantId
public org.springframework.data.domain.Page<P> readByTargetAndAuthorAndApplicationIdAndTenantId(String target, String author, @Nullable String applicationId, @NonNull @NonNull String tenantId, cz.jirutka.rsql.parser.ast.Node filters, org.springframework.data.domain.Pageable pageable) Description copied from interface:ExportService
Reads the exports with the givenExport.target
,Export.author
, andExport.applicationId
.- Specified by:
readByTargetAndAuthorAndApplicationIdAndTenantId
in interfaceExportService<P extends Export>
- Parameters:
target
- the target to filter results byauthor
- the author to filter results byapplicationId
- theExport.applicationId
to filter by. Note that if this isnull
, only exports with null application IDs will be returned.tenantId
- theExport.tenantId
to filter byfilters
- additional filters to apply, must not be nullpageable
- information about which page of results to return from the database- Returns:
- the exports matching the given criteria
-
readIncompleteLastUpdatedBefore
Description copied from interface:ExportService
Reads the exports which are incomplete (those with statusExportStatus.REQUESTED
orExportStatus.PROCESSING
) whoseExport.lastUpdated
is before the givencutoff
.- Specified by:
readIncompleteLastUpdatedBefore
in interfaceExportService<P extends Export>
- Parameters:
cutoff
- the results will be filtered to only include those exports whoseExport.lastUpdated
is before this value- Returns:
- the exports which are incomplete and have a
Export.lastUpdated
before the givencutoff
-
readIncompleteLastUpdatedBeforeAndTenantId
Description copied from interface:ExportService
Reads the exports which are incomplete (those with statusExportStatus.REQUESTED
orExportStatus.PROCESSING
) whoseExport.lastUpdated
is before the givencutoff
, within the specified tenant.- Specified by:
readIncompleteLastUpdatedBeforeAndTenantId
in interfaceExportService<P extends Export>
- Parameters:
cutoff
- the results will be filtered to only include those exports whoseExport.lastUpdated
is before this valuetenantId
- the tenant id that this export operation was initiated from- Returns:
- the exports which are incomplete and have a
Export.lastUpdated
before the givencutoff
-
readByTargetAndAuthorAndApplicationIdAndTenantIdAndParentId
public org.springframework.data.domain.Page<P> readByTargetAndAuthorAndApplicationIdAndTenantIdAndParentId(String target, String author, @Nullable String applicationId, @NonNull @NonNull String tenantId, @NonNull @NonNull String parentId, cz.jirutka.rsql.parser.ast.Node filters, org.springframework.data.domain.Pageable pageable) Description copied from interface:ExportService
Reads the exports with the givenExport.target
,Export.author
, andExport.applicationId
.- Specified by:
readByTargetAndAuthorAndApplicationIdAndTenantIdAndParentId
in interfaceExportService<P extends Export>
- Parameters:
target
- the target to filter results byauthor
- the author to filter results byapplicationId
- theExport.applicationId
to filter by. Note that if this isnull
, only exports with null application IDs will be returned.tenantId
- theExport.tenantId
to filter byparentId
- theExport.parentId
to filter byfilters
- additional filters to apply, must not be nullpageable
- information about which page of results to return from the database- Returns:
- the exports matching the given criteria
-
getRepository
@NonNull protected ExportRepository<com.broadleafcommerce.data.tracking.core.Identifiable> getRepository() -
getNotificationManager
@NonNull protected com.broadleafcommerce.common.messaging.notification.NotificationManager getNotificationManager()
-