package net.techreadiness.service.exception; import java.util.List; import java.util.Map; import javax.xml.ws.WebFault; import net.techreadiness.service.common.ValidationError; import com.google.common.collect.Lists; import com.google.common.collect.Maps; @WebFault(name = "ServiceFault") public class ValidationServiceException extends ServiceException { private static final long serialVersionUID = 1L; public ValidationServiceException() { } public ValidationServiceException(String message) { super(message); } public ValidationServiceException(String message, FaultInfo faultInfo) { super(message, faultInfo); } public ValidationServiceException(FaultInfo faultInfo) { super(faultInfo); } public Map<String, List<String>> getErrorMap() { return getErrorMap(null); } public Map<String, List<String>> getErrorMap(String baseFieldName) { Map<String, List<String>> errors = Maps.newHashMap(); for (ValidationError error : getFaultInfo().getAttributeErrors()) { String fieldName = (baseFieldName == null ? "" : baseFieldName + ".") + error.getFieldName(); if (!errors.containsKey(fieldName)) { errors.put(fieldName, Lists.<String> newArrayList()); } errors.get(fieldName).add(error.getOnlineMessage()); } return errors; } public Map<String, List<String>> getBatchErrorMap() { Map<String, List<String>> errors = Maps.newHashMap(); for (ValidationError error : getFaultInfo().getAttributeErrors()) { String batchErrorCode = error.getBatchCode(); if (!errors.containsKey(batchErrorCode)) { errors.put(batchErrorCode, Lists.<String> newArrayList()); } errors.get(batchErrorCode).add(error.getBatchMessage()); } return errors; } }