public class MultiThreadedImpExImportReader extends ImpExImportReader
discardNextLine(),
dumpNextLine(String) and setDumpingAllowed(boolean).ImpExReader.ResultSetCSVReaderFIRST| Constructor and Description |
|---|
MultiThreadedImpExImportReader(CSVReader reader) |
MultiThreadedImpExImportReader(CSVReader reader,
boolean legacyMode) |
MultiThreadedImpExImportReader(CSVReader reader,
CSVWriter dumpWriter) |
MultiThreadedImpExImportReader(CSVReader reader,
CSVWriter dumpWriter,
DocumentIDRegistry docIDRegistry,
MultiThreadedImportProcessor processor,
EnumerationValue mode) |
MultiThreadedImpExImportReader(CSVReader reader,
CSVWriter dumpWriter,
MultiThreadedImportProcessor processor) |
MultiThreadedImpExImportReader(CSVReader reader,
CSVWriter dumpWriter,
MultiThreadedImportProcessor processor,
boolean legacyMode) |
MultiThreadedImpExImportReader(java.lang.String lines) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
addNewWorker(PoolableThread poolableThread,
int workerIndex) |
protected void |
addResult(ImpExWorkerResult result) |
protected HeaderDescriptor |
createNewHeader(java.util.Map<java.lang.Integer,java.lang.String> line)
Overwritten to block execution until all workers finished previous lines.
|
protected ImpExWorker |
createWorker(PoolableThread poolableThread,
int number) |
void |
discardNextLine()
Disallowed in parallel mode since line order cannot be guaranteed.
|
void |
dumpNextLine(java.lang.String reason)
Disallowed in parallel mode since line order cannot be guaranteed.
|
protected boolean |
ensureValidHeaderOrMarkUnresolved(ValueLine valueLine) |
protected void |
execute(AbstractCodeLine line,
java.util.Map csvLine,
boolean forEachMode)
Called for each code line.
|
protected ValueLine |
fetchNextValueLine(ImpExWorker worker) |
protected ImpExWorkerResult |
fetchNextWorkerResult() |
protected int |
getAllocatedThreads() |
protected de.hybris.platform.impex.jalo.imp.MultiThreadedImpExImportReader.InitialThreads |
getInitialThreads() |
ImpExLogFilter |
getLogFilter() |
int |
getMaxThreads() |
protected void |
handOffToResultProcessorWorker(ImpExWorkerResult result) |
protected boolean |
hasUnrecoverableError(ImpExWorkerResult result) |
protected boolean |
isAllWorkerFinished() |
protected boolean |
isInParallelMode() |
protected boolean |
isReaderFinished() |
protected boolean |
isResultProcessorFinished() |
protected boolean |
mustMarkLineAsUnresolved(ImpExWorkerResult result,
ValueLine line) |
protected void |
postProcessValueLine(ValueLine currentValueLine,
Item ret,
java.lang.Exception error)
Now does nothing since at this time the value line is just put into queue and no result is available yet.
|
protected void |
postProcessValueLineInternal(ValueLine currentValueLine,
AbstractProcessResult ret,
java.lang.Exception error)
Real post processing of lines after the worker finished importing.
|
protected Item |
processLine(ValueLine valueLine)
Now enqueues the value line to be processed by one of our workers.
|
protected boolean |
processPendingResult(ImpExWorkerResult result) |
protected Item |
processValueLineFromWorker(ValueLine line)
Called from
ImpExWorker to trigger item data processing e.g. |
java.lang.Object |
readLine()
Fetches next available result item.
|
protected boolean |
readLineFromWorker()
Called from
ImpExReaderWorker asynchronously. |
void |
setCurrentHeader(HeaderDescriptor header)
Overwritten to switch on/off parallel mode allowed flag from
ImpExConstants.Syntax.Modifier#PARALLEL . |
void |
setDumpingAllowed(boolean dumpingAllowed)
Dumping cannot be switched off in multi-threaded mode since line order cannot be guaranteed.
|
void |
setLogFilter(ImpExLogFilter logFilter) |
void |
setMaxThreads(int requested) |
protected int |
tryAllocateWorkers(int amount) |
protected PoolableThread |
tryToBorrowThread() |
protected PoolableThread |
tryToBorrowThread(ThreadPool threadPool) |
protected void |
writeUserRightsLines()
Overwritten to wait until line queue is empty.
|
close, createValueLine, dumpNextLine, dumpUnresolvedLine, findMarker, getAfterEachCode, getCSVWriter, getCurrentValueLine, getCustomImportProcessor, getDumpedLineCount, getDumpedLineCountPerHeader, getForEachCode, getImportProcessor, getLastImportedItem, getLastImportedItemLineNumber, getLastImportedLine, getProcessedItemsCount, getProcessedItemsCountPerHeader, getResolvedItemsCount, getScriptExecutionContext, getValidationMode, getValueLineCount, incDumpCount, incItemsCount, isCreateHMCSavedValues, isDumpingAllowed, isLegacyMode, isSecondPass, preProcessLine, processMarkerCodeLine, readAll, setAfterEachCode, setBeanShellContext, setCreateHMCSavedValues, setCSVWriter, setForEachCode, setIsSecondPass, setValueLinesToSkipaddDefinition, addExternalDataMedia, addExternalDataMedias, addHeaderExceptionInfoAsComment, addHeaderReplacementRule, addToBeanShellContext, adjustLineIndexes, applyHeaderReplacements, assureBeanShellLoaded, checkDefinitonKey, createCodeLine, createCodeLineLegacyWay, createCodeLineModernWay, createInvalidHeader, debug, debug, enableCodeExecution, enableExternalCodeExecution, enableExternalDataCodeExecution, enableExternalImpExSyntaxParsing, enableExternalSyntaxParsing, enterIfBlock, error, error, execute, exitIfBlock, findExternalDataMedia, findExternalDataMedia, getAllExternalDataMediaCodes, getAttributeConstraintFilter, getBeforeEachCode, getCellDecorators, getCSVReader, getCurrentHeader, getCurrentLocation, getCurrentReader, getDefaultReplacements, getDocumentIDRegistry, getFromBeanShellContext, getInvalidHeaderPolicy, getLineSize, getLocale, getStrictMode, gotInsertedLines, hasCellDecorators, includeExternalData, includeExternalData, includeExternalData, includeExternalData, includeExternalData, includeExternalData, includeExternalData, includeExternalData, includeExternalData, includeExternalData, includeExternalDataMedia, includeExternalDataMedia, includeExternalDataMedia, includeExternalDataMedia, includeExternalDataMedia, includeExternalDataMedia, includeExternalDataMedia, includeExternalDataMedia, includeExternalDataMedia, includeExternalDataMedia, includeSQLData, includeSQLData, includeSQLData, info, info, initDatabase, insertLine, isCodeExecutionEnabled, isCodeLine, isCombinedSearchEnabled, isCommentLine, isDebugEnabled, isDefinition, isEmptyLine, isEndUserRights, isExternalCodeExecutionEnabled, isExternalSyntaxParsingEnabled, isHeaderLine, isIncludingExternalData, isInfoEnabled, isNotInInactiveIfBlock, isStartUserRights, legacyExecute, lineToList, modernExecute, parseHeader, parseHeader, parseHeader, parseHeader, processCodeLine, readNextCSVLine, removeExternalDataMedia, removeExternalDataMedias, replaceDefinitions, setAttributeConstraintFilter, setBeforeEachCode, setCellDecorators, setCurrentHeader, setInvalidHeaderPolicy, setLocale, setRelaxedMode, setRelaxedMode, setValidationMode, setValidationMode, sortRulesList, splitDefinitonCell, storeUserRightsLine, warn, warnpublic MultiThreadedImpExImportReader(java.lang.String lines)
public MultiThreadedImpExImportReader(CSVReader reader)
public MultiThreadedImpExImportReader(CSVReader reader, boolean legacyMode)
public MultiThreadedImpExImportReader(CSVReader reader, CSVWriter dumpWriter)
public MultiThreadedImpExImportReader(CSVReader reader, CSVWriter dumpWriter, MultiThreadedImportProcessor processor)
public MultiThreadedImpExImportReader(CSVReader reader, CSVWriter dumpWriter, MultiThreadedImportProcessor processor, boolean legacyMode)
public MultiThreadedImpExImportReader(CSVReader reader, CSVWriter dumpWriter, DocumentIDRegistry docIDRegistry, MultiThreadedImportProcessor processor, EnumerationValue mode)
public void setDumpingAllowed(boolean dumpingAllowed)
setDumpingAllowed in class ImpExImportReaderpublic void discardNextLine()
discardNextLine in class ImpExImportReaderpublic void dumpNextLine(java.lang.String reason)
dumpNextLine in class ImpExImportReaderreason - message stored with value line to dump describing reason for dumpingpublic java.lang.Object readLine()
throws ImpExException
readLine in class ImpExImportReaderImpExException - any import/export error except UnresolvedValueException, which is handled internallyprotected de.hybris.platform.impex.jalo.imp.MultiThreadedImpExImportReader.InitialThreads getInitialThreads()
protected final void postProcessValueLine(ValueLine currentValueLine, Item ret, java.lang.Exception error) throws ImpExException
postProcessValueLine in class ImpExImportReaderImpExExceptionprotected final Item processLine(ValueLine valueLine) throws ImpExException
dummy item instance -
don't use it!processLine in class ImpExImportReaderImpExExceptionprotected void writeUserRightsLines()
throws ImpExException
writeUserRightsLines in class ImpExReaderImpExException - there were no user rights for import.protected HeaderDescriptor createNewHeader(java.util.Map<java.lang.Integer,java.lang.String> line) throws HeaderValidationException
createNewHeader in class ImpExReaderline - line for which a header object is neededHeaderValidationException - header is not validpublic void setCurrentHeader(HeaderDescriptor header)
ImpExConstants.Syntax.Modifier#PARALLEL .setCurrentHeader in class ImpExImportReaderheader - the header which will be used from now as header for read value linesprotected boolean readLineFromWorker()
throws ImpExException
ImpExReaderWorker asynchronously.ImpExExceptionprotected boolean processPendingResult(ImpExWorkerResult result)
protected boolean mustMarkLineAsUnresolved(ImpExWorkerResult result, ValueLine line)
protected void postProcessValueLineInternal(ValueLine currentValueLine, AbstractProcessResult ret, java.lang.Exception error) throws ImpExException
currentValueLine - the value lineret - the import resulterror - ImpExExceptionprotected boolean ensureValidHeaderOrMarkUnresolved(ValueLine valueLine)
ensureValidHeaderOrMarkUnresolved in class ImpExImportReaderprotected ValueLine fetchNextValueLine(ImpExWorker worker)
protected ImpExWorkerResult fetchNextWorkerResult()
protected void addResult(ImpExWorkerResult result)
protected boolean hasUnrecoverableError(ImpExWorkerResult result)
protected void handOffToResultProcessorWorker(ImpExWorkerResult result)
protected Item processValueLineFromWorker(ValueLine line) throws ImpExException
ImpExWorker to trigger item data processing e.g. create, update or removal.line - ImpExExceptionprotected final boolean isInParallelMode()
protected void execute(AbstractCodeLine line, java.util.Map csvLine, boolean forEachMode) throws ImpExException
execute in class ImpExReaderline - the code linecsvLine - current line object for context variable 'line'forEachMode - is the reason for execution not the normal script processing, instead it is a execution reasoned by a
forEach marker?ImpExException - error while code executionprotected int tryAllocateWorkers(int amount)
protected void addNewWorker(PoolableThread poolableThread, int workerIndex)
protected ImpExWorker createWorker(PoolableThread poolableThread, int number)
protected PoolableThread tryToBorrowThread()
protected PoolableThread tryToBorrowThread(ThreadPool threadPool)
protected boolean isReaderFinished()
protected boolean isResultProcessorFinished()
protected boolean isAllWorkerFinished()
public ImpExLogFilter getLogFilter()
public void setLogFilter(ImpExLogFilter logFilter)
public int getMaxThreads()
public void setMaxThreads(int requested)
protected int getAllocatedThreads()
Copyright © 2018 SAP SE. All Rights Reserved.