Class AbstractDatabaseWriterConflictResolver
java.lang.Object
org.jumpmind.symmetric.io.data.writer.AbstractDatabaseWriterConflictResolver
- All Implemented Interfaces:
IExtensionPoint
,IDatabaseWriterConflictResolver
- Direct Known Subclasses:
DefaultDatabaseWriterConflictResolver
public abstract class AbstractDatabaseWriterConflictResolver
extends Object
implements IDatabaseWriterConflictResolver
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected void
afterResolutionAttempt
(CsvData data, Conflict conflict) void
attemptToResolve
(ResolvedData resolvedData, CsvData data, AbstractDatabaseWriter writer, Conflict conflict) protected void
beforeResolutionAttempt
(CsvData data, Conflict conflict) protected abstract void
captureMissingDelete
(Conflict conflict, AbstractDatabaseWriter writer, CsvData data) protected abstract boolean
checkForForeignKeyChildExistsViolation
(AbstractDatabaseWriter writer, CsvData data, Conflict conflict, Throwable ex) protected abstract boolean
checkForUniqueKeyViolation
(AbstractDatabaseWriter writer, CsvData csvData, Conflict conflict, Throwable ex, boolean isFallback) protected abstract boolean
protected void
checkIfTransactionAborted
(AbstractDatabaseWriter writer, CsvData csvData, Conflict conflict) protected void
ignore
(AbstractDatabaseWriter writer, Conflict conflict) protected void
ignoreRow
(AbstractDatabaseWriter writer) protected abstract boolean
isCaptureTimeNewer
(Conflict conflict, AbstractDatabaseWriter writer, CsvData data, String tableName) protected abstract boolean
isConflictingLosingParentRow
(AbstractDatabaseWriter writer, CsvData data) boolean
isIgnoreRow
(AbstractDatabaseWriter writer, CsvData data) protected abstract boolean
isTimestampNewer
(Conflict conflict, AbstractDatabaseWriter writer, CsvData data) protected abstract boolean
isVersionNewer
(Conflict conflict, AbstractDatabaseWriter writer, CsvData data) protected void
logConflictHappened
(Conflict conflict, CsvData data, AbstractDatabaseWriter writer, ResolvedData resolvedData, long lineNumber) protected void
logConflictResolution
(Conflict conflict, CsvData data, AbstractDatabaseWriter writer, ResolvedData resolvedData, long lineNumber) void
needsResolved
(AbstractDatabaseWriter writer, CsvData data, AbstractDatabaseWriter.LoadStatus loadStatus) protected AbstractDatabaseWriter.LoadStatus
performChainedFallbackForDelete
(AbstractDatabaseWriter writer, CsvData data, Conflict conflict) protected void
performChainedFallbackForInsert
(AbstractDatabaseWriter writer, CsvData data, Conflict conflict) protected void
performChainedFallbackForUpdate
(AbstractDatabaseWriter writer, CsvData data, Conflict conflict) protected void
performChainedFallbackForUpdateNoException
(AbstractDatabaseWriter writer, CsvData data, Conflict conflict) protected void
performChainedFallbackForUpdateWithException
(AbstractDatabaseWriter writer, CsvData data, Conflict conflict) protected void
performFallbackToInsert
(AbstractDatabaseWriter writer, CsvData csvData, Conflict conflict, boolean retransform) protected void
performFallbackToUpdate
(AbstractDatabaseWriter writer, CsvData data, Conflict conflict, boolean retransform)
-
Field Details
-
log
protected org.slf4j.Logger log
-
-
Constructor Details
-
AbstractDatabaseWriterConflictResolver
public AbstractDatabaseWriterConflictResolver()
-
-
Method Details
-
needsResolved
public void needsResolved(AbstractDatabaseWriter writer, CsvData data, AbstractDatabaseWriter.LoadStatus loadStatus) - Specified by:
needsResolved
in interfaceIDatabaseWriterConflictResolver
-
performChainedFallbackForInsert
protected void performChainedFallbackForInsert(AbstractDatabaseWriter writer, CsvData data, Conflict conflict) -
performChainedFallbackForUpdate
protected void performChainedFallbackForUpdate(AbstractDatabaseWriter writer, CsvData data, Conflict conflict) -
performChainedFallbackForUpdateWithException
protected void performChainedFallbackForUpdateWithException(AbstractDatabaseWriter writer, CsvData data, Conflict conflict) -
performChainedFallbackForUpdateNoException
protected void performChainedFallbackForUpdateNoException(AbstractDatabaseWriter writer, CsvData data, Conflict conflict) -
performChainedFallbackForDelete
protected AbstractDatabaseWriter.LoadStatus performChainedFallbackForDelete(AbstractDatabaseWriter writer, CsvData data, Conflict conflict) -
beforeResolutionAttempt
-
afterResolutionAttempt
-
logConflictHappened
protected void logConflictHappened(Conflict conflict, CsvData data, AbstractDatabaseWriter writer, ResolvedData resolvedData, long lineNumber) -
logConflictResolution
protected void logConflictResolution(Conflict conflict, CsvData data, AbstractDatabaseWriter writer, ResolvedData resolvedData, long lineNumber) -
ignore
-
attemptToResolve
public void attemptToResolve(ResolvedData resolvedData, CsvData data, AbstractDatabaseWriter writer, Conflict conflict) - Specified by:
attemptToResolve
in interfaceIDatabaseWriterConflictResolver
-
isTimestampNewer
protected abstract boolean isTimestampNewer(Conflict conflict, AbstractDatabaseWriter writer, CsvData data) -
isCaptureTimeNewer
protected abstract boolean isCaptureTimeNewer(Conflict conflict, AbstractDatabaseWriter writer, CsvData data, String tableName) -
isVersionNewer
protected abstract boolean isVersionNewer(Conflict conflict, AbstractDatabaseWriter writer, CsvData data) -
captureMissingDelete
protected abstract void captureMissingDelete(Conflict conflict, AbstractDatabaseWriter writer, CsvData data) -
performFallbackToUpdate
protected void performFallbackToUpdate(AbstractDatabaseWriter writer, CsvData data, Conflict conflict, boolean retransform) -
performFallbackToInsert
protected void performFallbackToInsert(AbstractDatabaseWriter writer, CsvData csvData, Conflict conflict, boolean retransform) -
ignoreRow
-
checkIfTransactionAborted
protected void checkIfTransactionAborted(AbstractDatabaseWriter writer, CsvData csvData, Conflict conflict) -
checkForUniqueKeyViolation
protected abstract boolean checkForUniqueKeyViolation(AbstractDatabaseWriter writer, CsvData csvData, Conflict conflict, Throwable ex, boolean isFallback) -
checkForForeignKeyChildExistsViolation
protected abstract boolean checkForForeignKeyChildExistsViolation(AbstractDatabaseWriter writer, CsvData data, Conflict conflict, Throwable ex) -
isConflictingLosingParentRow
protected abstract boolean isConflictingLosingParentRow(AbstractDatabaseWriter writer, CsvData data) -
checkIfMismatchedPrimaryKey
-
isIgnoreRow
- Specified by:
isIgnoreRow
in interfaceIDatabaseWriterConflictResolver
-