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 ofPersistenceRequest
for theSkuInventory
.boolean
canHandle(com.broadleafcommerce.common.dataimport.messaging.BatchRequest batch)
String
getDataRouteKey()
protected com.broadleafcommerce.common.dataimport.util.IdResolver
getIdResolver()
protected com.broadleafcommerce.common.dataimport.util.OperationResolver
getOperationResolver()
protected SkuInventoryConverter
getSkuInventoryConverter()
protected SkuInventoryDefaultsInitializer
getSkuInventoryDefaultsInitializer()
protected SkuInventoryService<SkuInventory>
getSkuInventoryService()
com.broadleafcommerce.common.dataimport.messaging.BatchCompletion
handle(com.broadleafcommerce.common.dataimport.messaging.BatchRequest batch)
protected SkuInventory
initializeSkuInventory(String inventoryLocationId, com.broadleafcommerce.common.dataimport.messaging.BatchRecord skuInventoryRecord, SkuInventory convertedSkuInventory)
Initializes the defaults on an existingSkuInventory
object.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 asPersistenceRequest
s and adds persistence result toallCompletions
protected com.broadleafcommerce.data.tracking.core.type.OperationType
resolveOperationType(com.broadleafcommerce.common.dataimport.messaging.BatchRecord skuInventoryRecord)
Resolves operation type for the sku inventory record.protected void
resolveSkuInventoryId(com.broadleafcommerce.common.dataimport.messaging.BatchRecord skuInventoryRecord, SkuInventory skuInventory)
Resolves and sets the id forSkuInventory
.protected void
setIdResolver(com.broadleafcommerce.common.dataimport.util.IdResolver idResolver)
protected void
setOperationResolver(com.broadleafcommerce.common.dataimport.util.OperationResolver operationResolver)
protected void
setVendorRefFromBatchContext(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 ofPersistenceRequest
for 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
PersistenceRequest
for 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 representsSkuInventory
from 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 existingSkuInventory
object.- Parameters:
inventoryLocationId
- the id of the parent inventory locationskuInventoryRecord
- the record representsSkuInventory
from fileconvertedSkuInventory
- the results of performing the conversion- Returns:
- instance of
SkuInventory
with 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
SkuInventoryValidator
will fail and the row will be rejected
- Parameters:
skuInventory
- aSkuInventory
instance 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 representsSkuInventory
from fileskuInventory
- theSkuInventory
for 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 asPersistenceRequest
s 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)
-
-