com.softicar.platform.common.core.constant.container.validator.AbstractConstantContainerFieldValueValidator Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of platform-common Show documentation
Show all versions of platform-common Show documentation
The SoftiCAR Platform is a lightweight, Java-based library to create interactive business web applications.
package com.softicar.platform.common.core.constant.container.validator;
import com.softicar.platform.common.core.constant.container.field.IConstantContainerField;
import com.softicar.platform.common.core.constant.container.validator.error.ConstantContainerFieldValueUndefinedError;
import com.softicar.platform.common.core.constant.container.validator.result.ConstantContainerValidatorResult;
import java.util.Optional;
public abstract class AbstractConstantContainerFieldValueValidator implements IConstantContainerValidator {
protected final IConstantContainerField field;
public AbstractConstantContainerFieldValueValidator(IConstantContainerField field) {
this.field = field;
}
@Override
public final void validate(ConstantContainerValidatorResult result) {
getFieldValue(result).ifPresent(fieldValue -> validate(result, fieldValue));
}
protected abstract void validate(ConstantContainerValidatorResult result, T fieldValue);
private Optional getFieldValue(ConstantContainerValidatorResult result) {
T value = field.getValue();
if (value != null) {
return Optional.of(value);
} else {
result.addError(new ConstantContainerFieldValueUndefinedError<>(field));
return Optional.empty();
}
}
}