package com.bitmonlab.osiris.core.validations.rest.violationProcessor;
import java.util.Collection;
import javax.validation.ConstraintViolation;
import com.bitmonlab.osiris.core.validations.aspect.contractViolationProcessor.api.MethodContractViolationProcessor;
/**
*
* Class that process the violations in the rest layer.
*/
public class RestViolationProcessor implements MethodContractViolationProcessor{
public void processMethodParameterValidation(Collection<ConstraintViolation<Object>> violations) throws Exception {
String constraintMessage = "";
if (!violations.isEmpty()){
try {
for (ConstraintViolation<Object> constraintViolation : violations) {
if(!(constraintViolation.getInvalidValue() instanceof Collection)){
constraintMessage += constraintViolation.getMessage() + " Value:" +constraintViolation.getInvalidValue() + " ,";
}else{
constraintMessage += constraintViolation.getMessage() + " ,";
}
}
constraintMessage = constraintMessage.substring(0, constraintMessage.length() - 2);
} catch (Throwable e) {// I don't trust it works in every case
e.printStackTrace();
}
throw new InvalidParametersException(constraintMessage);
}
}
public void processMethodReturnValueValidation(Collection<ConstraintViolation<Object>> violations) throws Exception {
}
}