package com.constellio.model.entities.records; import com.constellio.data.dao.dto.records.OptimisticLockingResolution; import com.constellio.data.dao.dto.records.RecordsFlushing; public class RecordUpdateOptions { private TransactionRecordsReindexation transactionRecordsReindexation = new TransactionRecordsReindexation(); private OptimisticLockingResolution resolution = OptimisticLockingResolution.TRY_MERGE; private RecordsFlushing recordsFlushing = RecordsFlushing.NOW; private boolean skipReferenceValidation = false; private boolean updateModificationInfos = true; private boolean fullRewrite = false; private boolean validationsEnabled = true; private boolean unicityValidationsEnabled = true; private boolean skipMaskedMetadataValidations = false; private boolean skipUSRMetadatasRequirementValidations = false; private boolean catchExtensionsExceptions = false; private boolean catchExtensionsValidationsErrors = false; private boolean catchBrokenReferenceErrors = false; boolean skippingRequiredValuesValidation = false; private boolean skippingReferenceToLogicallyDeletedValidation = false; boolean allowSchemaTypeLockedRecordsModification = false; public RecordUpdateOptions() { } public RecordUpdateOptions(RecordUpdateOptions copy) { this.transactionRecordsReindexation = copy.transactionRecordsReindexation; this.resolution = copy.resolution; this.recordsFlushing = copy.recordsFlushing; this.skipReferenceValidation = copy.skipReferenceValidation; this.updateModificationInfos = copy.updateModificationInfos; this.fullRewrite = copy.fullRewrite; this.validationsEnabled = copy.validationsEnabled; this.unicityValidationsEnabled = copy.unicityValidationsEnabled; this.skipMaskedMetadataValidations = copy.skipMaskedMetadataValidations; this.catchExtensionsExceptions = copy.catchExtensionsExceptions; this.catchExtensionsValidationsErrors = copy.catchExtensionsValidationsErrors; this.catchBrokenReferenceErrors = copy.catchBrokenReferenceErrors; this.skipUSRMetadatasRequirementValidations = copy.skipUSRMetadatasRequirementValidations; this.skippingRequiredValuesValidation = copy.skippingRequiredValuesValidation; this.skippingReferenceToLogicallyDeletedValidation = copy.skippingReferenceToLogicallyDeletedValidation; } public boolean isAllowSchemaTypeLockedRecordsModification() { return allowSchemaTypeLockedRecordsModification; } public RecordUpdateOptions setAllowSchemaTypeLockedRecordsModification(boolean allowSchemaTypeLockedRecordsModification) { this.allowSchemaTypeLockedRecordsModification = allowSchemaTypeLockedRecordsModification; return this; } public boolean isSkipUSRMetadatasRequirementValidations() { return skipUSRMetadatasRequirementValidations; } public RecordUpdateOptions setSkipUSRMetadatasRequirementValidations(boolean skipUSRMetadatasRequirementValidations) { this.skipUSRMetadatasRequirementValidations = skipUSRMetadatasRequirementValidations; return this; } public boolean isSkipMaskedMetadataValidations() { return skipMaskedMetadataValidations; } public RecordUpdateOptions setSkipMaskedMetadataValidations(boolean skipMaskedMetadataValidations) { this.skipMaskedMetadataValidations = skipMaskedMetadataValidations; return this; } public RecordUpdateOptions setForcedReindexationOfMetadatas(TransactionRecordsReindexation transactionRecordsReindexation) { this.transactionRecordsReindexation = transactionRecordsReindexation; return this; } public RecordUpdateOptions onOptimisticLocking(OptimisticLockingResolution resolution) { this.resolution = resolution; return this; } public TransactionRecordsReindexation getTransactionRecordsReindexation() { return transactionRecordsReindexation; } public OptimisticLockingResolution getOptimisticLockingResolution() { return resolution; } public RecordUpdateOptions setOptimisticLockingResolution(OptimisticLockingResolution resolution) { this.resolution = resolution; return this; } public RecordsFlushing getRecordsFlushing() { return recordsFlushing; } public RecordUpdateOptions setRecordsFlushing(RecordsFlushing recordsFlushing) { this.recordsFlushing = recordsFlushing; return this; } public boolean isSkipReferenceValidation() { return skipReferenceValidation; } public RecordUpdateOptions setSkipReferenceValidation(boolean skipReferenceValidation) { this.skipReferenceValidation = skipReferenceValidation; return this; } public boolean isUpdateModificationInfos() { return updateModificationInfos; } public RecordUpdateOptions setUpdateModificationInfos(boolean updateModificationInfos) { this.updateModificationInfos = updateModificationInfos; return this; } public boolean isFullRewrite() { return fullRewrite; } public RecordUpdateOptions setFullRewrite(boolean fullRewrite) { this.fullRewrite = fullRewrite; return this; } public boolean isValidationsEnabled() { return validationsEnabled; } public RecordUpdateOptions setValidationsEnabled(boolean validationsEnabled) { this.validationsEnabled = validationsEnabled; return this; } public boolean isUnicityValidationsEnabled() { return unicityValidationsEnabled; } public RecordUpdateOptions setUnicityValidationsEnabled(boolean unicityValidationsEnabled) { this.unicityValidationsEnabled = unicityValidationsEnabled; return this; } public boolean isSkippingRequiredValuesValidation() { return skippingRequiredValuesValidation; } public RecordUpdateOptions setSkippingRequiredValuesValidation(boolean skippingRequiredValuesValidation) { this.skippingRequiredValuesValidation = skippingRequiredValuesValidation; return this; } public boolean isSkippingReferenceToLogicallyDeletedValidation() { return skippingReferenceToLogicallyDeletedValidation; } public RecordUpdateOptions setSkippingReferenceToLogicallyDeletedValidation( boolean skippingReferenceToLogicallyDeletedValidation) { this.skippingReferenceToLogicallyDeletedValidation = skippingReferenceToLogicallyDeletedValidation; return this; } public static RecordUpdateOptions validationExceptionSafeOptions() { return new RecordUpdateOptions().setSkipReferenceValidation(true).setValidationsEnabled(false) .setSkipMaskedMetadataValidations(true).setUnicityValidationsEnabled(false) .setSkippingReferenceToLogicallyDeletedValidation(true).setSkippingRequiredValuesValidation(true) .setCatchExtensionsExceptions(true).setCatchExtensionsValidationsErrors(true).setCatchBrokenReferenceErrors(true); } public boolean isCatchExtensionsExceptions() { return catchExtensionsExceptions; } public RecordUpdateOptions setCatchExtensionsExceptions(boolean catchExtensionsExceptions) { this.catchExtensionsExceptions = catchExtensionsExceptions; return this; } public boolean isCatchExtensionsValidationsErrors() { return catchExtensionsValidationsErrors; } public RecordUpdateOptions setCatchExtensionsValidationsErrors(boolean catchExtensionsValidationsErrors) { this.catchExtensionsValidationsErrors = catchExtensionsValidationsErrors; return this; } public boolean isCatchBrokenReferenceErrors() { return catchBrokenReferenceErrors; } public RecordUpdateOptions setCatchBrokenReferenceErrors(boolean catchBrokenReferenceErrors) { this.catchBrokenReferenceErrors = catchBrokenReferenceErrors; return this; } }