package org.openstack.atlas.api.filters.helpers; import java.util.ArrayList; import java.util.List; import java.util.regex.Pattern; import java.util.regex.Matcher; import javax.xml.bind.ValidationEvent; import javax.xml.bind.ValidationEventHandler; import javax.xml.bind.ValidationEventLocator; public class XmlValidationExceptionHandler implements ValidationEventHandler { List<String> errList; static final Pattern cvsRe = Pattern.compile("^([^:]*):(.*)$"); public XmlValidationExceptionHandler() { errList = new ArrayList<String>(); } @Override public boolean handleEvent(ValidationEvent ve) { String errFormat = "Message is %s Column is %d at line number %d\n"; ValidationEventLocator l; int lineNum; int colNum; String msg; if (ve.getSeverity() == ve.FATAL_ERROR || ve.getSeverity() == ve.ERROR) { l = ve.getLocator(); lineNum = l.getLineNumber(); colNum = l.getColumnNumber(); msg = ve.getMessage(); Matcher cvsMatcher = cvsRe.matcher(msg); if(cvsMatcher.find()) { msg = cvsMatcher.group(2).trim(); } errList.add(msg); } return true; } public List<String> getErrList() { return errList; } public void setErrList(List<String> errList) { this.errList = errList; } }