package com.constellio.app.modules.rm.model.validators;
import com.constellio.app.modules.rm.services.RMSchemasRecordsServices;
import com.constellio.app.modules.rm.wrappers.type.MediumType;
import com.constellio.app.services.factories.AppLayerFactory;
import com.constellio.model.entities.schemas.Schemas;
import com.constellio.model.entities.schemas.validation.RecordValidator;
import com.constellio.model.services.records.RecordImplRuntimeException;
import com.constellio.model.services.records.RecordValidatorParams;
import java.util.HashMap;
import java.util.Map;
/**
* Created by Charles Blanchette on 2017-03-22.
*/
public class MediumTypeValidator implements RecordValidator {
public static final String DM_CODE_MUST_NOT_BE_MODIFIED = "DMcodeMustNotBeModified";
public static final String CODE = "code";
@Override
public void validate(RecordValidatorParams params) {
MediumType mediumType = new MediumType(params.getValidatedRecord(), params.getTypes());
validate(mediumType, params);
}
private void validate(MediumType mediumType, RecordValidatorParams params) {
try {
String oldCode = mediumType.getWrappedRecord().getCopyOfOriginalRecord().get(Schemas.CODE);
if (oldCode.equals("DM") && !oldCode.equals(mediumType.getCode())) {
Map<String, Object> parameters = new HashMap<>();
parameters.put(CODE, mediumType.getCode());
params.getValidationErrors().add(MediumTypeValidator.class, DM_CODE_MUST_NOT_BE_MODIFIED, parameters);
}
} catch (RecordImplRuntimeException.RecordImplException_UnsupportedOperationOnUnsavedRecord e) {
}
}
}