diff options
| author | bculkin2442 <bjculkin@mix.wvu.edu> | 2019-06-18 17:44:32 -0400 |
|---|---|---|
| committer | bculkin2442 <bjculkin@mix.wvu.edu> | 2019-06-18 17:44:32 -0400 |
| commit | d86cbcbabc4b251956bd2c5bf4dfa459a00bb239 (patch) | |
| tree | 082ad1a1aa76d2519a3226bbaf2f190f6aa931a9 /src/main/java/bjc/everge/ReplParseException.java | |
| parent | 1e01c5df99434be2e44bcac1d6c79486082935b1 (diff) | |
Lots of frontend work
Diffstat (limited to 'src/main/java/bjc/everge/ReplParseException.java')
| -rw-r--r-- | src/main/java/bjc/everge/ReplParseException.java | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/src/main/java/bjc/everge/ReplParseException.java b/src/main/java/bjc/everge/ReplParseException.java new file mode 100644 index 0000000..0091b83 --- /dev/null +++ b/src/main/java/bjc/everge/ReplParseException.java @@ -0,0 +1,58 @@ +package bjc.everge; + +import java.util.ArrayList; +import java.util.List; + +public class ReplParseException extends RuntimeException { + public List<ReplError> errs; + + public ReplParseException(String msg) { + this(msg, new ArrayList<>()); + } + + public ReplParseException(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); + } + + 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(); + } +} |
