package com.constellio.model.extensions.behaviors;
import com.constellio.data.frameworks.extensions.ExtensionBooleanResult;
import com.constellio.model.entities.records.Record;
import com.constellio.model.entities.records.wrappers.User;
import com.constellio.model.extensions.events.records.RecordCreationEvent;
import com.constellio.model.extensions.events.records.RecordInCreationBeforeSaveEvent;
import com.constellio.model.extensions.events.records.RecordInCreationBeforeValidationAndAutomaticValuesCalculationEvent;
import com.constellio.model.extensions.events.records.RecordInModificationBeforeSaveEvent;
import com.constellio.model.extensions.events.records.RecordInModificationBeforeValidationAndAutomaticValuesCalculationEvent;
import com.constellio.model.extensions.events.records.RecordLogicalDeletionEvent;
import com.constellio.model.extensions.events.records.RecordLogicalDeletionValidationEvent;
import com.constellio.model.extensions.events.records.RecordModificationEvent;
import com.constellio.model.extensions.events.records.RecordPhysicalDeletionEvent;
import com.constellio.model.extensions.events.records.RecordPhysicalDeletionValidationEvent;
import com.constellio.model.extensions.events.records.RecordRestorationEvent;
import com.constellio.model.extensions.events.records.RecordSetCategoryEvent;
import com.constellio.model.extensions.events.records.TransactionExecutionBeforeSaveEvent;
public class RecordExtension {
public ExtensionBooleanResult isLogicallyDeletable(RecordLogicalDeletionValidationEvent event) {
return ExtensionBooleanResult.NOT_APPLICABLE;
}
public ExtensionBooleanResult isPhysicallyDeletable(RecordPhysicalDeletionValidationEvent event) {
return ExtensionBooleanResult.NOT_APPLICABLE;
}
public void recordInCreationBeforeValidationAndAutomaticValuesCalculation(
RecordInCreationBeforeValidationAndAutomaticValuesCalculationEvent event) {
}
public void recordInModificationBeforeValidationAndAutomaticValuesCalculation(
RecordInModificationBeforeValidationAndAutomaticValuesCalculationEvent event) {
}
public void recordInCreationBeforeSave(RecordInCreationBeforeSaveEvent event) {
}
public void recordInModificationBeforeSave(RecordInModificationBeforeSaveEvent event) {
}
public void recordCreated(RecordCreationEvent event) {
}
public void recordModified(RecordModificationEvent event) {
}
public void recordLogicallyDeleted(RecordLogicalDeletionEvent event) {
}
public void recordPhysicallyDeleted(RecordPhysicalDeletionEvent event) {
}
public void recordRestored(RecordRestorationEvent event) {
}
public void setRecordCategory(RecordSetCategoryEvent event) {
}
public void transactionExecutionBeforeSave(TransactionExecutionBeforeSaveEvent event) {
}
public ExtensionBooleanResult isRecordModifiableBy(IsRecordModifiableByParams params) {
return ExtensionBooleanResult.NOT_APPLICABLE;
}
public static class IsRecordModifiableByParams {
Record record;
User user;
public IsRecordModifiableByParams(Record record, User user) {
this.record = record;
this.user = user;
}
public Record getRecord() {
return record;
}
public User getUser() {
return user;
}
public boolean isSchemaType(String schemaType) {
return record.getSchemaCode().startsWith(schemaType + "_");
}
}
}