Class SkuInventoryImportBatchHandler
- java.lang.Object
-
- com.broadleafcommerce.common.dataimport.AbstractImportBatchHandler
-
- com.broadleafcommerce.inventory.dataimport.SkuInventoryImportBatchHandler
-
- All Implemented Interfaces:
com.broadleafcommerce.common.dataimport.ImportBatchHandler
@DataRouteByKey("inventory") public class SkuInventoryImportBatchHandler extends com.broadleafcommerce.common.dataimport.AbstractImportBatchHandler- Author:
- Kelly Tisdell (ktisdell)
-
-
Constructor Summary
Constructors Constructor Description SkuInventoryImportBatchHandler(SkuInventoryConverter skuInventoryConverter, SkuInventoryService<SkuInventory> skuInventoryService, SkuInventoryDefaultsInitializer skuInventoryDefaultsInitializer, com.broadleafcommerce.data.tracking.core.web.ContextRequestHydrator hydrator)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected List<com.broadleafcommerce.common.dataimport.util.PersistenceRequest<SkuInventory>>buildPersistenceRequests(com.broadleafcommerce.common.dataimport.messaging.BatchRequest batch, List<com.broadleafcommerce.common.dataimport.messaging.BatchCompletionRecord> erroredCompletions)Builds the list ofPersistenceRequestfor theSkuInventory.booleancanHandle(com.broadleafcommerce.common.dataimport.messaging.BatchRequest batch)StringgetDataRouteKey()protected com.broadleafcommerce.common.dataimport.util.IdResolvergetIdResolver()protected com.broadleafcommerce.common.dataimport.util.OperationResolvergetOperationResolver()protected SkuInventoryConvertergetSkuInventoryConverter()protected SkuInventoryDefaultsInitializergetSkuInventoryDefaultsInitializer()protected SkuInventoryService<SkuInventory>getSkuInventoryService()com.broadleafcommerce.common.dataimport.messaging.BatchCompletionhandle(com.broadleafcommerce.common.dataimport.messaging.BatchRequest batch)protected SkuInventoryinitializeSkuInventory(String inventoryLocationId, com.broadleafcommerce.common.dataimport.messaging.BatchRecord skuInventoryRecord, SkuInventory convertedSkuInventory)Initializes the defaults on an existingSkuInventoryobject.protected voidpersistPersistenceRequests(com.broadleafcommerce.common.dataimport.messaging.BatchRequest batch, List<com.broadleafcommerce.common.dataimport.util.PersistenceRequest<SkuInventory>> skuInventories, List<com.broadleafcommerce.common.dataimport.messaging.BatchCompletionRecord> allCompletions)Perform a persist of the parsed out domain specified asPersistenceRequests and adds persistence result toallCompletionsprotected com.broadleafcommerce.data.tracking.core.type.OperationTyperesolveOperationType(com.broadleafcommerce.common.dataimport.messaging.BatchRecord skuInventoryRecord)Resolves operation type for the sku inventory record.protected voidresolveSkuInventoryId(com.broadleafcommerce.common.dataimport.messaging.BatchRecord skuInventoryRecord, SkuInventory skuInventory)Resolves and sets the id forSkuInventory.protected voidsetIdResolver(com.broadleafcommerce.common.dataimport.util.IdResolver idResolver)protected voidsetOperationResolver(com.broadleafcommerce.common.dataimport.util.OperationResolver operationResolver)protected voidsetVendorRefFromBatchContext(SkuInventory skuInventory, com.broadleafcommerce.common.dataimport.messaging.BatchRequest.BatchContext batchContext)Sets theSkuInventory.getVendorRef()fromBatchRequest.BatchContext.getVendorRef().-
Methods inherited from class com.broadleafcommerce.common.dataimport.AbstractImportBatchHandler
addFailedConversionCompletions, buildAndAddCompletionRecords, buildContextInfo, buildCreateContextInfo, buildNonValidationErrorCompletions, buildReadContextInfo, buildSuccessfulCompletionsForRequest, buildUpdateContextInfo, buildValidationErrorCompletions, failRecordAndDependentsEarly, generateAndAddCompletions, generateAndAddCompletions, generateAndAddValidationErrorCompletions, getCompletionError, getFormattedEmbeddedValidationErrorString, getFormattedValidationErrorString, getHydrator, persist, persist, removeAndReturnFieldErrorsUnderPath
-
-
-
-
Constructor Detail
-
SkuInventoryImportBatchHandler
public SkuInventoryImportBatchHandler(SkuInventoryConverter skuInventoryConverter, SkuInventoryService<SkuInventory> skuInventoryService, SkuInventoryDefaultsInitializer skuInventoryDefaultsInitializer, com.broadleafcommerce.data.tracking.core.web.ContextRequestHydrator hydrator)
-
-
Method Detail
-
canHandle
public boolean canHandle(com.broadleafcommerce.common.dataimport.messaging.BatchRequest batch)
-
handle
public com.broadleafcommerce.common.dataimport.messaging.BatchCompletion handle(com.broadleafcommerce.common.dataimport.messaging.BatchRequest batch)
-
buildPersistenceRequests
protected List<com.broadleafcommerce.common.dataimport.util.PersistenceRequest<SkuInventory>> buildPersistenceRequests(com.broadleafcommerce.common.dataimport.messaging.BatchRequest batch, List<com.broadleafcommerce.common.dataimport.messaging.BatchCompletionRecord> erroredCompletions)
Builds the list ofPersistenceRequestfor theSkuInventory. In case error during conversion, adds failed conversion response to theerroredCompletions, otherwise creates and adds the persistence request to the result.- Parameters:
batch- the original record batcherroredCompletions- the list to which any errored completion records should be added- Returns:
- the list of
PersistenceRequestfor theSkuInventory
-
resolveOperationType
protected com.broadleafcommerce.data.tracking.core.type.OperationType resolveOperationType(com.broadleafcommerce.common.dataimport.messaging.BatchRecord skuInventoryRecord)
Resolves operation type for the sku inventory record.- Parameters:
skuInventoryRecord- the record representsSkuInventoryfrom file- Returns:
- type for a change operation
-
initializeSkuInventory
protected SkuInventory initializeSkuInventory(String inventoryLocationId, com.broadleafcommerce.common.dataimport.messaging.BatchRecord skuInventoryRecord, SkuInventory convertedSkuInventory)
Initializes the defaults on an existingSkuInventoryobject.- Parameters:
inventoryLocationId- the id of the parent inventory locationskuInventoryRecord- the record representsSkuInventoryfrom fileconvertedSkuInventory- the results of performing the conversion- Returns:
- instance of
SkuInventorywith populated properties
-
setVendorRefFromBatchContext
protected void setVendorRefFromBatchContext(SkuInventory skuInventory, com.broadleafcommerce.common.dataimport.messaging.BatchRequest.BatchContext batchContext)
Sets theSkuInventory.getVendorRef()fromBatchRequest.BatchContext.getVendorRef().This is important, as it ensures all changes will only occur within the import's defined vendor (or not in a vendor, if null).
- ensures any vendorRef value provided for the row within the file is ignored and only the pre-validated vendorRef is used
- if a row is trying to update a record that currently exists in a different vendor, this
will cause the update payload to have a different vendor and will fail the vendor-ref
immutability validation in
DefaultSkuInventoryService. This guarantees the change will fail. - if the specified parent inventory location belongs to a different vendor, the validation
in
SkuInventoryValidatorwill fail and the row will be rejected
- Parameters:
skuInventory- aSkuInventoryinstance converted from a row in a filebatchContext- the batch context provided for the import
-
resolveSkuInventoryId
protected void resolveSkuInventoryId(com.broadleafcommerce.common.dataimport.messaging.BatchRecord skuInventoryRecord, SkuInventory skuInventory)Resolves and sets the id forSkuInventory.- Parameters:
skuInventoryRecord- the record representsSkuInventoryfrom fileskuInventory- theSkuInventoryfor which the id should be resolved
-
persistPersistenceRequests
protected void persistPersistenceRequests(com.broadleafcommerce.common.dataimport.messaging.BatchRequest batch, List<com.broadleafcommerce.common.dataimport.util.PersistenceRequest<SkuInventory>> skuInventories, List<com.broadleafcommerce.common.dataimport.messaging.BatchCompletionRecord> allCompletions)Perform a persist of the parsed out domain specified asPersistenceRequests and adds persistence result toallCompletions- Parameters:
batch- the original record batchskuInventories- a list of the sku inventory persistence requestsallCompletions- a list to which the completion records should be added
-
getDataRouteKey
public String getDataRouteKey()
-
getSkuInventoryConverter
protected SkuInventoryConverter getSkuInventoryConverter()
-
getSkuInventoryService
protected SkuInventoryService<SkuInventory> getSkuInventoryService()
-
getSkuInventoryDefaultsInitializer
protected SkuInventoryDefaultsInitializer getSkuInventoryDefaultsInitializer()
-
getIdResolver
protected com.broadleafcommerce.common.dataimport.util.IdResolver getIdResolver()
-
setIdResolver
protected void setIdResolver(com.broadleafcommerce.common.dataimport.util.IdResolver idResolver)
-
getOperationResolver
protected com.broadleafcommerce.common.dataimport.util.OperationResolver getOperationResolver()
-
setOperationResolver
protected void setOperationResolver(com.broadleafcommerce.common.dataimport.util.OperationResolver operationResolver)
-
-