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 voidafterResolutionAttempt(CsvData data, Conflict conflict) voidattemptToResolve(ResolvedData resolvedData, CsvData data, AbstractDatabaseWriter writer, Conflict conflict) protected voidbeforeResolutionAttempt(CsvData data, Conflict conflict) protected abstract voidcaptureMissingDelete(Conflict conflict, AbstractDatabaseWriter writer, CsvData data) protected abstract booleancheckForForeignKeyChildExistsViolation(AbstractDatabaseWriter writer, CsvData data, Conflict conflict, Throwable ex) protected abstract booleancheckForUniqueKeyViolation(AbstractDatabaseWriter writer, CsvData csvData, Conflict conflict, Throwable ex, boolean isFallback) protected abstract booleanprotected voidcheckIfTransactionAborted(AbstractDatabaseWriter writer, CsvData csvData, Conflict conflict) protected voidignore(AbstractDatabaseWriter writer, Conflict conflict) protected voidignoreRow(AbstractDatabaseWriter writer) protected abstract booleanisCaptureTimeNewer(Conflict conflict, AbstractDatabaseWriter writer, CsvData data, String tableName) protected abstract booleanisConflictingLosingParentRow(AbstractDatabaseWriter writer, CsvData data) booleanisIgnoreRow(AbstractDatabaseWriter writer, CsvData data) protected abstract booleanisTimestampNewer(Conflict conflict, AbstractDatabaseWriter writer, CsvData data) protected abstract booleanisVersionNewer(Conflict conflict, AbstractDatabaseWriter writer, CsvData data) protected voidlogConflictHappened(Conflict conflict, CsvData data, AbstractDatabaseWriter writer, ResolvedData resolvedData, long lineNumber) protected voidlogConflictResolution(Conflict conflict, CsvData data, AbstractDatabaseWriter writer, ResolvedData resolvedData, long lineNumber) voidneedsResolved(AbstractDatabaseWriter writer, CsvData data, AbstractDatabaseWriter.LoadStatus loadStatus) protected AbstractDatabaseWriter.LoadStatusperformChainedFallbackForDelete(AbstractDatabaseWriter writer, CsvData data, Conflict conflict) protected voidperformChainedFallbackForInsert(AbstractDatabaseWriter writer, CsvData data, Conflict conflict) protected voidperformChainedFallbackForUpdate(AbstractDatabaseWriter writer, CsvData data, Conflict conflict) protected voidperformChainedFallbackForUpdateNoException(AbstractDatabaseWriter writer, CsvData data, Conflict conflict) protected voidperformChainedFallbackForUpdateWithException(AbstractDatabaseWriter writer, CsvData data, Conflict conflict) protected voidperformFallbackToInsert(AbstractDatabaseWriter writer, CsvData csvData, Conflict conflict, boolean retransform) protected voidperformFallbackToUpdate(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:
needsResolvedin 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:
attemptToResolvein 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:
isIgnoreRowin interfaceIDatabaseWriterConflictResolver
-