package org.solrmarc.index.indexer; public class IndexerSpecException extends RuntimeException { public enum eErrorSeverity { NONE, INFO, WARN, ERROR, FATAL; public static eErrorSeverity max(eErrorSeverity errLvl1, eErrorSeverity errLvl2) { if (errLvl1.compareTo(errLvl2) > 0) return(errLvl1); else return (errLvl2); } }; private static final long serialVersionUID = 1L; // ErrorSpecification errMsgs; //Throwable cause; String solrField; String spec; eErrorSeverity errLvl; String message; public IndexerSpecException(Throwable cause, String solrField, String spec, eErrorSeverity errLvl, String message) { init(cause, solrField, spec, errLvl, message); } private void init(Throwable cause, String solrField, String spec, eErrorSeverity errLvl, String message) { this.initCause(cause); this.solrField = solrField; this.spec = spec; this.message = message; this.errLvl = errLvl; } public IndexerSpecException(String solrField, String spec, eErrorSeverity errLvl, String message) { init(null, solrField, spec, errLvl, message); } public IndexerSpecException(String solrField, String spec, String message) { init(null, solrField, spec, eErrorSeverity.ERROR, message); } public IndexerSpecException(String solrFieldAndSpec, eErrorSeverity errLvl, String message) { final String[] tmp = solrFieldAndSpec.split("[ ]*=[ ]*", 2); init(null, (tmp.length >= 1) ? tmp[0] : null, (tmp.length == 2) ? tmp[1] : null, errLvl, message); } public IndexerSpecException(String solrFieldAndSpec, String message) { final String[] tmp = solrFieldAndSpec.split("[ ]*=[ ]*", 2); init(null, (tmp.length >= 1) ? tmp[0] : null, (tmp.length == 2) ? tmp[1] : null, eErrorSeverity.ERROR, message); } public IndexerSpecException(Throwable cause, eErrorSeverity errLvl, String message) { init(cause, null, null, errLvl, message); } public IndexerSpecException(Throwable cause, String message) { init(cause, null, null, eErrorSeverity.ERROR, message); } public IndexerSpecException(eErrorSeverity errLvl, String message) { init(null, null, null, errLvl, message); } public IndexerSpecException(String message) { init(null, null, null, eErrorSeverity.ERROR, message); } public void setSolrFieldAndSpec(String solrField, String spec) { this.solrField = solrField; this.spec = spec; } public String message() { return message; } public String getSolrField() { return solrField; } public String getSpecMessage() { StringBuilder build = new StringBuilder(); if (solrField != null && spec != null) { build.append(solrField).append(" = ").append(spec); } return(build.toString()); } @Override public String getMessage() { StringBuilder build = new StringBuilder(); if (message != null) { if (solrField != null) build.append(solrField).append(" : ").append(message); else build.append(message); } return (build.toString()); } public void setSolrFieldAndSpec(final String solrFieldAndSpec) { String[] tmp = solrFieldAndSpec.split("[ ]*=[ ]*", 2); this.solrField = tmp[0]; this.spec = tmp[1]; } public eErrorSeverity getErrLvl() { return errLvl; } public void setErrLvl(eErrorSeverity errLvl) { this.errLvl = errLvl; } }