diff options
| author | bculkin2442 <bjculkin@mix.wvu.edu> | 2019-09-09 19:27:05 -0400 |
|---|---|---|
| committer | bculkin2442 <bjculkin@mix.wvu.edu> | 2019-09-09 19:27:05 -0400 |
| commit | e60131eb4ead92f3ab1caf29d9c89d5d507092d5 (patch) | |
| tree | 3dc2a137a71372cc8c73c83aa12a3505a9401431 /src/main/java/bjc/everge/BadReplParse.java | |
| parent | 9379692f9cfa436af7ad1ffd3bbd489802a86d4a (diff) | |
General cleanliness pass
Diffstat (limited to 'src/main/java/bjc/everge/BadReplParse.java')
| -rw-r--r-- | src/main/java/bjc/everge/BadReplParse.java | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/src/main/java/bjc/everge/BadReplParse.java b/src/main/java/bjc/everge/BadReplParse.java new file mode 100644 index 0000000..e3858af --- /dev/null +++ b/src/main/java/bjc/everge/BadReplParse.java @@ -0,0 +1,88 @@ +package bjc.everge; + +import java.util.ArrayList; +import java.util.List; +/** + * Exception thrown when ReplPair parsing fails + * @author bjculkin + * + */ +public class BadReplParse extends RuntimeException { + /** + * Serialization ID. + */ + private static final long serialVersionUID = 4752304282380556849L; + /** + * The errors that were encountered during parsing. + */ + public List<ReplError> errs; + + /** + * Create a new exception for ReplPair parsing failing. + * + * @param msg + * The message for the exception. + */ + public BadReplParse(String msg) { + this(msg, new ArrayList<>()); + } + + /** + * Create a new exception for ReplPair parsing failing. + * + * @param msg + * The message for the exception. + * @param errs + * The list of errors encountered while parsing. + */ + public BadReplParse(String msg, List<ReplError> errs) { + super(msg); + + this.errs = errs; + } + + @Override + public String toString() { + String errString; + if (errs.size() == 0) errString = "An error"; + else errString = "Errors"; + + return String.format("%s occured parsing replacement pairs: %s\n%s", + errString, getMessage(), errs); + } + + /** + * Convert the exception to a printable format. + * + * @return The exception as a printable format. + */ + public String toPrintString() { + StringBuilder errString = new StringBuilder("[ERROR] "); + + if (errs.size() == 0) { + errString.append("No specific errors"); + } else if (errs.size() == 1) { + errString.append("An error"); + } else { + errString.append(errs.size()); + errString.append(" errors"); + } + + errString.append(" occured parsing replacement pairs:"); + if (!getMessage().equals("")) { + errString.append(" "); + errString.append(getMessage()); + } + + if (errs.size() > 0) { + errString.append("\n\t"); + + for (ReplError err : errs) { + errString.append(err.toPrintString("\t")); + errString.append("\n\t"); + } + } + + return errString.toString().trim(); + } +} |
