From 4d449a9b96570e8c655fc303ca0ca81dab394e3d Mon Sep 17 00:00:00 2001 From: bculkin2442 Date: Wed, 20 May 2020 19:40:06 -0400 Subject: Update docs --- docs/jacoco-ut/bjc.everge/BadReplParse.html | 2 +- docs/jacoco-ut/bjc.everge/BadReplParse.java.html | 72 +- .../bjc.everge/ControlledString$Control.html | 2 +- .../bjc.everge/ControlledString$ParseStrings.html | 2 +- docs/jacoco-ut/bjc.everge/ControlledString.html | 2 +- .../bjc.everge/ControlledString.java.html | 248 +++--- docs/jacoco-ut/bjc.everge/Everge$InputStatus.html | 2 +- docs/jacoco-ut/bjc.everge/Everge.html | 2 +- docs/jacoco-ut/bjc.everge/Everge.java.html | 638 ++++++++------ docs/jacoco-ut/bjc.everge/IntHolder.java.html | 8 +- docs/jacoco-ut/bjc.everge/LogStream.html | 1 + docs/jacoco-ut/bjc.everge/LogStream.java.html | 315 +++++++ docs/jacoco-ut/bjc.everge/MirrorOutputStream.html | 1 + .../bjc.everge/MirrorOutputStream.java.html | 64 ++ docs/jacoco-ut/bjc.everge/ReplError.html | 2 +- docs/jacoco-ut/bjc.everge/ReplError.java.html | 50 +- docs/jacoco-ut/bjc.everge/ReplOpts.html | 2 +- docs/jacoco-ut/bjc.everge/ReplOpts.java.html | 56 +- docs/jacoco-ut/bjc.everge/ReplPair.html | 2 +- docs/jacoco-ut/bjc.everge/ReplPair.java.html | 953 +++++++++++---------- docs/jacoco-ut/bjc.everge/ReplSet.html | 2 +- docs/jacoco-ut/bjc.everge/ReplSet.java.html | 69 +- docs/jacoco-ut/bjc.everge/StageStatus.html | 2 +- docs/jacoco-ut/bjc.everge/StageStatus.java.html | 10 +- docs/jacoco-ut/bjc.everge/StringUtils.html | 2 +- docs/jacoco-ut/bjc.everge/StringUtils.java.html | 172 ++-- docs/jacoco-ut/bjc.everge/index.html | 2 +- docs/jacoco-ut/bjc.everge/index.source.html | 2 +- docs/jacoco-ut/index.html | 2 +- docs/jacoco-ut/jacoco-sessions.html | 2 +- docs/jacoco-ut/jacoco.csv | 20 +- docs/jacoco-ut/jacoco.xml | 2 +- 32 files changed, 1650 insertions(+), 1061 deletions(-) create mode 100644 docs/jacoco-ut/bjc.everge/LogStream.html create mode 100644 docs/jacoco-ut/bjc.everge/LogStream.java.html create mode 100644 docs/jacoco-ut/bjc.everge/MirrorOutputStream.html create mode 100644 docs/jacoco-ut/bjc.everge/MirrorOutputStream.java.html (limited to 'docs/jacoco-ut') diff --git a/docs/jacoco-ut/bjc.everge/BadReplParse.html b/docs/jacoco-ut/bjc.everge/BadReplParse.html index 967e289..c9ee17d 100644 --- a/docs/jacoco-ut/bjc.everge/BadReplParse.html +++ b/docs/jacoco-ut/bjc.everge/BadReplParse.html @@ -1 +1 @@ -BadReplParse

BadReplParse

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total59 of 12853%6 of 1250%710112724
toString()280%20%224411
toPrintString()246272%4660%4651801
BadReplParse(String)70%n/a112211
BadReplParse(String, List)7100%n/a010301
\ No newline at end of file +BadReplParse

BadReplParse

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total59 of 12853%6 of 1250%710122824
toString()280%20%225511
toPrintString()246272%4660%4651801
BadReplParse(String)70%n/a112211
BadReplParse(String, List)7100%n/a010301
\ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/BadReplParse.java.html b/docs/jacoco-ut/bjc.everge/BadReplParse.java.html index 4859e42..f8754f7 100644 --- a/docs/jacoco-ut/bjc.everge/BadReplParse.java.html +++ b/docs/jacoco-ut/bjc.everge/BadReplParse.java.html @@ -2,8 +2,10 @@ import java.util.ArrayList; import java.util.List; + /** * Exception thrown when ReplPair parsing fails + * * @author bjculkin * */ @@ -19,71 +21,73 @@ public class BadReplParse extends RuntimeException { /** * Create a new exception for ReplPair parsing failing. - * - * @param msg - * The message for the exception. + * + * @param msg + * The message for the exception. */ public BadReplParse(String msg) { - this(msg, new ArrayList<>()); - } + this(msg, new ArrayList<>()); + } /** * Create a new exception for ReplPair parsing failing. - * + * * @param msg - * The message for the exception. + * The message for the exception. * @param errs - * The list of errors encountered while parsing. + * The list of errors encountered while parsing. */ public BadReplParse(String msg, List<ReplError> errs) { - super(msg); + super(msg); - this.errs = errs; - } + this.errs = errs; + } @Override public String toString() { String errString; - if (errs.size() == 0) errString = "An error"; - else errString = "Errors"; + if (errs.size() == 0) + errString = "An error"; + else + errString = "Errors"; - return String.format("%s occured parsing replacement pairs: %s\n%s", - errString, getMessage(), errs); + 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] "); + StringBuilder errString = new StringBuilder("[ERROR] "); - if (errs.size() == 0) { - errString.append("No specific errors"); - } else if (errs.size() == 1) { - errString.append("An 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(errs.size()); + errString.append(" errors"); } - errString.append(" occured parsing replacement pairs:"); - if (!getMessage().equals("")) { - errString.append(" "); - errString.append(getMessage()); + errString.append(" occured parsing replacement pairs:"); + if (!getMessage().equals("")) { + errString.append(" "); + errString.append(getMessage()); } - if (errs.size() > 0) { - errString.append("\n\t"); + if (errs.size() > 0) { + errString.append("\n\t"); - for (ReplError err : errs) { - errString.append(err.toPrintString("\t")); - errString.append("\n\t"); - } + for (ReplError err : errs) { + errString.append(err.toPrintString("\t")); + errString.append("\n\t"); + } } - return errString.toString().trim(); + return errString.toString().trim(); } } \ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/ControlledString$Control.html b/docs/jacoco-ut/bjc.everge/ControlledString$Control.html index c08658b..1835f27 100644 --- a/docs/jacoco-ut/bjc.everge/ControlledString$Control.html +++ b/docs/jacoco-ut/bjc.everge/ControlledString$Control.html @@ -1 +1 @@ -ControlledString.Control

ControlledString.Control

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total132 of 23343%22 of 4450%2031214639
toString()480%60%448811
get(int)371224%2250%235801
hashCode()270%20%225511
equals(Object)176479%122062%111711401
ControlledString.Control()30%n/a112211
ControlledString.Control(String, String[])9100%n/a010401
ControlledString.Control(String)6100%n/a010301
C(String, String[])6100%n/a010101
count()4100%n/a010101
\ No newline at end of file +ControlledString.Control

ControlledString.Control

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total134 of 23843%23 of 4650%2132295539
toString()480%60%448811
get(int)371224%2250%236901
hashCode()270%20%225511
equals(Object)176479%122062%111782101
ControlledString.Control()30%n/a112211
count()2777%1150%120201
ControlledString.Control(String, String[])9100%n/a010401
ControlledString.Control(String)6100%n/a010301
C(String, String[])6100%n/a010101
\ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/ControlledString$ParseStrings.html b/docs/jacoco-ut/bjc.everge/ControlledString$ParseStrings.html index 980fe3f..b2fd81d 100644 --- a/docs/jacoco-ut/bjc.everge/ControlledString$ParseStrings.html +++ b/docs/jacoco-ut/bjc.everge/ControlledString$ParseStrings.html @@ -1 +1 @@ -ControlledString.ParseStrings

ControlledString.ParseStrings

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total8 of 2365%0 of 0n/a121712
PS(String, String, String, String)80%n/a111111
ControlledString.ParseStrings(String, String, String, String)15100%n/a010601
\ No newline at end of file +ControlledString.ParseStrings

ControlledString.ParseStrings

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total8 of 2365%0 of 0n/a121712
PS(String, String, String, String)80%n/a111111
ControlledString.ParseStrings(String, String, String, String)15100%n/a010601
\ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/ControlledString.html b/docs/jacoco-ut/bjc.everge/ControlledString.html index 9a5f89d..1867553 100644 --- a/docs/jacoco-ut/bjc.everge/ControlledString.html +++ b/docs/jacoco-ut/bjc.everge/ControlledString.html @@ -1 +1 @@ -ControlledString

ControlledString

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total74 of 21866%3 of 1883%516174337
toString()410%20%227711
parse(String, ControlledString.ParseStrings)1712287%11392%1832301
ControlledString(String, ControlledString.Control[])90%n/a114411
ControlledString()70%n/a113311
ControlledString(String)10100%n/a010401
hasControls()8100%2100%020101
count()4100%n/a010101
\ No newline at end of file +ControlledString

ControlledString

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total74 of 21866%3 of 1883%516174537
toString()410%20%227711
parse(String, ControlledString.ParseStrings)1712287%11392%1832501
ControlledString(String, ControlledString.Control[])90%n/a114411
ControlledString()70%n/a113311
ControlledString(String)10100%n/a010401
hasControls()8100%2100%020101
count()4100%n/a010101
\ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/ControlledString.java.html b/docs/jacoco-ut/bjc.everge/ControlledString.java.html index 9beba2e..43aaf29 100644 --- a/docs/jacoco-ut/bjc.everge/ControlledString.java.html +++ b/docs/jacoco-ut/bjc.everge/ControlledString.java.html @@ -35,7 +35,7 @@ public class ControlledString { * Create a new argless control. * * @param nam - * The name of the control. + * The name of the control. */ public Control(String nam) { name = nam; @@ -45,9 +45,9 @@ public class ControlledString { * Create a new control. * * @param nam - * The name of the control. + * The name of the control. * @param ars - * The arguments of the control. + * The arguments of the control. */ public Control(String nam, String... ars) { name = nam; @@ -60,97 +60,116 @@ public class ControlledString { * @return The number of arguments to this control. */ public int count() { - return args.length; + if (args == null) return 0; + + return args.length; } /** * Get an argument from the control. - * - * @param i The index of the argument to get. + * + * @param i + * The index of the argument to get. * @return The argument at that position. */ public String get(int i) { - if (i < 0) { - String msg = String.format("Control argument index must be greater than 0 (was %d)", i); + if (i < 0) { + String msg = String.format( + "Control argument index must be greater than 0 (was %d)", i); - throw new IllegalArgumentException(msg); + throw new IndexOutOfBoundsException(msg); } - if (i > args.length) { - String msg = String.format("Control argument index must be less than %d (was %d)", - args.length, i); + if (i > args.length) { + String msg = String.format( + "Control argument index must be less than %d (was %d)", + args.length, i); - throw new IllegalArgumentException(msg); + throw new IndexOutOfBoundsException(msg); } - return args[i]; + return args[i]; } @Override public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(name); + StringBuilder sb = new StringBuilder(); + sb.append(name); - if (args != null && args.length > 0) { - sb.append("/"); + if (args != null && args.length > 0) { + sb.append("/"); - for (String arg : args) { - sb.append(arg); - sb.append(";"); + for (String arg : args) { + sb.append(arg); + sb.append(";"); } } - return sb.toString(); + return sb.toString(); } @Override public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + Arrays.hashCode(args); - result = prime * result + ((name == null) ? 0 : name.hashCode()); - return result; + final int prime = 31; + int result = 1; + result = prime * result + Arrays.hashCode(args); + result = prime * result + ((name == null) ? 0 : name.hashCode()); + return result; } @Override public boolean equals(Object obj) { - if (this == obj) { return true; } - if (obj == null) { return false; } - if (getClass() != obj.getClass()) { return false; } + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } - Control other = (Control) obj; + Control other = (Control) obj; - if (name == null) { - if (other.name != null) { return false; } - } else if (!name.equals(other.name)) { return false; } + if (name == null) { + if (other.name != null) { + return false; + } + } else if (!name.equals(other.name)) { + return false; + } - boolean isArged = args != null && args.length > 0; - boolean oIsArged = other.args != null && other.args.length > 0; + boolean isArged = args != null && args.length > 0; + boolean oIsArged = other.args != null && other.args.length > 0; - if (isArged && !oIsArged) { return false; } - if (!isArged && oIsArged) { return false; } + if (isArged && !oIsArged) { + return false; + } + if (!isArged && oIsArged) { + return false; + } - if (isArged && oIsArged) { - return Arrays.equals(args, other.args); + if (isArged && oIsArged) { + return Arrays.equals(args, other.args); } - return true; + return true; } /** * Convenient static constructor for static imports. * * @param nam - * The name of the control. + * The name of the control. * @param ars - * The arguments to the control. + * The arguments to the control. * @return A control with the right parameters. */ public static Control C(String nam, String... ars) { - return new Control(nam, ars); + return new Control(nam, ars); } } - + /** * Parameter class for defining how to parse a ControlledString. * @@ -181,39 +200,41 @@ public class ControlledString { * Create a new set of parse strings. * * @param contInd - * The control indicator. + * The control indicator. * @param contSep - * The control separator. + * The control separator. * @param contArg - * The argument separator. + * The argument separator. * @param contEsc - * The control escape. + * The control escape. */ - public ParseStrings(String contInd, String contSep, String contArg, String contEsc) { - this.contInd = contInd; - this.contSep = contSep; - this.contArg = contArg; - this.contEsc = contEsc; - } + public ParseStrings(String contInd, String contSep, String contArg, + String contEsc) { + this.contInd = contInd; + this.contSep = contSep; + this.contArg = contArg; + this.contEsc = contEsc; + } /** * Convenient static constructor. * * @param contInd - * The control indicator. + * The control indicator. * @param contSep - * The control separator. + * The control separator. * @param contArg - * The argument separator. + * The argument separator. * @param contEsc - * The control escape. + * The control escape. * @return A new set of control strings. */ - public static ParseStrings PS(String contInd, String contSep, String contArg, String contEsc) { - return new ParseStrings(contInd, contSep, contArg, contEsc); + public static ParseStrings PS(String contInd, String contSep, String contArg, + String contEsc) { + return new ParseStrings(contInd, contSep, contArg, contEsc); } } - + /** * The string the controls apply to. */ @@ -227,35 +248,35 @@ public class ControlledString { /** * Create a new blank controlled string. */ - public ControlledString() { - controls = new Control[0]; - } + public ControlledString() { + controls = new Control[0]; + } /** * Create a new controlled string without any controls. * * @param strung - * The string to use. + * The string to use. */ - public ControlledString(String strung) { - strang = strung; + public ControlledString(String strung) { + strang = strung; - controls = new Control[0]; - } + controls = new Control[0]; + } /** * Create a new controlled string. * * @param strung - * The string to use. + * The string to use. * @param controls - * The controls that apply to the string. + * The controls that apply to the string. */ - public ControlledString(String strung, Control... controls) { - strang = strung; + public ControlledString(String strung, Control... controls) { + strang = strung; - this.controls = controls; - } + this.controls = controls; + } /** * Check if the string has controls. @@ -263,7 +284,7 @@ public class ControlledString { * @return Whether or not the string has controls. */ public boolean hasControls() { - return controls.length > 0; + return controls.length > 0; } /** @@ -272,7 +293,7 @@ public class ControlledString { * @return The number of controls for this string. */ public int count() { - return controls.length; + return controls.length; } /** @@ -281,71 +302,72 @@ public class ControlledString { * The controls must be parsed from the beginning of the string. * * @param lne - * The string to parse from. + * The string to parse from. * @param strangs - * The object to read the strings from + * The object to read the strings from * @return A parsed control string. */ - public static ControlledString parse(String lne, ParseStrings strangs) - { - if (!lne.startsWith(strangs.contInd)) { - return new ControlledString(lne); + public static ControlledString parse(String lne, ParseStrings strangs) { + if (!lne.startsWith(strangs.contInd)) { + return new ControlledString(lne); } - String[] bits = StringUtils.escapeSplit(strangs.contEsc, strangs.contInd, lne); + String[] bits = StringUtils.escapeSplit(strangs.contEsc, strangs.contInd, lne); - if (bits.length < 2) { - String msg = "Did not find control terminator (%s) where it should be"; - msg = String.format(msg, strangs.contInd); + if (bits.length < 2) { + String msg = "Did not find control terminator (%s) where it should be"; + msg = String.format(msg, strangs.contInd); - throw new IllegalArgumentException(msg); - } + throw new IllegalArgumentException(msg); + } - ControlledString cs = new ControlledString(bits[0]); - if (bits.length > 2) cs.strang = bits[2]; + ControlledString cs = new ControlledString(bits[0]); + if (bits.length > 2) + cs.strang = bits[2]; - bits = StringUtils.escapeSplit(strangs.contEsc, strangs.contSep, bits[1]); + bits = StringUtils.escapeSplit(strangs.contEsc, strangs.contSep, bits[1]); - cs.controls = new Control[bits.length]; + cs.controls = new Control[bits.length]; - for (int i = 0; i < bits.length; i++) { - String bit = bits[i]; + for (int i = 0; i < bits.length; i++) { + String bit = bits[i]; - String[] bots = StringUtils.escapeSplit(strangs.contEsc, strangs.contArg, bit); + String[] bots + = StringUtils.escapeSplit(strangs.contEsc, strangs.contArg, bit); - Control cont = new Control(bots[0]); + Control cont = new Control(bots[0]); - if (cont.name.length() > 1) { - cont.name = cont.name.toUpperCase(); + if (cont.name.length() > 1) { + cont.name = cont.name.toUpperCase(); } - if (bots.length > 1) { - cont.args = new String[bots.length - 1]; - for (int j = 1; j < bots.length; j++) { - cont.args[j - 1] = bots[j]; + if (bots.length > 1) { + cont.args = new String[bots.length - 1]; + for (int j = 1; j < bots.length; j++) { + cont.args[j - 1] = bots[j]; } } - cs.controls[i] = cont; + cs.controls[i] = cont; } - return cs; + return cs; } @Override public String toString() { - StringBuilder sb = new StringBuilder(); + StringBuilder sb = new StringBuilder(); - sb.append("//"); + sb.append("//"); - for (Control cont : controls) { - sb.append(cont); + for (Control cont : controls) { + sb.append(cont); } - sb.append("//"); - sb.append(strang); + sb.append("//"); + sb.append(strang); - return sb.toString(); + return sb.toString(); } } \ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/Everge$InputStatus.html b/docs/jacoco-ut/bjc.everge/Everge$InputStatus.html index 047e9e3..e3fe159 100644 --- a/docs/jacoco-ut/bjc.everge/Everge$InputStatus.html +++ b/docs/jacoco-ut/bjc.everge/Everge$InputStatus.html @@ -1 +1 @@ -Everge.InputStatus

Everge.InputStatus

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total0 of 34100%0 of 0n/a010401
static {...}34100%n/a010401
\ No newline at end of file +Everge.InputStatus

Everge.InputStatus

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total0 of 34100%0 of 0n/a010401
static {...}34100%n/a010401
\ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/Everge.html b/docs/jacoco-ut/bjc.everge/Everge.html index 7524fd9..98ba435 100644 --- a/docs/jacoco-ut/bjc.everge/Everge.html +++ b/docs/jacoco-ut/bjc.everge/Everge.html @@ -1 +1 @@ -Everge

Everge

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total538 of 85737%54 of 8334%415512419928
processArgs(List, String[])34611224%331226%25298811601
processInputFile(List, String)1334023%11321%78223301
processArgs(String[])280%40%337711
processInputFile(String)151346%3125%233701
main(String[])90%n/a113311
loadQueue(String[])77691%21083%2711301
Everge()41100%n/a0101101
processString(String)37100%1375%130901
\ No newline at end of file +Everge

Everge

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total568 of 1,08147%57 of 9741%4868137248313
processArg(List, boolean, String)36615629%331429%26319613301
processInputFile(List, String)1126034%9535%68243601
processArgs(String[])226574%6440%5631401
processInputFile(String)211338%3125%233701
loadQueue(String[])178082%31178%3831601
processString(String)105083%3350%3411201
main(String[])90%n/a113311
setError(PrintStream)70%n/a112211
setOutput(PrintStream)0%n/a112211
Everge()41100%n/a0101001
processArgs(List, String[])31100%2100%020901
setError(OutputStream)10100%n/a010201
setOutput(OutputStream)7100%n/a010201
\ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/Everge.java.html b/docs/jacoco-ut/bjc.everge/Everge.java.html index 82fd293..d4a06c1 100644 --- a/docs/jacoco-ut/bjc.everge/Everge.java.html +++ b/docs/jacoco-ut/bjc.everge/Everge.java.html @@ -1,15 +1,10 @@ Everge.java

Everge.java

package bjc.everge;
 
 import java.io.*;
-
-import java.nio.charset.Charset;
-
+import java.nio.charset.*;
 import java.nio.file.*;
-
 import java.util.*;
-
 import java.util.concurrent.locks.*;
-
 import java.util.regex.*;
 
 /**
@@ -17,413 +12,526 @@ import java.util.regex.*;
  *
  * @author Ben Culkin
  */
-public class Everge {
+public class Everge {
 	/**
 	 * Details how we handle our input.
 	 */
-	public static enum InputStatus {
+	public static enum InputStatus {
 		/**
 		 * Process the input as a single string.
 		 */
-		ALL,
+		ALL,
 		/**
 		 * Process the input line-by-line.
 		 */
-		LINE,
+		LINE,
 		/**
 		 * Process the input, splitting it around occurances of a regex.
 		 */
-		REGEX;
+		REGEX;
 	}
 
 	// Options for doing repl-pairs
-	private ReplOpts ropts = new ReplOpts();
+	private ReplOpts ropts = new ReplOpts();
 
-	// Loaded repl-pairs
-	private List<ReplPair> lrp = new ArrayList<>();
+	// Pair repository
+	private ReplSet replSet = new ReplSet();
 
 	// Input status
-	private InputStatus inputStat = InputStatus.ALL;
+	private InputStatus inputStat = InputStatus.ALL;
 
 	// Are we processing CLI args? (haven't seen a -- yet)
-	private boolean doingArgs = true;
+	private boolean doingArgs = true;
 
 	// Should an NL be printed after each replace?
-	private boolean printNL = true;
+	private boolean printNL = true;
 
 	// Verbosity level
-	private int verbosity = 0;
+	private int verbosity;
 
 	// The pattern to use for REGEX input mode
 	private String pattern;
 
 	// The queue of arguments to process
-	private Deque<String> argQue = new LinkedList<>();
+	private Deque<String> argQue = new LinkedList<>();
 
 	// Used to prevent inter-mixing argument alterations with input processing.
-	private ReadWriteLock argLock = new ReentrantReadWriteLock();
+	private ReadWriteLock argLock = new ReentrantReadWriteLock();
 
 	// Input/output streams
 	/**
 	 * Stream to use for normal output.
 	 */
-	public PrintStream outStream = System.out;
+	private PrintStream outStream = System.out;
 	/**
 	 * Stream to use for error output.
 	 */
-	public PrintStream errStream = System.err;
+	private LogStream errStream = new LogStream(System.err);
+
+	/**
+	 * Set the output stream.
+	 * 
+	 * @param out
+	 *            The output stream..
+	 */
+	public void setOutput(PrintStream out) {
+		outStream = out;
+	}
+
+	/**
+	 * Set the output stream.
+	 * 
+	 * @param out
+	 *            The output stream..
+	 */
+	public void setOutput(OutputStream out) {
+		outStream = new PrintStream(out);
+	}
+
+	/**
+	 * Set the error stream.
+	 * 
+	 * @param err
+	 *            The error stream.
+	 */
+	public void setError(PrintStream err) {
+		errStream = new LogStream(err);
+	}
+
+	/**
+	 * Set the error stream.
+	 * 
+	 * @param err
+	 *            The error stream.
+	 */
+	public void setError(OutputStream err) {
+		errStream = new LogStream(new PrintStream(err));
+	}
 
 	/**
 	 * Main method for front end,
 	 *
 	 * @param args
-	 * 		The CLI arguments.
+	 *             The CLI arguments.
 	 */
 	public static void main(String[] args) {
-		Everge evg = new Everge();
+		Everge evg = new Everge();
 
-		evg.processArgs(args);
-	}
+		evg.processArgs(args);
+	}
 
 	/**
 	 * Process one or more command line arguments.
 	 *
 	 * @param args
-	 * 		The arguments to process.
+	 *             The arguments to process.
 	 * @return Whether we processed succesfully or not.
 	 */
 	public boolean processArgs(String... args) {
-		List<String> errs = new ArrayList<>();
+		List<String> errs = new ArrayList<>();
+
+		boolean stat = processArgs(errs, args);
+		if (verbosity >= 2) {
+			String argString = args.length > 0 ? "arguments" : "argument";
+
+			errStream.infof("[INFO] Processed %d %s\n", args.length, argString);
+			int argc = 0;
+			if (verbosity >= 3) {
+				String arg = args[argc++];
+				errStream.tracef("[TRACE]\tArg %d: '%s\n", argc, arg);
+			}
+		}
 
-		boolean stat = processArgs(errs, args);
-		if (!stat) {
-			for (String err : errs) {
-				errStream.println(err);
-			}
+		if (!stat) {
+			for (String err : errs) {
+				errStream.errorf("%s\n", err);
+			}
 		}
 
-		return stat;
+		return stat;
 	}
 
 	/**
 	 * Process one or more command line arguments.
 	 *
 	 * @param args
-	 * 		The arguments to process.
+	 *             The arguments to process.
 	 * @param errs
-	 * 		The list to stash errors in.
+	 *             The list to stash errors in.
 	 * @return Whether we processed succesfully or not.
 	 */
 	public boolean processArgs(List<String> errs, String... args) {
-		argLock.writeLock().lock();
+		argLock.writeLock().lock();
 
-		boolean retStat = true;
+		boolean retStat = true;
 
 		try {
-			loadQueue(args);
+			loadQueue(args);
 
 			// Process CLI args
-			while(argQue.size() > 0) {
-				String arg = argQue.pop();
+			while (argQue.size() > 0) {
+				String arg = argQue.pop();
 
-				if (arg.equals("--")) {
-					doingArgs = false;
-					continue;
+				retStat = processArg(errs, retStat, arg);
+			}
+		} finally {
+			argLock.writeLock().unlock();
+		}
+
+		return retStat;
+	}
+
+	private boolean processArg(List<String> errs, boolean retStat, String arg) {
+		boolean newRet = retStat;
+
+		if (arg.equals("--")) {
+			doingArgs = false;
+			return newRet;
+		}
+
+		// Process an argument
+		if (doingArgs && arg.startsWith("-")) {
+			String argName = arg;
+			String argBody = "";
+
+			// Process arguments to arguments
+			int idx = arg.indexOf("=");
+			if (idx != -1) {
+				argName = arg.substring(0, idx);
+				argBody = arg.substring(idx + 1);
+			}
+
+			switch (argName) {
+			case "-n":
+			case "--newline":
+				printNL = true;
+				break;
+			case "-N":
+			case "--no-newline":
+				printNL = false;
+				break;
+			case "-v":
+			case "--verbose":
+				verbosity += 1;
+				errStream.louder();
+				System.err.printf("[TRACE] Incremented verbosity\n");
+				break;
+			case "-q":
+			case "--quiet":
+				verbosity -= 1;
+				errStream.quieter();
+				System.err.printf("[TRACE] Decremented verbosity\n");
+				break;
+			case "--verbosity":
+				if (argQue.size() < 1) {
+					errs.add("[ERROR] No parameter to --verbosity");
+					newRet = false;
+					break;
 				}
+				argBody = argQue.pop();
+			case "-V":
+				try {
+					verbosity = Integer.parseInt(argBody);
+					errStream.verbosity(verbosity);
+					System.err.printf("[TRACE] Set verbosity to %d\n", verbosity);
+				} catch (NumberFormatException nfex) {
+					String msg = String.format(
+							"[ERROR] Invalid verbosity: '%s' is not an integer", argBody);
+					errs.add(msg);
+					newRet = false;
+				}
+				break;
+			case "--pattern":
+				if (argQue.size() < 1) {
+					errs.add("[ERROR] No parameter to --pattern");
+					newRet = false;
+					break;
+				}
+				argBody = argQue.pop();
+			case "-p":
+				try {
+					pattern = argBody;
+
+					Pattern.compile(argBody);
+				} catch (PatternSyntaxException psex) {
+					String msg = String.format("[ERROR] Pattern '%s' is invalid: %s",
+							pattern, psex.getMessage());
+					errs.add(msg);
+					newRet = false;
+				}
+				break;
+			case "--file":
+				if (argQue.size() < 1) {
+					errs.add("[ERROR] No argument to --file");
+					newRet = false;
+					break;
+				}
+				argBody = argQue.pop();
+			case "-f":
+				try (FileInputStream fis = new FileInputStream(argBody);
+						Scanner scn = new Scanner(fis)) {
+					List<ReplError> ferrs = new ArrayList<>();
 
-				// Process an argument
-				if (doingArgs && arg.startsWith("-")) {
-					String argName = arg;
-					String argBody = "";
+					List<ReplPair> lrp = new ArrayList<>();
+					lrp = ReplPair.readList(lrp, scn, ferrs, ropts);
 
-					// Process arguments to arguments 
-					int idx = arg.indexOf("=");
-					if (idx != -1) {
-						argName = arg.substring(0, idx);
-						argBody = arg.substring(idx + 1);
-					}
+					if (ferrs.size() > 0) {
+						StringBuilder sb = new StringBuilder();
+
+						String errString = "an error";
+						if (ferrs.size() > 1)
+							errString = String.format("%d errors", ferrs.size());
 
-					switch (argName) {
-					case "-n":
-					case "--newline":
-						printNL = true;
-						break;
-					case "-N":
-					case "--no-newline":
-						printNL = false;
-						break;
-					case "-v":
-					case "--verbose":
-						verbosity += 1;
-						break;
-					case "-q":
-					case "--quiet":
-						verbosity -= 1;
-						break;
-					case "--verbosity":
-						if (argQue.size() < 1) {
-							errs.add("[ERROR] No parameter to --verbosity");
-							retStat = false;
-							break;
-						}
-						argBody = argQue.pop();
-						break;
-					case "-V":
-						try {
-							verbosity = Integer.parseInt(argBody);
-						} catch (NumberFormatException nfex) {
-							String msg = String.format("[ERROR] Invalid verbosity: '%s' is not an integer",
-									argBody);
-							errs.add(msg);
-							retStat = false;
-						}
-						break;
-					case "--pattern":
-						if (argQue.size() < 1) {
-							errs.add("[ERROR] No parameter to --pattern");
-							retStat = false;
-							break;
-						}
-						argBody = argQue.pop();
-					case "-p":
-						try {
-							pattern = argBody;
-
-							Pattern.compile(argBody);
-						} catch (PatternSyntaxException psex) {
-							String msg = String.format("[ERROR] Pattern '%s' is invalid: %s",
-									pattern, psex.getMessage());
-							errs.add(msg);
-							retStat = false;
-						}
-						break;
-					case "--file":
-						if (argQue.size() < 1) {
-							errs.add("[ERROR] No argument to --file");
-							retStat = false;
-							break;
-						}
-						argBody = argQue.pop();
-					case "-f":
-						try (FileInputStream fis = new FileInputStream(argBody);
-								Scanner scn = new Scanner(fis)) {
-							List<ReplError> ferrs = new ArrayList<>();
-
-							lrp = ReplPair.readList(lrp, scn, ferrs, ropts);
-
-							if (ferrs.size() > 0) {
-								StringBuilder sb = new StringBuilder();
-								
-								String errString = "an error";
-								if (ferrs.size() > 1) errString = String.format("%d errors");
-
-								{
-									String msg = String.format(
-											"[ERROR] Encountered %s parsing data file'%s'\n",
-											errString, argBody);
-									sb.append(msg);
-								}
-
-								for (ReplError err : ferrs) {
-									sb.append(String.format("\t%s\n", err));
-								}
-
-								errs.add(sb.toString());
-								retStat = false;
-							}
-						} catch (FileNotFoundException fnfex) {
-							String msg = String.format("[ERROR] Could not open data file '%s' for input",
-									argBody);
-							errs.add(msg);
-							retStat = false;
-						} catch (IOException ioex) {
-							String msg = String.format("[ERROR] Unknown I/O error reading data file '%s': %s",
-									argBody, ioex.getMessage());
-							errs.add(msg);
-							retStat = false;
-						}
-						break;
-					case "--arg-file":
-						if (argQue.size() < 1) {
-							errs.add("[ERROR] No argument to --arg-file");
-							break;
-						}
-						argBody = argQue.pop();
-					case "-F":
-						try (FileInputStream fis = new FileInputStream(argBody);
-								Scanner scn = new Scanner(fis)) {
-							List<String> sl = new ArrayList<>();
-
-							while (scn.hasNextLine()) {
-								String ln = scn.nextLine().trim();
-
-								if (ln.equals(""))      continue;
-								if (ln.startsWith("#")) continue;
-
-								sl.add(ln);
-							}
-
-							processArgs(sl.toArray(new String[0]));
-						} catch (FileNotFoundException fnfex) {
-							String msg = String.format("[ERROR] Could not open argument file '%s' for input", argBody);
-							errs.add(msg);
-							retStat = false;
-						} catch (IOException ioex) {
-							String msg = String.format("[ERROR] Unknown I/O error reading input file '%s': %s",
-									argBody, ioex.getMessage());
-							errs.add(msg);
-							retStat = false;
-						}
-						break;
-					default:
 						{
-							String msg = String.format("[ERROR] Unrecognised CLI argument name '%s'\n", argName);
-							errs.add(msg);
-							retStat = false;
+							String msg = String.format(
+									"[ERROR] Encountered %s parsing data file'%s'\n",
+									errString, argBody);
+							sb.append(msg);
 						}
+
+						for (ReplError err : ferrs) {
+							sb.append(String.format("\t%s\n", err));
+						}
+
+						errs.add(sb.toString());
+						newRet = false;
 					}
-				} else {
-					// Strip off an escaped initial dash
-					if (arg.startsWith("\\-")) arg = arg.substring(1);
 
-					processInputFile(arg);
+					replSet.addPairs(lrp);
+				} catch (FileNotFoundException fnfex) {
+					String msg = String.format(
+							"[ERROR] Could not open data file '%s' for input", argBody);
+					errs.add(msg);
+					newRet = false;
+				} catch (IOException ioex) {
+					String msg = String.format(
+							"[ERROR] Unknown I/O error reading data file '%s': %s",
+							argBody, ioex.getMessage());
+					errs.add(msg);
+					newRet = false;
+				}
+				break;
+			case "--arg-file":
+				if (argQue.size() < 1) {
+					errs.add("[ERROR] No argument to --arg-file");
+					break;
 				}
-			}
-		} finally {
-			argLock.writeLock().unlock();
+				argBody = argQue.pop();
+			case "-F":
+				try (FileInputStream fis = new FileInputStream(argBody);
+						Scanner scn = new Scanner(fis)) {
+					List<String> sl = new ArrayList<>();
+
+					while (scn.hasNextLine()) {
+						String ln = scn.nextLine().trim();
+
+						if (ln.equals(""))
+							continue;
+						if (ln.startsWith("#"))
+							continue;
+
+						sl.add(ln);
+					}
+
+					processArgs(sl.toArray(new String[0]));
+				} catch (FileNotFoundException fnfex) {
+					String msg = String.format(
+							"[ERROR] Could not open argument file '%s' for input",
+							argBody);
+					errs.add(msg);
+					newRet = false;
+				} catch (IOException ioex) {
+					String msg = String.format(
+							"[ERROR] Unknown I/O error reading input file '%s': %s",
+							argBody, ioex.getMessage());
+					errs.add(msg);
+					newRet = false;
+				}
+				break;
+			case "--input-status":
+				if (argQue.size() < 1) {
+					errs.add("[ERROR] No argument to --input-status");
+					break;
+				}
+				argBody = argQue.pop();
+			case "-I":
+				try {
+					inputStat = InputStatus.valueOf(argBody.toUpperCase());
+				} catch (IllegalArgumentException iaex) {
+					String msg = String.format("[ERROR] '%s' is not a valid input status",
+							argBody);
+					errs.add(msg);
+				}
+				break;
+			default: {
+				String msg = String
+						.format("[ERROR] Unrecognised CLI argument name '%s'\n", argName);
+				errs.add(msg);
+				newRet = false;
+			}
+			}
+		} else {
+			String tmp = arg;
+			// Strip off an escaped initial dash
+			if (tmp.startsWith("\\-"))
+				tmp = tmp.substring(1);
+
+			processInputFile(tmp);
 		}
 
-		return retStat;
+		return newRet;
 	}
 
 	/**
 	 * Process a input file.
 	 *
 	 * @param fle
-	 * 		Input file to process.
+	 *            Input file to process.
 	 * @return Whether we processed succesfully or not.
 	 */
 	public boolean processInputFile(String fle) {
-		List<String> errs = new ArrayList<>();
+		List<String> errs = new ArrayList<>();
 
-		boolean stat = processInputFile(errs, fle);
-		if (!stat) {
-			for (String err : errs) {
-				errStream.println(err);
-			}
+		boolean stat = processInputFile(errs, fle);
+		if (!stat) {
+			for (String err : errs) {
+				errStream.errorf("%s\n", err);
+			}
 		}
 
-		return stat;
+		return stat;
 	}
 
 	/**
 	 * Process a input file.
 	 *
 	 * @param fle
-	 * 		Input file to process.
+	 *             Input file to process.
 	 * @param errs
-	 * 		List to accumulate errors in.
+	 *             List to accumulate errors in.
 	 * @return Whether we processed succesfully or not.
 	 */
 	public boolean processInputFile(List<String> errs, String fle) {
-		argLock.readLock().lock();
+		argLock.readLock().lock();
 
 		// Read in and do replacements on a file
 		try {
-			if (verbosity > 2) {
-				errStream.printf("[TRACE] Reading file (%s) in mode (%s)\n", fle, inputStat);
+			if (verbosity > 2) {
+				errStream.printf("[TRACE] Reading file (%s) in mode (%s)\n", fle,
+						inputStat);
 			}
 
-			if (inputStat == InputStatus.ALL) {
-				Path pth = Paths.get(fle);
+			if (inputStat == InputStatus.ALL) {
+				Path pth = Paths.get(fle);
 
-				if (!Files.isReadable(pth)) {
-					String msg = String.format("[ERROR] File '%s' is not readable\n", fle);
-					errs.add(msg);
-					return false;
+				if (!Files.isReadable(pth)) {
+					String msg
+							= String.format("[ERROR] File '%s' is not readable\n", fle);
+					errs.add(msg);
+					return false;
 				}
 
-				byte[] inp = Files.readAllBytes(pth);
+				byte[] inp = Files.readAllBytes(pth);
 
-				String strang = new String(inp, Charset.forName("UTF-8"));
+				String strang = new String(inp, Charset.forName("UTF-8"));
 
-				processString(strang);
-			} else if (inputStat == InputStatus.LINE) {
-				try (FileInputStream fis = new FileInputStream(fle); Scanner scn = new Scanner(fis)) {
-					while(scn.hasNextLine()) {
-						processString(scn.nextLine());
+				processString(strang);
+			} else if (inputStat == InputStatus.LINE) {
+				try (FileInputStream fis = new FileInputStream(fle);
+						Scanner scn = new Scanner(fis)) {
+					while (scn.hasNextLine()) {
+						processString(scn.nextLine());
 					}
-				}
-			} else if (inputStat == InputStatus.REGEX) {
-				try (FileInputStream fis = new FileInputStream(fle); Scanner scn = new Scanner(fis)) {
-					scn.useDelimiter(pattern);
-
-					while(scn.hasNext()) {
-						processString(scn.next());
+				}
+			} else if (inputStat == InputStatus.REGEX) {
+				try (FileInputStream fis = new FileInputStream(fle);
+						Scanner scn = new Scanner(fis)) {
+					scn.useDelimiter(pattern);
+
+					while (scn.hasNext()) {
+						processString(scn.next());
 					}
-				}
+				}
 			} else {
-				String msg = String.format("[INTERNAL-ERROR] Input status '%s' is not yet implemented\n",
+				String msg = String.format(
+						"[INTERNAL-ERROR] Input status '%s' is not yet implemented\n",
 						inputStat);
-				errs.add(msg);
-				return false;
+				errs.add(msg);
+				return false;
 			}
-		} catch (IOException ioex) {
-			String msg = String.format("[ERROR] Unknown I/O related error for file '%s'\n\tError was %s",
-					fle, ioex.getMessage());
-			errs.add(msg);
-			return false;
+		} catch (IOException ioex) {
+			String msg = String.format(
+					"[ERROR] Unknown I/O related error for file '%s'\n\tError was %s",
+					fle, ioex.getMessage());
+			errs.add(msg);
+			return false;
 		} finally {
-			argLock.readLock().unlock();
+			argLock.readLock().unlock();
 		}
 
-		return true;
+		return true;
 	}
 
 	/**
 	 * Process an input string.
 	 *
 	 * @param inp
-	 * 		The input string to process.
+	 *            The input string to process.
 	 */
 	public void processString(String inp) {
-		argLock.readLock().lock();
+		argLock.readLock().lock();
 
 		try {
-			String strang = inp;
+			String strang = inp;
+
+			if (verbosity >= 3) {
+				errStream.infof(
+						"[INFO] Processing replacements for string '%s' in mode %s\n",
+						strang, inputStat);
+				
+				if (!inp.equals(inp.trim())) {
+					errStream.infof("[INFO] String '%s' has trailing spaces on it\n", inp);
+				}
+			}
 
-			for (ReplPair rp : lrp) {
-				strang = rp.apply(strang);
-			}
+			strang = replSet.apply(inp);
 
-			outStream.print(strang);
-			if (printNL) outStream.println();
+			outStream.print(strang);
+			if (printNL)
+				outStream.println();
 		} finally {
-			argLock.readLock().unlock();
+			argLock.readLock().unlock();
 		}
-	}
+	}
 
 	// Load arguments into the argument queue.
 	private void loadQueue(String... args) {
-		boolean doArgs = true;
-		for (String arg : args) {
-			if (arg.equals("--")) doArgs = false;
+		boolean doArgs = true;
+		for (String arg : args) {
+			if (arg.equals("--")) {
+				doArgs = false;
+			}
 
 			// Handle things like -nNv correctly
-			if (doArgs) {
-				if (arg.startsWith("-") && !arg.startsWith("--")) {
-					char[] car = arg.substring(1).toCharArray();
-					for (char c : car) {
-						String argstr = String.format("-%c", c);
-						argQue.add(argstr);
+			if (doArgs) {
+				if (arg.startsWith("-") && !arg.startsWith("--")) {
+					char[] car = arg.substring(1).toCharArray();
+
+					if (verbosity >= 3) {
+						errStream.infof("[INFO] Adding stream of args: %s", car);
+					}
+
+					for (char c : car) {
+						String argstr = String.format("-%c", c);
+						argQue.add(argstr);
 					}
-				} else {
-					argQue.add(arg);
+				} else {
+					argQue.add(arg);
 				}
 			} else {
-				argQue.add(arg);
+				argQue.add(arg);
 			}
 		}
-	}
+	}
 }
 
\ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/IntHolder.java.html b/docs/jacoco-ut/bjc.everge/IntHolder.java.html index db6e5b4..fdeab7e 100644 --- a/docs/jacoco-ut/bjc.everge/IntHolder.java.html +++ b/docs/jacoco-ut/bjc.everge/IntHolder.java.html @@ -22,7 +22,7 @@ public class IntHolder { * Create a new int-holder set to a value. * * @param i - * The value to set the int to. + * The value to set the int to. */ public IntHolder(int i) { val = i; @@ -41,7 +41,7 @@ public class IntHolder { * Increment the value by an amount and return it. * * @param i - * The amount to increment by. + * The amount to increment by. * * @return The value of the holder. */ @@ -62,9 +62,9 @@ public class IntHolder { /** * Set the value. - * + * * @param i - * The value to set it to. + * The value to set it to. */ public void set(int i) { val = i; diff --git a/docs/jacoco-ut/bjc.everge/LogStream.html b/docs/jacoco-ut/bjc.everge/LogStream.html new file mode 100644 index 0000000..09a704a --- /dev/null +++ b/docs/jacoco-ut/bjc.everge/LogStream.html @@ -0,0 +1 @@ +LogStream

LogStream

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total91 of 14537%2 of 450%172634531624
LogStream(PrintStream, int)90%n/a114411
message(int, String)90%20%223311
quieter(int)70%n/a112211
fatalf(String, Object[])60%n/a112211
errorf(String, Object[])60%n/a112211
warnf(String, Object[])60%n/a112211
debugf(String, Object[])60%n/a112211
print(String)50%n/a112211
fatal(String)50%n/a112211
error(String)50%n/a112211
warn(String)50%n/a112211
info(String)50%n/a112211
debug(String)50%n/a112211
trace(String)50%n/a112211
quieter()40%n/a112211
verbosity()30%n/a111111
messagef(int, String, Object[])11100%2100%020301
LogStream(PrintStream)9100%n/a010401
louder(int)7100%n/a010201
printf(String, Object[])7100%n/a010201
infof(String, Object[])6100%n/a010201
tracef(String, Object[])6100%n/a010201
verbosity(int)4100%n/a010201
louder()4100%n/a010201
\ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/LogStream.java.html b/docs/jacoco-ut/bjc.everge/LogStream.java.html new file mode 100644 index 0000000..217734a --- /dev/null +++ b/docs/jacoco-ut/bjc.everge/LogStream.java.html @@ -0,0 +1,315 @@ +LogStream.java

LogStream.java

package bjc.everge;
+
+import java.io.*;
+
+/**
+ * Simple class used for logging with various levels.
+ *
+ * @author Ben Culkin
+ */
+public class LogStream {
+	/**
+	 * Log level for printing nothing.
+	 */
+	public static final int NOTHING = -1;
+
+	/**
+	 * Log level for printing only fatal errors.
+	 */
+	public static final int FATAL = 0;
+
+	/**
+	 * Log level for printing all errors.
+	 */
+	public static final int ERROR = 1;
+
+	/**
+	 * Log level for printing warnings.
+	 */
+	public static final int WARN = 2;
+
+	/**
+	 * Log level for printing info messages.
+	 */
+	public static final int INFO = 3;
+
+	/**
+	 * Log level for printing debug messages.
+	 */
+	public static final int DEBUG = 4;
+
+	/**
+	 * Log level for printing trace messages.
+	 */
+	public static final int TRACE = 5;
+
+	private int verbosity;
+
+	private PrintStream output;
+
+	/**
+	 * Create a new log stream.
+	 *
+	 * Defaults to printing only fatal errors.
+	 *
+	 * @param out
+	 *            The output stream to place things into.
+	 */
+	public LogStream(PrintStream out) {
+		output = out;
+		verbosity = FATAL;
+	}
+
+	/**
+	 * Create a new log stream.
+	 *
+	 * @param out
+	 *              The output stream to place things into.
+	 * @param level
+	 *              The verbosity level. Use the constants in this class for the
+	 *              values.
+	 */
+	public LogStream(PrintStream out, int level) {
+		output = out;
+		verbosity = level;
+	}
+
+	/**
+	 * Get the verbosity of the stream.
+	 * 
+	 * @return The verbosity of the stream.
+	 */
+	public int verbosity() {
+		return verbosity;
+	}
+
+	/**
+	 * Set the verbosity of the stream.
+	 * 
+	 * @param verb
+	 *             The verbosity of the stream.
+	 */
+	public void verbosity(int verb) {
+		verbosity = verb;
+	}
+
+	/**
+	 * Increment the verbosity of the stream.
+	 */
+	public void louder() {
+		louder(1);
+	}
+
+	/**
+	 * Increase the verbosity of the stream by an amount.
+	 * 
+	 * @param amt
+	 *            The amount to increase the verbosity by.
+	 */
+	public void louder(int amt) {
+		verbosity += amt;
+	}
+
+	/**
+	 * Decrement the verbosity of the stream.
+	 */
+	public void quieter() {
+		quieter(1);
+	}
+
+	/**
+	 * Decrease the verbosity of the stream by an amount.
+	 * 
+	 * @param amt
+	 *            The amount to decrease the verbosity by.
+	 */
+	public void quieter(int amt) {
+		verbosity -= amt;
+	}
+
+	/**
+	 * Print a message that will always be visible.
+	 *
+	 * @param msg
+	 *            The message to print.
+	 */
+	public void print(String msg) {
+		output.print(msg);
+	}
+
+	/**
+	 * Print a formatted message that will always be visible.
+	 *
+	 * @param msg
+	 *             The format string for the message to print.
+	 *
+	 * @param args
+	 *             The arguments to the format string.
+	 */
+	public void printf(String msg, Object... args) {
+		output.printf(msg, args);
+	}
+
+	/**
+	 * Print a message at a given verbosity level.
+	 * 
+	 * @param lvl
+	 *            The verbosity level.
+	 * @param msg
+	 *            The message to print.
+	 */
+	public void message(int lvl, String msg) {
+		if (verbosity >= lvl) {
+			output.print(msg);
+		}
+	}
+
+	/**
+	 * Print a formatted message at a given verbosity level.
+	 * 
+	 * @param lvl
+	 *             The verbosity level.
+	 * @param msg
+	 *             The message to print.
+	 * @param args
+	 *             The arguments to the message.
+	 */
+	public void messagef(int lvl, String msg, Object... args) {
+		if (verbosity >= lvl) {
+			output.printf(msg, args);
+		}
+	}
+
+	/**
+	 * Emit a fatal error message.
+	 * 
+	 * @param msg
+	 *            The message to emit.
+	 */
+	public void fatal(String msg) {
+		message(FATAL, msg);
+	}
+
+	/**
+	 * Emit a formatted fatal error message.
+	 * 
+	 * @param msg
+	 *             The message to emit.
+	 * @param args
+	 *             The arguments to the message.
+	 */
+	public void fatalf(String msg, Object... args) {
+		messagef(FATAL, msg, args);
+	}
+
+	/**
+	 * Emit a normal error message.
+	 * 
+	 * @param msg
+	 *            The message to emit.
+	 */
+	public void error(String msg) {
+		message(ERROR, msg);
+	}
+
+	/**
+	 * Emit a formatted normal error message.
+	 * 
+	 * @param msg
+	 *             The message to emit.
+	 * @param args
+	 *             The arguments to the message.
+	 */
+	public void errorf(String msg, Object... args) {
+		messagef(ERROR, msg, args);
+	}
+
+	/**
+	 * Emit a warning message.
+	 * 
+	 * @param msg
+	 *            The message to emit.
+	 */
+	public void warn(String msg) {
+		message(WARN, msg);
+	}
+
+	/**
+	 * Emit a formatted warning message.
+	 * 
+	 * @param msg
+	 *             The message to emit.
+	 * @param args
+	 *             The arguments to the message.
+	 */
+	public void warnf(String msg, Object... args) {
+		messagef(WARN, msg, args);
+	}
+
+	/**
+	 * Emit an info message.
+	 * 
+	 * @param msg
+	 *            The message to emit.
+	 */
+	public void info(String msg) {
+		message(INFO, msg);
+	}
+
+	/**
+	 * Emit a formatted info message.
+	 * 
+	 * @param msg
+	 *             The message to emit.
+	 * @param args
+	 *             The arguments to the message.
+	 */
+	public void infof(String msg, Object... args) {
+		messagef(INFO, msg, args);
+	}
+
+	/**
+	 * Emit a debug message.
+	 * 
+	 * @param msg
+	 *            The message to emit.
+	 */
+	public void debug(String msg) {
+		message(DEBUG, msg);
+	}
+
+	/**
+	 * Emit a formatted debug message.
+	 * 
+	 * @param msg
+	 *             The message to emit.
+	 * @param args
+	 *             The arguments to the message.
+	 */
+	public void debugf(String msg, Object... args) {
+		messagef(DEBUG, msg, args);
+	}
+
+	/**
+	 * Emit a tracing message.
+	 * 
+	 * @param msg
+	 *            The message to emit.
+	 */
+	public void trace(String msg) {
+		message(TRACE, msg);
+	}
+
+	/**
+	 * Emit a formatted tracing message.
+	 * 
+	 * @param msg
+	 *             The message to emit.
+	 * @param args
+	 *             The arguments to the message.
+	 */
+	public void tracef(String msg, Object... args) {
+		messagef(TRACE, msg, args);
+	}
+}
+
\ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/MirrorOutputStream.html b/docs/jacoco-ut/bjc.everge/MirrorOutputStream.html new file mode 100644 index 0000000..a9544b4 --- /dev/null +++ b/docs/jacoco-ut/bjc.everge/MirrorOutputStream.html @@ -0,0 +1 @@ +MirrorOutputStream

MirrorOutputStream

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total62 of 10943%8 of 1233%812162546
write(byte[])160%20%224411
write(int)160%20%224411
close()150%20%224411
flush()150%20%224411
MirrorOutputStream(OutputStream[])29100%2100%020501
write(byte[], int, int)18100%2100%020401
\ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/MirrorOutputStream.java.html b/docs/jacoco-ut/bjc.everge/MirrorOutputStream.java.html new file mode 100644 index 0000000..51175e0 --- /dev/null +++ b/docs/jacoco-ut/bjc.everge/MirrorOutputStream.java.html @@ -0,0 +1,64 @@ +MirrorOutputStream.java

MirrorOutputStream.java

package bjc.everge;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * An output stream that mirrors its contents to other streams.
+ * 
+ * @author Ben Culkin
+ *
+ */
+public class MirrorOutputStream extends OutputStream {
+	private List<OutputStream> streams;
+
+	/**
+	 * Create a new mirroring output stream.
+	 * 
+	 * @param strams
+	 *               The output streams to mirror to.
+	 */
+	public MirrorOutputStream(OutputStream... strams) {
+		streams = new ArrayList<>();
+
+		for (OutputStream stram : strams) {
+			streams.add(stram);
+		}
+	}
+
+	@Override
+	public void close() throws IOException {
+		for (OutputStream stream : streams) {
+			stream.close();
+		}
+	}
+
+	@Override
+	public void flush() throws IOException {
+		for (OutputStream stream : streams) {
+			stream.flush();
+		}
+	}
+
+	@Override
+	public void write(byte[] ba) throws IOException {
+		for (OutputStream stream : streams) {
+			stream.write(ba);
+		}
+	}
+
+	@Override
+	public void write(byte[] ba, int off, int len) throws IOException {
+		for (OutputStream stream : streams) {
+			stream.write(ba, off, len);
+		}
+	}
+
+	@Override
+	public void write(int b) throws IOException {
+		for (OutputStream stream : streams) {
+			stream.write(b);
+		}
+	}
+}
+
\ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/ReplError.html b/docs/jacoco-ut/bjc.everge/ReplError.html index 012b0c4..61b254c 100644 --- a/docs/jacoco-ut/bjc.everge/ReplError.html +++ b/docs/jacoco-ut/bjc.everge/ReplError.html @@ -1 +1 @@ -ReplError

ReplError

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total72 of 13245%7 of 812%6971825
toString()500%40%334411
toPrintString(String)183666%3125%232501
toPrintString()40%n/a111111
ReplError(int, int, String, String)15100%n/a010601
ReplError(IntHolder, IntHolder, String, String)9100%n/a010201
\ No newline at end of file +ReplError

ReplError

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total72 of 13245%7 of 812%69102225
toString()500%40%336611
toPrintString(String)183666%3125%233701
toPrintString()40%n/a111111
ReplError(int, int, String, String)15100%n/a010601
ReplError(IntHolder, IntHolder, String, String)9100%n/a010201
\ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/ReplError.java.html b/docs/jacoco-ut/bjc.everge/ReplError.java.html index 7c92b1c..dd7247b 100644 --- a/docs/jacoco-ut/bjc.everge/ReplError.java.html +++ b/docs/jacoco-ut/bjc.everge/ReplError.java.html @@ -28,13 +28,13 @@ public class ReplError { * Create a new ReplPair parse error. * * @param lne - * The line the error occured on. + * The line the error occured on. * @param nPairs - * The number of pairs processed up to this point. + * The number of pairs processed up to this point. * @param msg - * The message detailing the error. + * The message detailing the error. * @param txt - * The text that caused the error. + * The text that caused the error. */ public ReplError(IntHolder lne, IntHolder nPairs, String msg, String txt) { this(lne.get(), nPairs.get(), msg, txt); @@ -44,13 +44,13 @@ public class ReplError { * Create a new ReplPair parse error. * * @param lne - * The line the error occured on. + * The line the error occured on. * @param nPairs - * The number of pairs processed up to this point. + * The number of pairs processed up to this point. * @param msg - * The message detailing the error. + * The message detailing the error. * @param txt - * The text that caused the error. + * The text that caused the error. */ public ReplError(int lne, int nPairs, String msg, String txt) { line = lne; @@ -63,38 +63,44 @@ public class ReplError { @Override public String toString() { String errString; - if (txt == null) errString = "No associated line"; - else if (txt.equals("")) errString = "Text of line was empty"; - else errString = "Text of line was: " + txt; + if (txt == null) + errString = "No associated line"; + else if (txt.equals("")) + errString = "Text of line was empty"; + else + errString = "Text of line was: " + txt; - return String.format("line %d, pair %d:%s\n\t%s", line, numPairs, msg, errString); + return String.format("line %d, pair %d:%s\n\t%s", line, numPairs, msg, errString); } /** * Convert the error to a printable string. - * + * * @return The error as a printable string. */ public String toPrintString() { - return toPrintString(""); + return toPrintString(""); } /** * Convert the error to a printable string, with a custom header. - * + * * @param hdr - * The text to include in the header. - * + * The text to include in the header. + * * @return The error as a printable string. */ public String toPrintString(String hdr) { String errString; - if (txt == null) errString = "No associated line"; - else if (txt.equals("")) errString = "Text of line was empty"; - else errString = "Text of line was: " + txt; + if (txt == null) + errString = "No associated line"; + else if (txt.equals("")) + errString = "Text of line was empty"; + else + errString = "Text of line was: " + txt; - return String.format("[ERROR] line %d, pair %d: %s\n%s\tContext: %s", - line, numPairs, msg, hdr, errString); + return String.format("[ERROR] line %d, pair %d: %s\n%s\tContext: %s", line, + numPairs, msg, hdr, errString); } } \ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/ReplOpts.html b/docs/jacoco-ut/bjc.everge/ReplOpts.html index aa18045..6347128 100644 --- a/docs/jacoco-ut/bjc.everge/ReplOpts.html +++ b/docs/jacoco-ut/bjc.everge/ReplOpts.html @@ -1 +1 @@ -ReplOpts

ReplOpts

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total147 of 17716%30 of 300%1718223223
hashCode()770%100%66101011
equals(Object)700%200%1111121211
ReplOpts()30100%n/a0101001
\ No newline at end of file +ReplOpts

ReplOpts

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total147 of 17716%30 of 300%1718324223
hashCode()770%100%66101011
equals(Object)700%200%1111222211
ReplOpts()30100%n/a0101001
\ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/ReplOpts.java.html b/docs/jacoco-ut/bjc.everge/ReplOpts.java.html index c8b5767..9905718 100644 --- a/docs/jacoco-ut/bjc.everge/ReplOpts.java.html +++ b/docs/jacoco-ut/bjc.everge/ReplOpts.java.html @@ -51,33 +51,45 @@ import java.io.PrintStream; * The stream to print error output on. */ public PrintStream errStream = System.err; + @Override public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + (defMulti ? 1231 : 1237); - result = prime * result + defPrior; - result = prime * result + defStage; - result = prime * result + ((defStatus == null) ? 0 : defStatus.hashCode()); - result = prime * result + (isDebug ? 1231 : 1237); - result = prime * result + (isPerf ? 1231 : 1237); - result = prime * result + (isTrace ? 1231 : 1237); - return result; + final int prime = 31; + int result = 1; + result = prime * result + (defMulti ? 1231 : 1237); + result = prime * result + defPrior; + result = prime * result + defStage; + result = prime * result + ((defStatus == null) ? 0 : defStatus.hashCode()); + result = prime * result + (isDebug ? 1231 : 1237); + result = prime * result + (isPerf ? 1231 : 1237); + result = prime * result + (isTrace ? 1231 : 1237); + return result; } + @Override public boolean equals(Object obj) { - if (this == obj) return true; - if (obj == null) return false; - if (getClass() != obj.getClass()) return false; - ReplOpts other = (ReplOpts) obj; - if (defMulti != other.defMulti) return false; - if (defPrior != other.defPrior) return false; - if (defStage != other.defStage) return false; - if (defStatus != other.defStatus) return false; - if (isDebug != other.isDebug) return false; - if (isPerf != other.isPerf) return false; - if (isTrace != other.isTrace) return false; - return true; + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + ReplOpts other = (ReplOpts) obj; + if (defMulti != other.defMulti) + return false; + if (defPrior != other.defPrior) + return false; + if (defStage != other.defStage) + return false; + if (defStatus != other.defStatus) + return false; + if (isDebug != other.isDebug) + return false; + if (isPerf != other.isPerf) + return false; + if (isTrace != other.isTrace) + return false; + return true; } } \ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/ReplPair.html b/docs/jacoco-ut/bjc.everge/ReplPair.html index f5189e8..9e1ce82 100644 --- a/docs/jacoco-ut/bjc.everge/ReplPair.html +++ b/docs/jacoco-ut/bjc.everge/ReplPair.html @@ -1 +1 @@ -ReplPair

ReplPair

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total987 of 1,85046%100 of 21152%84137169371218
readGlobal(String, Scanner, List, ReplOpts, IntHolder, IntHolder)3028722%241233%2127699001
readName(String, Scanner, List, ReplPair, ReplOpts, IntHolder, IntHolder)26111430%151651%1321538301
readList(List, Scanner, List, ReplOpts)25437559%295163%24422611601
hashCode()590%60%448811
readMultiLine(String, Scanner, ReplOpts, List, String, IntHolder)378469%81260%61122001
equals(Object)315262%171139%141531601
getControls(String, List, ReplOpts, IntHolder, IntHolder, String)261027%n/a016701
toString()103376%1150%120301
ReplPair(String, String, String)70%n/a112211
readList(List, Scanner)20100%2100%020501
ReplPair(String, String, int, String)18100%n/a010701
apply(String)17100%4100%030301
compareTo(ReplPair)17100%2100%020201
readList(Scanner)8100%n/a010201
readList(List, Scanner, List)8100%n/a010101
ReplPair()7100%n/a010201
ReplPair(String, String, int)7100%n/a010201
ReplPair(String, String)6100%n/a010201
\ No newline at end of file +ReplPair

ReplPair

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total938 of 1,85049%92 of 21156%79137180403218
readGlobal(String, Scanner, List, ReplOpts, IntHolder, IntHolder)2989123%231336%2027679101
readName(String, Scanner, List, ReplPair, ReplOpts, IntHolder, IntHolder)26111330%151651%1321548401
readList(List, Scanner, List, ReplOpts)20941966%225872%20422512901
hashCode()590%60%448811
readMultiLine(String, Scanner, ReplOpts, String, IntHolder)378469%81260%61132201
equals(Object)315262%171139%1415142701
getControls(String, List, ReplOpts, IntHolder, IntHolder, String)261027%n/a016701
toString()103376%1150%121401
ReplPair(String, String, String)70%n/a112211
readList(List, Scanner)20100%2100%020501
apply(String)19100%4100%030501
ReplPair(String, String, int, String)18100%n/a010701
compareTo(ReplPair)17100%2100%020301
readList(Scanner)8100%n/a010201
readList(List, Scanner, List)8100%n/a010101
ReplPair()7100%n/a010201
ReplPair(String, String, int)7100%n/a010201
ReplPair(String, String)6100%n/a010201
\ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/ReplPair.java.html b/docs/jacoco-ut/bjc.everge/ReplPair.java.html index eea7307..a67d944 100644 --- a/docs/jacoco-ut/bjc.everge/ReplPair.java.html +++ b/docs/jacoco-ut/bjc.everge/ReplPair.java.html @@ -36,8 +36,8 @@ public class ReplPair implements Comparable<ReplPair>, UnaryOperator<St /** * The guard for this replacement. * - * The guard of the replacement is a regex that has to match before the pair will be considered. - * Defaults to being blank. + * The guard of the replacement is a regex that has to match before the pair + * will be considered. Defaults to being blank. */ public String guard; @@ -62,9 +62,9 @@ public class ReplPair implements Comparable<ReplPair>, UnaryOperator<St * Create a new replacement pair with a priority of 1. * * @param f - * The string to find. + * The string to find. * @param r - * The string to replace. + * The string to replace. */ public ReplPair(String f, String r) { this(f, r, 1); @@ -74,11 +74,11 @@ public class ReplPair implements Comparable<ReplPair>, UnaryOperator<St * Create a new named replacement pair with a priority of 1. * * @param f - * The string to find. + * The string to find. * @param r - * The string to replace. + * The string to replace. * @param n - * The name of the replacement pair. + * The name of the replacement pair. */ public ReplPair(String f, String r, String n) { this(f, r, 1, n); @@ -88,11 +88,11 @@ public class ReplPair implements Comparable<ReplPair>, UnaryOperator<St * Create a new replacement pair with a set priority. * * @param f - * The string to find. + * The string to find. * @param r - * The string to replace. + * The string to replace. * @param p - * The priority for the replacement. + * The priority for the replacement. */ public ReplPair(String f, String r, int p) { this(f, r, p, f); @@ -102,16 +102,16 @@ public class ReplPair implements Comparable<ReplPair>, UnaryOperator<St * Create a new replacement pair with a set priority and name. * * @param f - * The string to find. + * The string to find. * @param r - * The string to replace. + * The string to replace. * @param n - * The name of the replacement pair. + * The name of the replacement pair. * @param p - * The priority for the replacement. + * The priority for the replacement. */ public ReplPair(String f, String r, int p, String n) { - find = f; + find = f; replace = r; name = n; @@ -123,123 +123,123 @@ public class ReplPair implements Comparable<ReplPair>, UnaryOperator<St * Read a list of replacement pairs from an input source. * * @param scn - * The source to read the replacements from. - * @return - * The list of replacements. + * The source to read the replacements from. + * @return The list of replacements. */ public static List<ReplPair> readList(Scanner scn) { - List<ReplPair> lst = new ArrayList<>(); + List<ReplPair> lst = new ArrayList<>(); - return readList(lst, scn); + return readList(lst, scn); } /** - * Read a list of replacement pairs from an input source, adding them to - * an existing list. + * Read a list of replacement pairs from an input source, adding them to an + * existing list. * * @param detals - * The list to add the replacements to. + * The list to add the replacements to. * @param scn - * The source to read the replacements from. - * @return - * The list of replacements. + * The source to read the replacements from. + * @return The list of replacements. */ public static List<ReplPair> readList(List<ReplPair> detals, Scanner scn) { - List<ReplError> errList = new ArrayList<>(); + List<ReplError> errList = new ArrayList<>(); - List<ReplPair> rplPar = readList(detals, scn, errList); + List<ReplPair> rplPar = readList(detals, scn, errList); - if (errList.size() != 0) { - throw new BadReplParse("", errList); + if (errList.size() != 0) { + throw new BadReplParse("", errList); } - return rplPar; + return rplPar; } /** - * Read a list of replacement pairs from an input source, adding them to - * an existing list. + * Read a list of replacement pairs from an input source, adding them to an + * existing list. * * @param detals - * The list to add the replacements to. + * The list to add the replacements to. * @param scn - * The source to read the replacements from. + * The source to read the replacements from. * @param errs - * The list to stick errors in. - * @return - * The list of replacements. + * The list to stick errors in. + * @return The list of replacements. */ - public static List<ReplPair> readList(List<ReplPair> detals, Scanner scn, List<ReplError> errs) { - return readList(detals, scn, errs, new ReplOpts()); + public static List<ReplPair> readList(List<ReplPair> detals, Scanner scn, + List<ReplError> errs) { + return readList(detals, scn, errs, new ReplOpts()); } /** - * Read a list of replacement pairs from an input source, adding them to - * an existing list. + * Read a list of replacement pairs from an input source, adding them to an + * existing list. * * @param detals - * The list to add the replacements to. + * The list to add the replacements to. * @param scn - * The source to read the replacements from. + * The source to read the replacements from. * @param errs - * The list to stick errors in. + * The list to stick errors in. * @param ropts - * The options to use when reading the pairs. - * @return - * The list of replacements. + * The options to use when reading the pairs. + * @return The list of replacements. */ - public static List<ReplPair> readList( - List<ReplPair> detals, Scanner scn, - List<ReplError> errs, ReplOpts ropts) - { - IntHolder lno = new IntHolder(); - IntHolder pno = new IntHolder(); + public static List<ReplPair> readList(List<ReplPair> detals, Scanner scn, + List<ReplError> errs, ReplOpts ropts) { + IntHolder lno = new IntHolder(); + IntHolder pno = new IntHolder(); - List<List<ReplPair>> stages = new ArrayList<>(); - stages.add(new ArrayList<ReplPair>()); + List<List<ReplPair>> stages = new ArrayList<>(); + stages.add(new ArrayList<ReplPair>()); // For every line in the source... - while (scn.hasNextLine()) { - String name = scn.nextLine().trim(); - lno.incr(); + while (scn.hasNextLine()) { + String name = scn.nextLine().trim(); + lno.incr(); // If its commented or blank, skip it - if (name.equals("")) continue; - if (name.startsWith("#")) continue; + if (name.equals("")) + continue; + if (name.startsWith("#")) + continue; // Global control. Process it. - if (name.startsWith("|//")) { - readGlobal(name, scn, errs, ropts, lno, pno); + if (name.startsWith("|//")) { + readGlobal(name, scn, errs, ropts, lno, pno); - continue; + continue; } - ReplPair rp = new ReplPair(); + ReplPair rp = new ReplPair(); - rp.priority = ropts.defPrior; - rp.stat = ropts.defStatus; - rp.lno = lno.get(); - rp.stage = ropts.defStage; + rp.priority = ropts.defPrior; + rp.stat = ropts.defStatus; + rp.lno = lno.get(); + rp.stage = ropts.defStage; - boolean isMulti = ropts.defMulti; + boolean isMulti = ropts.defMulti; { - String tmpName = readName(name, scn, errs, rp, ropts, lno, pno); - if (tmpName == null) continue; - name = tmpName; + String tmpName = readName(name, scn, errs, rp, ropts, lno, pno); + if (tmpName == null) + continue; + name = tmpName; } - rp.find = name; - if (rp.name == null) rp.name = name; + rp.find = name; + if (rp.name == null) + rp.name = name; // We started to process the pair, mark it as being // started - pno.incr(); - String body = null; + pno.incr(); + String body = null; // Read in the next uncommented line do { - if (!scn.hasNextLine()) break; + if (!scn.hasNextLine()) + break; body = scn.nextLine().trim(); lno.incr(); @@ -247,597 +247,638 @@ public class ReplPair implements Comparable<ReplPair>, UnaryOperator<St if (body == null) { String msg = String.format( - "Ran out of input looking for replacement body for raw name '%s'", name); + "Ran out of input looking for replacement body for raw name '%s'", + name); - errs.add(new ReplError(lno, pno, msg, null)); - break; + errs.add(new ReplError(lno, pno, msg, null)); + break; } - isMulti = ropts.defMulti; - - ControlledString cs = getControls(body, errs, ropts, lno, pno, "body"); + isMulti = ropts.defMulti; + + ControlledString cs = getControls(body, errs, ropts, lno, pno, "body"); // Body has attached controls, process them. - if (cs.hasControls()) { - for (Control cont : cs.controls) { - switch (cont.name) { + if (cs.hasControls()) { + for (Control cont : cs.controls) { + switch (cont.name) { case "MULTITRUE": case "MULTIT": case "MT": - isMulti = true; - break; + isMulti = true; + break; case "MULTIFALSE": case "MULTIF": case "MF": - isMulti = false; - break; + isMulti = false; + break; case "MULTI": case "M": - if (cont.count() != 1) { - String errMsg = String.format("Expected one multi flag (got %d)", cont.count()); - errs.add(new ReplError(lno, pno, errMsg, body)); - } else { - isMulti = Boolean.parseBoolean(cont.get(0)); - } - break; - default: - { - String errMsg = String.format("Invalid control name '%s'", cont.name); - errs.add(new ReplError(lno, pno, errMsg, body)); + if (cont.count() != 1) { + String errMsg = String.format( + "Expected one multi flag (got %d)", cont.count()); + errs.add(new ReplError(lno, pno, errMsg, body)); + } else { + isMulti = Boolean.parseBoolean(cont.get(0)); } + break; + default: { + String errMsg + = String.format("Invalid control name '%s'", cont.name); + errs.add(new ReplError(lno, pno, errMsg, body)); + } break; } } - body = cs.strang; + body = cs.strang; } - if (isMulti) { - String tmp = readMultiLine(body, scn, ropts, errs, "body", lno); - if (tmp == null) continue; - body = tmp; + if (isMulti) { + String tmp = readMultiLine(body, scn, ropts, "body", lno); + if (tmp == null) + continue; + body = tmp; } - rp.replace = body; + rp.replace = body; - List<ReplPair> stageList = null; - if (rp.stage == 0 || stages.size() < (rp.stage - 1)) { - stageList = stages.get(rp.stage); + List<ReplPair> stageList = null; + if (rp.stage == 0 || stages.size() < (rp.stage - 1)) { + stageList = stages.get(rp.stage); - if (stageList == null) { - stageList = new ArrayList<>(); + if (stageList == null) { + stageList = new ArrayList<>(); - stages.add(rp.stage, stageList); + stages.add(rp.stage, stageList); } } else { - for (int i = stages.size(); i <= rp.stage; i++) { - stages.add(new ArrayList<>()); + for (int i = stages.size(); i <= rp.stage; i++) { + stages.add(new ArrayList<>()); } - stageList = stages.get(rp.stage); + stageList = stages.get(rp.stage); } - if (ropts.isTrace) { - ropts.errStream.printf("\t[DEBUG] Stage %d: Added %s\n\t\tContents: %s\n", - rp.stage, rp, stageList); + if (ropts.isTrace) { + ropts.errStream.printf("\t[DEBUG] Stage %d: Added %s\n\t\tContents: %s\n", + rp.stage, rp, stageList); } - stageList.add(rp); - } + stageList.add(rp); + } // Special-case one-stage processing. - if (stages.size() == 1) { - if (ropts.isTrace) ropts.errStream.printf("\t[DEBUG] Executing single-stage bypass\n"); - - for (ReplPair rp : stages.iterator().next()) { - if (rp.stat == StageStatus.INTERNAL) { - if (ropts.isTrace) ropts.errStream.printf("\t[DEBUG] Excluding internal RP %s\n", rp); + if (stages.size() == 1) { + if (ropts.isTrace) + ropts.errStream.printf("\t[DEBUG] Executing single-stage bypass\n"); + + for (ReplPair rp : stages.iterator().next()) { + if (rp.stat == StageStatus.INTERNAL) { + if (ropts.isTrace) + ropts.errStream.printf("\t[DEBUG] Excluding internal RP %s\n", + rp); continue; } - detals.add(rp); - } + detals.add(rp); + } - detals.sort(null); + detals.sort(null); - return detals; + return detals; } // Handle stages - List<ReplPair> tmpList = new ArrayList<>(); - tmpList.addAll(detals); + List<ReplPair> tmpList = new ArrayList<>(); + tmpList.addAll(detals); - if (ropts.isTrace) ropts.errStream.printf("\t[DEBUG] Stages: %s\n", stages); + if (ropts.isTrace) + ropts.errStream.printf("\t[DEBUG] Stages: %s\n", stages); - int procStg = 0; - for (List<ReplPair> stageList : stages) { - procStg += 1; - List<ReplPair> curStage = new ArrayList<>(); + int procStg = 0; + for (List<ReplPair> stageList : stages) { + procStg += 1; + List<ReplPair> curStage = new ArrayList<>(); - if (ropts.isTrace) ropts.errStream.printf("\t[DEBUG] Staging stage %d of %d: %s\n", - procStg, stageList.size(), stageList); + if (ropts.isTrace) + ropts.errStream.printf("\t[DEBUG] Staging stage %d of %d: %s\n", procStg, + stageList.size(), stageList); - for (ReplPair rp : stageList) { + for (ReplPair rp : stageList) { // Process through every pair in the previous // stages - for (ReplPair curPar : tmpList) { - String tmp = rp.replace.replaceAll(curPar.find, curPar.replace); + for (ReplPair curPar : tmpList) { + String tmp = rp.replace.replaceAll(curPar.find, curPar.replace); - if (ropts.isTrace && !rp.replace.equals(tmp)) { - ropts.errStream.printf("\t[DEBUG] Staged '%s' -> '%s'\t%s\n", - rp.replace, tmp, curPar); + if (ropts.isTrace && !rp.replace.equals(tmp)) { + ropts.errStream.printf("\t[DEBUG] Staged '%s' -> '%s'\t%s\n", + rp.replace, tmp, curPar); } - rp.replace = tmp; - } + rp.replace = tmp; + } // If we're external; add straight to the output - if (rp.stat == StageStatus.EXTERNAL) { - if (ropts.isTrace) { - ropts.errStream.printf("\t[DEBUG] Skipped external for staging: %s\n", - rp); + if (rp.stat == StageStatus.EXTERNAL) { + if (ropts.isTrace) { + ropts.errStream.printf( + "\t[DEBUG] Skipped external for staging: %s\n", rp); } - detals.add(rp); + detals.add(rp); } else { - if (ropts.isTrace) { - ropts.errStream.printf("\t[DEBUG] Added to stage %d: %s\n\t\tContents: %s\n", - procStg, rp, curStage); + if (ropts.isTrace) { + ropts.errStream.printf( + "\t[DEBUG] Added to stage %d: %s\n\t\tContents: %s\n", + procStg, rp, curStage); } - curStage.add(rp); + curStage.add(rp); } - } - - tmpList.addAll(curStage); - tmpList.sort(null); - } + } + + tmpList.addAll(curStage); + tmpList.sort(null); + } // Copy over to output, excluding internals - for (ReplPair rp : tmpList) { - if (rp.stat == StageStatus.INTERNAL) { - if (ropts.isTrace) ropts.errStream.printf("\t[DEBUG] Excluded internal: %s\n", rp); + for (ReplPair rp : tmpList) { + if (rp.stat == StageStatus.INTERNAL) { + if (ropts.isTrace) + ropts.errStream.printf("\t[DEBUG] Excluded internal: %s\n", rp); continue; } - detals.add(rp); - } + detals.add(rp); + } - detals.sort(null); + detals.sort(null); - if (ropts.isTrace) { - ropts.errStream.printf("\t[DEBUG] Final output: %s\n", detals); + if (ropts.isTrace) { + ropts.errStream.printf("\t[DEBUG] Final output: %s\n", detals); } - return detals; + return detals; } private static String readMultiLine(String lead, Scanner src, ReplOpts ropts, - List<ReplError> errs, String typ, IntHolder lno) { - String tmp = lead; + String typ, IntHolder lno) { + String tmp = lead; - if (ropts.isTrace && tmp.endsWith("\\")) - ropts.errStream.printf("\t[TRACE] Starting multi-line parse for %s '%s'\n", typ, tmp); + if (ropts.isTrace && tmp.endsWith("\\")) + ropts.errStream.printf("\t[TRACE] Starting multi-line parse for %s '%s'\n", + typ, tmp); - boolean didMulti = tmp.endsWith("\\"); - while (tmp.endsWith("\\")) { - boolean incNL = tmp.endsWith("|\\"); + boolean didMulti = tmp.endsWith("\\"); + while (tmp.endsWith("\\")) { + boolean incNL = tmp.endsWith("|\\"); - if (!src.hasNextLine()) break; + if (!src.hasNextLine()) + break; - String nxt = src.nextLine().trim(); - lno.incr(); + String nxt = src.nextLine().trim(); + lno.incr(); - if (nxt.startsWith("#")) continue; + if (nxt.startsWith("#")) + continue; - String nlStr = incNL ? "\n" : ""; + String nlStr = incNL ? "\n" : ""; - if (tmp.endsWith("\\")) { - if (incNL) { - tmp = tmp.substring(0, tmp.length() - 2); + if (tmp.endsWith("\\")) { + if (incNL) { + tmp = tmp.substring(0, tmp.length() - 2); } else { - tmp = tmp.substring(0, tmp.length() - 1); + tmp = tmp.substring(0, tmp.length() - 1); } } - tmp = String.format("%s%s%s", tmp, nlStr, nxt); - } + tmp = String.format("%s%s%s", tmp, nlStr, nxt); + } - if (ropts.isTrace && didMulti) - ropts.errStream.printf("\t[TRACE] Finished multi-line parse for %s:\n%s\n.\n", + if (ropts.isTrace && didMulti) + ropts.errStream.printf("\t[TRACE] Finished multi-line parse for %s:\n%s\n.\n", typ, tmp); - return tmp; + return tmp; } @Override public String apply(String inp) { - if (guard != null) { - if (!inp.matches(guard)) return inp; + if (guard != null) { + if (!inp.matches(guard)) + return inp; } - return inp.replaceAll(find, replace); + // FIXME :EndingSlash Ben Culkin 5/20/20 + // In the event that replace ends with a \, that throws a confusing exception + String res = inp.replaceAll(find, replace); + + return res; } @Override public String toString() { - String nameStr = ""; + String nameStr = ""; - if (!find.equals(name)) nameStr = String.format("(%s)", name); + if (!find.equals(name)) + nameStr = String.format("(%s)", name); - return String.format("%ss/(%s)/(%s)/p(%d)", nameStr, find, replace, priority); + return String.format("%ss/(%s)/(%s)/p(%d)", nameStr, find, replace, priority); } @Override public int compareTo(ReplPair rp) { - if (this.priority == rp.priority) return this.lno - rp.lno; + if (this.priority == rp.priority) + return this.lno - rp.lno; - return rp.priority - this.priority; + return rp.priority - this.priority; } - + @Override public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((find == null) ? 0 : find.hashCode()); - result = prime * result + ((name == null) ? 0 : name.hashCode()); - result = prime * result + priority; - result = prime * result + ((replace == null) ? 0 : replace.hashCode()); - result = prime * result + stage; - return result; + final int prime = 31; + int result = 1; + result = prime * result + ((find == null) ? 0 : find.hashCode()); + result = prime * result + ((name == null) ? 0 : name.hashCode()); + result = prime * result + priority; + result = prime * result + ((replace == null) ? 0 : replace.hashCode()); + result = prime * result + stage; + return result; } @Override public boolean equals(Object obj) { - if (this == obj) return true; - if (obj == null) return false; - if (getClass() != obj.getClass()) return false; - ReplPair other = (ReplPair) obj; - if (find == null) { - if (other.find != null) return false; - } else if (!find.equals(other.find)) return false; - if (name == null) { - if (other.name != null) return false; - } else if (!name.equals(other.name)) return false; - if (priority != other.priority) return false; - if (replace == null) { - if (other.replace != null) return false; - } else if (!replace.equals(other.replace)) return false; - if (stage != other.stage) return false; - return true; + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + ReplPair other = (ReplPair) obj; + if (find == null) { + if (other.find != null) + return false; + } else if (!find.equals(other.find)) + return false; + if (name == null) { + if (other.name != null) + return false; + } else if (!name.equals(other.name)) + return false; + if (priority != other.priority) + return false; + if (replace == null) { + if (other.replace != null) + return false; + } else if (!replace.equals(other.replace)) + return false; + if (stage != other.stage) + return false; + return true; } private static String readName(String nam, Scanner scn, List<ReplError> errs, ReplPair rp, ReplOpts ropts, IntHolder lno, IntHolder pno) { - ControlledString cs = getControls(nam, errs, ropts, lno, pno, "name"); + ControlledString cs = getControls(nam, errs, ropts, lno, pno, "name"); - boolean isMulti = ropts.defMulti; + boolean isMulti = ropts.defMulti; - String name = cs.strang; + String name = cs.strang; - if (cs.hasControls()) { - for (Control cont : cs.controls) { - switch (cont.name) { - case "NAME": - case "N": - if (cont.count() != 1) { - String errMsg = String.format("One name argument was expected (got %d)", - cont.count()); + if (cs.hasControls()) { + for (Control cont : cs.controls) { + switch (cont.name) { + case "NAME": + case "N": + if (cont.count() != 1) { + String errMsg = String.format( + "One name argument was expected (got %d)", cont.count()); - errs.add(new ReplError(lno, pno, errMsg, nam)); - } else { - rp.name = cont.get(0); - } - break; - case "GUARD": - case "G": - if (cont.count() != 1) { - String errMsg = String.format("One guard argument was expected (got %d)", - cont.count()); - - errs.add(new ReplError(lno, pno, errMsg, nam)); - } else { - String pat = cont.get(0); - - try { - Pattern.compile(pat); - } catch (PatternSyntaxException psex) { - String errMsg = String.format("Guard argument '%s' is not a valid regex (%s)", - pat, psex.getMessage()); - - errs.add(new ReplError(lno, pno, errMsg, nam)); - } - - rp.guard = cont.get(0); - } - break; - case "PRIORITY": - case "PRIOR": - case "P": - try { - if (cont.count() != 1) { - String errMsg = String.format("One priority argument was expected (got %d", - cont.count()); + errs.add(new ReplError(lno, pno, errMsg, nam)); + } else { + rp.name = cont.get(0); + } + break; + case "GUARD": + case "G": + if (cont.count() != 1) { + String errMsg = String.format( + "One guard argument was expected (got %d)", cont.count()); + + errs.add(new ReplError(lno, pno, errMsg, nam)); + } else { + String pat = cont.get(0); - errs.add(new ReplError(lno, pno, errMsg, nam)); - } else { - rp.priority = Integer.parseInt(cont.get(0)); - } - } catch (NumberFormatException nfex) { - String errMsg = String.format("'%s' is not a valid priority (must be an integer)", - cont.get(0)); - - errs.add(new ReplError(lno, pno, errMsg, nam)); - } - break; - case "STAGE": - case "S": try { - if (cont.count() != 1) { - String errMsg = String.format("One stage argument was expected (got %d", - cont.count()); - - errs.add(new ReplError(lno, pno, errMsg, nam)); - } else { - int tmpStage = Integer.parseInt(cont.get(0)); - if (tmpStage < 0) { - String errMsg = String.format("'%s' is not a valid stage (must be a positive integer)", - cont.get(0)); - errs.add(new ReplError(lno, pno, errMsg, nam)); - - break; - } - rp.stage = tmpStage; - } - } catch (NumberFormatException nfex) { - String errMsg = String.format("'%s' is not a valid stage (must be a positive integer)", - cont.get(0)); + Pattern.compile(pat); + } catch (PatternSyntaxException psex) { + String errMsg = String.format( + "Guard argument '%s' is not a valid regex (%s)", pat, + psex.getMessage()); - errs.add(new ReplError(lno, pno, errMsg, nam)); - } - break; - case "MULTITRUE": - case "MULTIT": - case "MT": - isMulti = true; - break; - case "MULTIFALSE": - case "MULTIF": - case "MF": - isMulti = false; - break; - case "MULTI": - case "M": - if (cont.count() != 1) { - String errMsg = String.format("One multi-flag argument was expected (got %d", + errs.add(new ReplError(lno, pno, errMsg, nam)); + } + + rp.guard = cont.get(0); + } + break; + case "PRIORITY": + case "PRIOR": + case "P": + try { + if (cont.count() != 1) { + String errMsg = String.format( + "One priority argument was expected (got %d", + cont.count()); + + errs.add(new ReplError(lno, pno, errMsg, nam)); + } else { + rp.priority = Integer.parseInt(cont.get(0)); + } + } catch (NumberFormatException nfex) { + String errMsg = String.format( + "'%s' is not a valid priority (must be an integer)", + cont.get(0)); + + errs.add(new ReplError(lno, pno, errMsg, nam)); + } + break; + case "STAGE": + case "S": + try { + if (cont.count() != 1) { + String errMsg = String.format( + "One stage argument was expected (got %d", cont.count()); errs.add(new ReplError(lno, pno, errMsg, nam)); } else { - isMulti = Boolean.parseBoolean(cont.get(0)); - } - break; - case "INTERNAL": - case "INT": - case "I": - rp.stat = StageStatus.INTERNAL; - break; - case "EXTERNAL": - case "EXT": - case "E": - rp.stat = StageStatus.EXTERNAL; - break; - case "BOTH": - case "B": - rp.stat = StageStatus.BOTH; - break; - default: - { - String errMsg = String.format("Unknown control name '%s' for name '%s'", - cont.name, nam); - - ReplError erd = new ReplError(lno, pno, errMsg, nam); - - errs.add(erd); + int tmpStage = Integer.parseInt(cont.get(0)); + if (tmpStage < 0) { + String errMsg = String.format( + "'%s' is not a valid stage (must be a positive integer)", + cont.get(0)); + errs.add(new ReplError(lno, pno, errMsg, nam)); + + break; + } + rp.stage = tmpStage; } - break; + } catch (NumberFormatException nfex) { + String errMsg = String.format( + "'%s' is not a valid stage (must be a positive integer)", + cont.get(0)); + + errs.add(new ReplError(lno, pno, errMsg, nam)); + } + break; + case "MULTITRUE": + case "MULTIT": + case "MT": + isMulti = true; + break; + case "MULTIFALSE": + case "MULTIF": + case "MF": + isMulti = false; + break; + case "MULTI": + case "M": + if (cont.count() != 1) { + String errMsg = String.format( + "One multi-flag argument was expected (got %d", + cont.count()); + + errs.add(new ReplError(lno, pno, errMsg, nam)); + } else { + isMulti = Boolean.parseBoolean(cont.get(0)); + } + break; + case "INTERNAL": + case "INT": + case "I": + rp.stat = StageStatus.INTERNAL; + break; + case "EXTERNAL": + case "EXT": + case "E": + rp.stat = StageStatus.EXTERNAL; + break; + case "BOTH": + case "B": + rp.stat = StageStatus.BOTH; + break; + default: { + String errMsg = String.format( + "Unknown control name '%s' for name '%s'", cont.name, nam); + + ReplError erd = new ReplError(lno, pno, errMsg, nam); + + errs.add(erd); + } + break; } } - name = cs.strang; + name = cs.strang; } // Multi-line name with a trailer - if (isMulti) { - String tmp = readMultiLine(name, scn, ropts, errs, "name", lno); - if (tmp == null) return null; - name = tmp; + if (isMulti) { + String tmp = readMultiLine(name, scn, ropts, "name", lno); + if (tmp == null) + return null; + name = tmp; } - return name; + return name; } private static void readGlobal(String nam, Scanner scn, List<ReplError> errs, ReplOpts ropts, IntHolder lno, IntHolder pno) { - ControlledString cs = getControls(nam.substring(1), errs, ropts, lno, pno, "global"); + ControlledString cs + = getControls(nam.substring(1), errs, ropts, lno, pno, "global"); - for (Control cont : cs.controls) { - switch (cont.name) { + for (Control cont : cs.controls) { + switch (cont.name) { case "PRIORITY": case "PRIOR": case "P": try { - if (cont.count() != 1) { - String errMsg = String.format("Must specify 1 priority (%d specified)", - cont.count()); - - errs.add(new ReplError(lno, pno, errMsg, nam)); - } else { - int tmp = Integer.parseInt(cont.get(0)); - ropts.defPrior = tmp; + if (cont.count() != 1) { + String errMsg = String.format( + "Must specify 1 priority (%d specified)", cont.count()); + + errs.add(new ReplError(lno, pno, errMsg, nam)); + } else { + int tmp = Integer.parseInt(cont.get(0)); + ropts.defPrior = tmp; } - } catch (NumberFormatException nfex) { - String errMsg = String.format("'%s' is not a valid priority (must be an integer)", - cont.get(0)); - - errs.add(new ReplError(lno, pno, errMsg, nam)); - } - break; + } catch (NumberFormatException nfex) { + String errMsg = String.format( + "'%s' is not a valid priority (must be an integer)", + cont.get(0)); + + errs.add(new ReplError(lno, pno, errMsg, nam)); + } + break; case "STAGE": case "S": try { - if (cont.count() != 1) { - String errMsg = String.format("Must specify 1 stage (%d specified)", - cont.count()); + if (cont.count() != 1) { + String errMsg = String.format( + "Must specify 1 stage (%d specified)", cont.count()); - errs.add(new ReplError(lno, pno, errMsg, nam)); - } else { - int tmpStage = Integer.parseInt(cont.get(0)); + errs.add(new ReplError(lno, pno, errMsg, nam)); + } else { + int tmpStage = Integer.parseInt(cont.get(0)); - if (tmpStage < 0) { - String errMsg = String.format("'%s' is not a valid stage (must be a positive integer)", - cont.get(0)); + if (tmpStage < 0) { + String errMsg = String.format( + "'%s' is not a valid stage (must be a positive integer)", + cont.get(0)); - errs.add(new ReplError(lno, pno, errMsg, nam)); - break; + errs.add(new ReplError(lno, pno, errMsg, nam)); + break; } - ropts.defStage = tmpStage; + ropts.defStage = tmpStage; } - } catch (NumberFormatException nfex) { - String errMsg = String.format("'%s' is not a valid stage (must be a positive integer)", - cont.get(0)); - - errs.add(new ReplError(lno, pno, errMsg, nam)); - } - break; + } catch (NumberFormatException nfex) { + String errMsg = String.format( + "'%s' is not a valid stage (must be a positive integer)", + cont.get(0)); + + errs.add(new ReplError(lno, pno, errMsg, nam)); + } + break; case "MULTITRUE": case "MULTIT": case "MT": - ropts.defMulti = true; - break; + ropts.defMulti = true; + break; case "MULTIFALSE": case "MULTIF": case "MF": - ropts.defMulti = false; - break; + ropts.defMulti = false; + break; case "MULTI": case "M": - if (cont.count() != 1) { - String errMsg = String.format("Must specify 1 multi-flag (%d specified)", - cont.count()); + if (cont.count() != 1) { + String errMsg = String.format( + "Must specify 1 multi-flag (%d specified)", cont.count()); - errs.add(new ReplError(lno, pno, errMsg, nam)); - } else { - ropts.defMulti = Boolean.parseBoolean(cont.get(0)); + errs.add(new ReplError(lno, pno, errMsg, nam)); + } else { + ropts.defMulti = Boolean.parseBoolean(cont.get(0)); } - break; + break; case "INTERNAL": case "INT": case "I": - ropts.defStatus = StageStatus.INTERNAL; - break; + ropts.defStatus = StageStatus.INTERNAL; + break; case "EXTERNAL": case "EXT": case "E": - ropts.defStatus = StageStatus.EXTERNAL; - break; + ropts.defStatus = StageStatus.EXTERNAL; + break; case "BOTH": case "B": - ropts.defStatus = StageStatus.BOTH; - break; + ropts.defStatus = StageStatus.BOTH; + break; case "DEBUGTRUE": case "DEBUGT": case "DT": - ropts.isDebug = true; - break; + ropts.isDebug = true; + break; case "DEBUGFALSE": case "DEBUGF": case "DF": - ropts.isDebug = false; - break; + ropts.isDebug = false; + break; case "DEBUG": case "D": - if (cont.count() != 1) { - String errMsg = String.format("Must specify 1 debug flag (%d specified)", - cont.count()); + if (cont.count() != 1) { + String errMsg = String.format( + "Must specify 1 debug flag (%d specified)", cont.count()); - errs.add(new ReplError(lno, pno, errMsg, nam)); - } else { - ropts.isDebug = Boolean.parseBoolean(cont.get(0)); + errs.add(new ReplError(lno, pno, errMsg, nam)); + } else { + ropts.isDebug = Boolean.parseBoolean(cont.get(0)); } - break; + break; case "TRACETRUE": case "TRACET": case "TT": - ropts.isTrace = true; - break; + ropts.isTrace = true; + break; case "TRACEFALSE": case "TRACEF": case "TF": - ropts.isTrace = false; - break; + ropts.isTrace = false; + break; case "TRACE": case "T": - if (cont.count() != 1) { - String errMsg = String.format("Must specify 1 trace flag (%d specified)", - cont.count()); + if (cont.count() != 1) { + String errMsg = String.format( + "Must specify 1 trace flag (%d specified)", cont.count()); - errs.add(new ReplError(lno, pno, errMsg, nam)); - } else { - ropts.isTrace = Boolean.parseBoolean(cont.get(0)); + errs.add(new ReplError(lno, pno, errMsg, nam)); + } else { + ropts.isTrace = Boolean.parseBoolean(cont.get(0)); } - break; + break; case "PERFTRUE": case "PERFT": case "PRFT": - ropts.isPerf = true; - break; + ropts.isPerf = true; + break; case "PERFFALSE": case "PERFF": case "PRFF": - ropts.isPerf = false; - break; + ropts.isPerf = false; + break; case "PERF": case "PRF": - if (cont.count() != 1) { - String errMsg = String.format("Must specify 1 perf. flag (%d specified)", - cont.count()); + if (cont.count() != 1) { + String errMsg = String.format( + "Must specify 1 perf. flag (%d specified)", cont.count()); - errs.add(new ReplError(lno, pno, errMsg, nam)); - } else { - ropts.isPerf = Boolean.parseBoolean(cont.get(0)); - } - break; - default: - { - String msg = String.format("Invalid global control name '%s'", cont.name); - ReplError err = new ReplError(lno, pno, msg, nam); - errs.add(err); + errs.add(new ReplError(lno, pno, errMsg, nam)); + } else { + ropts.isPerf = Boolean.parseBoolean(cont.get(0)); } + break; + default: { + String msg = String.format("Invalid global control name '%s'", cont.name); + ReplError err = new ReplError(lno, pno, msg, nam); + errs.add(err); + } break; } - if (ropts.isTrace) - ropts.errStream.printf("\t[TRACE] Processed global control '%s'\n", cont); + if (ropts.isTrace) + ropts.errStream.printf("\t[TRACE] Processed global control '%s'\n", cont); } - return; + return; } - + private static ControlledString getControls(String lne, List<ReplError> errs, ReplOpts ropts, IntHolder lno, IntHolder pno, String type) { try { - return ControlledString.parse(lne, new ParseStrings("//", ";", "/", "|")); - } catch (IllegalArgumentException iaex) { - String msg = "Did not find control terminator (//) in %s where it should be"; - msg = String.format(msg, type); + return ControlledString.parse(lne, new ParseStrings("//", ";", "/", "|")); + } catch (IllegalArgumentException iaex) { + String msg = "Did not find control terminator (//) in %s where it should be"; + msg = String.format(msg, type); - ReplError re = new ReplError(lno, pno, msg, lne); - errs.add(re); + ReplError re = new ReplError(lno, pno, msg, lne); + errs.add(re); - return null; + return null; } } } diff --git a/docs/jacoco-ut/bjc.everge/ReplSet.html b/docs/jacoco-ut/bjc.everge/ReplSet.html index 125ee6b..6289f85 100644 --- a/docs/jacoco-ut/bjc.everge/ReplSet.html +++ b/docs/jacoco-ut/bjc.everge/ReplSet.html @@ -1 +1 @@ -ReplSet

ReplSet

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total105 of 1050%6 of 60%99242466
addPairs(ReplPair[])260%20%224411
fromFile(String)240%n/a114411
addPairs(List)210%20%225511
apply(String)200%20%225511
ReplSet()80%n/a113311
ReplSet(List)60%n/a113311
\ No newline at end of file +ReplSet

ReplSet

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total56 of 12555%2 of 666%49122736
addPairs(ReplPair[])260%20%224411
fromFile(String)240%n/a115511
ReplSet(List)60%n/a113311
apply(String)40100%2100%020701
addPairs(List)21100%2100%020501
ReplSet()8100%n/a010301
\ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/ReplSet.java.html b/docs/jacoco-ut/bjc.everge/ReplSet.java.html index 42da031..544bf8a 100644 --- a/docs/jacoco-ut/bjc.everge/ReplSet.java.html +++ b/docs/jacoco-ut/bjc.everge/ReplSet.java.html @@ -16,85 +16,92 @@ public class ReplSet { /** * Create a new blank set of pairs. */ - public ReplSet() { - parList = new ArrayList<>(); - } + public ReplSet() { + parList = new ArrayList<>(); + } /** * Create a new set of pairs using an existing list of pairs. * - * Changes to the list of pairs will carry across to the ReplSet, so be careful about that. + * Changes to the list of pairs will carry across to the ReplSet, so be careful + * about that. * * @param lst - * The list of pairs to use. + * The list of pairs to use. */ - public ReplSet(List<ReplPair> lst) { - parList = lst; - } + public ReplSet(List<ReplPair> lst) { + parList = lst; + } /** * Load a ReplSet from a file. + * * @param fName - * The file to load the ReplSet from. + * The file to load the ReplSet from. * @return A ReplSet, loaded from the file. - * @throws IOException if something goes badly reading it. + * @throws IOException + * if something goes badly reading it. */ public static ReplSet fromFile(String fName) throws IOException { - ReplSet rs = new ReplSet(); + ReplSet rs = new ReplSet(); - try (FileInputStream fis = new FileInputStream(fName); Scanner scn = new Scanner(fis)) { - rs.parList = ReplPair.readList(scn); + try (FileInputStream fis = new FileInputStream(fName); + Scanner scn = new Scanner(fis)) { + rs.parList = ReplPair.readList(scn); } - return rs; + return rs; } /** * Adds more pairs to the ReplSet. * * @param pars - * The pairs to add to the ReplSet. + * The pairs to add to the ReplSet. */ public void addPairs(List<ReplPair> pars) { - for (ReplPair par : pars) { - parList.add(par); - } + for (ReplPair par : pars) { + parList.add(par); + } // Resort the pairs into priority order - parList.sort(null); - } + parList.sort(null); + } /** * Adds more pairs to the ReplSet. * * @param pars - * The pairs to add to the ReplSet. + * The pairs to add to the ReplSet. */ public void addPairs(ReplPair... pars) { - for (ReplPair par : pars) { - parList.add(par); + for (ReplPair par : pars) { + parList.add(par); } // Resort the pairs into priority order - parList.sort(null); - } + parList.sort(null); + } /** * Apply the ReplSet to a string. * * @param val - * The string to apply the ReplSet to. + * The string to apply the ReplSet to. * * @return The result of applying the ReplSet. */ public String apply(String val) { - String ret = val; + String ret = val; - for (ReplPair par : parList) { - ret = par.apply(ret); - } + for (ReplPair par : parList) { + System.err.printf("Applying pair '%s' to string '%s' (original was '%s')\n", par, ret, val); + String tmp = par.apply(ret); - return ret; + ret = tmp; + } + + return ret; } } \ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/StageStatus.html b/docs/jacoco-ut/bjc.everge/StageStatus.html index 743ca89..f6b4fa6 100644 --- a/docs/jacoco-ut/bjc.everge/StageStatus.html +++ b/docs/jacoco-ut/bjc.everge/StageStatus.html @@ -1 +1 @@ -StageStatus

StageStatus

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total0 of 34100%0 of 0n/a010401
static {...}34100%n/a010401
\ No newline at end of file +StageStatus

StageStatus

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total0 of 34100%0 of 0n/a010401
static {...}34100%n/a010401
\ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/StageStatus.java.html b/docs/jacoco-ut/bjc.everge/StageStatus.java.html index 343fd08..684c605 100644 --- a/docs/jacoco-ut/bjc.everge/StageStatus.java.html +++ b/docs/jacoco-ut/bjc.everge/StageStatus.java.html @@ -2,21 +2,21 @@ /** * Possible statuses of pairs with respect to exporting. + * * @author Ben Culkin */ -public enum StageStatus { +public enum StageStatus { /** * Only use for staging pairs; don't export. */ - INTERNAL, + INTERNAL, /** * Don't use for staging pairs; do export. */ - EXTERNAL, + EXTERNAL, /** * Use for staging pairs; do export. */ - BOTH; + BOTH; } - \ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/StringUtils.html b/docs/jacoco-ut/bjc.everge/StringUtils.html index 70dd0da..57878e3 100644 --- a/docs/jacoco-ut/bjc.everge/StringUtils.html +++ b/docs/jacoco-ut/bjc.everge/StringUtils.html @@ -1 +1 @@ -StringUtils

StringUtils

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total114 of 36768%13 of 4872%1329167215
escapeSplit(String, String, String)11121265%133572%1225156401
StringUtils()30%n/a111111
sliceStringL(String, int, int)20100%n/a010301
sliceString(String, int, int)18100%n/a010301
static {...}3100%n/a010101
\ No newline at end of file +StringUtils

StringUtils

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total114 of 36768%13 of 4872%1329187515
escapeSplit(String, String, String)11121265%133572%1225176701
StringUtils()30%n/a111111
sliceStringL(String, int, int)20100%n/a010301
sliceString(String, int, int)18100%n/a010301
static {...}3100%n/a010101
\ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/StringUtils.java.html b/docs/jacoco-ut/bjc.everge/StringUtils.java.html index f701116..3b48c10 100644 --- a/docs/jacoco-ut/bjc.everge/StringUtils.java.html +++ b/docs/jacoco-ut/bjc.everge/StringUtils.java.html @@ -19,12 +19,12 @@ import java.util.regex.Pattern; * Split a string on every occurrence of a string not preceded by an escape. * * @param escape - * The escape that stops splitting. + * The escape that stops splitting. * @param splat - * The string to split on. If this starts with the escape sequence, things will work - * poorly. + * The string to split on. If this starts with the escape + * sequence, things will work poorly. * @param inp - * The string to split. + * The string to split. * @return The string split as specified above. */ public static String[] escapeSplit(String escape, String splat, String inp) { @@ -34,185 +34,191 @@ import java.util.regex.Pattern; // No input if (inp == null || inp.equals("")) { - return new String[] {inp}; + return new String[] { + inp + }; } // Input does not contain any delimiters - if (!inp.contains(splat)) { - return new String[] {inp}; + if (!inp.contains(splat)) { + return new String[] { + inp + }; } // No escape, so we can just split normally - if (escape == null || escape.equals("")) { - return inp.split(Pattern.quote(splat)); + if (escape == null || escape.equals("")) { + return inp.split(Pattern.quote(splat)); } - List<String> ret = new ArrayList<>(); + List<String> ret = new ArrayList<>(); /* * Set up working variables */ // Copy of parameters - String wrk = inp; + String wrk = inp; // Index of first occurrence of split string - int sidx = wrk.indexOf(splat); + int sidx = wrk.indexOf(splat); // Index of first occurrence of escaped string - int eidx = wrk.indexOf(escape); + int eidx = wrk.indexOf(escape); // Was the last thing we saw an escape? - // This is used to enable the handling of escaping escapes - boolean hadEscape = false; + // This is used to enable the handling of escaping escapes + boolean hadEscape = false; // As long as there an occurrence of either the split/escape - while (sidx != -1 || eidx != -1) { + while (sidx != -1 || eidx != -1) { // If there is an escape before a split - if (eidx > 0 && eidx < sidx) { - if (isDebug) System.err.printf("[TRACE] Considering escape\n"); + if (eidx > 0 && eidx < sidx) { + if (isDebug) + System.err.printf("[TRACE] Considering escape\n"); /* - * We potentially have an escaped sequence: - * - either an escaped split - * - or an escaped escape + * We potentially have an escaped sequence: - either an escaped split - or + * an escaped escape */ // Check for an escaped split - boolean hasEscapedSplit = wrk.startsWith(splat, eidx + escape.length()); - if (hasEscapedSplit) { + boolean hasEscapedSplit = wrk.startsWith(splat, eidx + escape.length()); + if (hasEscapedSplit) { // Skip over it - int ofst = eidx + splat.length(); + int ofst = eidx + splat.length(); - wrk = sliceStringL(wrk, eidx, escape.length()); + wrk = sliceStringL(wrk, eidx, escape.length()); // Recalculate indexes - sidx = wrk.indexOf(splat, ofst); - eidx = wrk.indexOf(escape, ofst); + sidx = wrk.indexOf(splat, ofst); + eidx = wrk.indexOf(escape, ofst); - if (isDebug) { - System.err.printf("[TRACE] After esc. split (%s) %d/%d\n", - wrk, sidx, eidx); + if (isDebug) { + System.err.printf("[TRACE] After esc. split (%s) %d/%d\n", wrk, + sidx, eidx); } // No pending escape - hadEscape = false; - continue; + hadEscape = false; + continue; } // Check for an escaped escape - boolean hasEscapedEscape = wrk.startsWith(escape, eidx + escape.length()); - if (hasEscapedEscape) { + boolean hasEscapedEscape = wrk.startsWith(escape, eidx + escape.length()); + if (hasEscapedEscape) { // Skip over it - int ofst = eidx + escape.length(); + int ofst = eidx + escape.length(); - wrk = sliceStringL(wrk, eidx, escape.length()); + wrk = sliceStringL(wrk, eidx, escape.length()); // Recalculate indexes - sidx = wrk.indexOf(splat, ofst); - eidx = wrk.indexOf(escape, ofst); + sidx = wrk.indexOf(splat, ofst); + eidx = wrk.indexOf(escape, ofst); - if (isDebug) { - System.err.printf("[TRACE] After esc. escape (%s)/(%s) %d/%d\n", - wrk, wrk.substring(ofst), sidx, eidx); + if (isDebug) { + System.err.printf("[TRACE] After esc. escape (%s)/(%s) %d/%d\n", + wrk, wrk.substring(ofst), sidx, eidx); } // There's a pending escape - hadEscape = true; - continue; + hadEscape = true; + continue; } } // Calculate whether there is currently an escape - boolean hasEscape = false; + boolean hasEscape = false; { - boolean tmp = wrk.startsWith(escape, sidx - escape.length()); + boolean tmp = wrk.startsWith(escape, sidx - escape.length()); // boolean tmp = wrk.regionMatches(lo, escape, 0, escape.length()); - hasEscape = hadEscape ? false : tmp; + hasEscape = hadEscape ? false : tmp; } // Handle anything that the pending escape may be applied to - while (sidx != -1 && hasEscape) { - int oidx = wrk.indexOf(splat, sidx + escape.length()); + while (sidx != -1 && hasEscape) { + int oidx = wrk.indexOf(splat, sidx + escape.length()); - if (oidx == -1) break; + if (oidx == -1) + break; - wrk = sliceStringL(wrk, oidx, escape.length()); + wrk = sliceStringL(wrk, oidx, escape.length()); - sidx = oidx; + sidx = oidx; - hasEscape = wrk.startsWith(escape, sidx - escape.length()); - } + hasEscape = wrk.startsWith(escape, sidx - escape.length()); + } - if (sidx == -1) { - break; + if (sidx == -1) { + break; } - String tmp = wrk.substring(0, sidx); + String tmp = wrk.substring(0, sidx); - if (isDebug) { - System.err.printf("[TRACE] Adding (%s) to returned splits; (%s)\n", - tmp, wrk.substring(sidx)); + if (isDebug) { + System.err.printf("[TRACE] Adding (%s) to returned splits; (%s)\n", tmp, + wrk.substring(sidx)); } - ret.add(tmp); - if (!tmp.equals("") && wrk.endsWith(tmp)) { - wrk = ""; + ret.add(tmp); + if (!tmp.equals("") && wrk.endsWith(tmp)) { + wrk = ""; } else { - if (wrk.indexOf(splat, sidx) != -1) { - wrk = wrk.substring(sidx + splat.length()); + if (wrk.indexOf(splat, sidx) != -1) { + wrk = wrk.substring(sidx + splat.length()); } else { - wrk = wrk.substring(sidx); + wrk = wrk.substring(sidx); } } - sidx = wrk.indexOf(splat); - eidx = wrk.indexOf(escape); + sidx = wrk.indexOf(splat); + eidx = wrk.indexOf(escape); - hadEscape = false; - } + hadEscape = false; + } - if (!wrk.equals("")) ret.add(wrk); + if (!wrk.equals("")) + ret.add(wrk); - return ret.toArray(new String[0]); + return ret.toArray(new String[0]); } /** * Slice a substring out of another string. * * @param strang - * The string to remove a substring from. + * The string to remove a substring from. * @param lft - * The left-side of the substring to remove. + * The left-side of the substring to remove. * @param rft - * The right-side of the substring to remove. + * The right-side of the substring to remove. * * @return The string, with the substring removed. */ public static String sliceString(String strang, int lft, int rft) { - String leftSide = strang.substring(0, lft); - String rightSide = strang.substring(rft); + String leftSide = strang.substring(0, lft); + String rightSide = strang.substring(rft); - return leftSide + rightSide; + return leftSide + rightSide; } /** * Slice a substring out of another string. * * @param strang - * The string to remove a substring from. + * The string to remove a substring from. * @param lft - * The left-side of the substring to remove. + * The left-side of the substring to remove. * @param len - * The length of the substring to remove. + * The length of the substring to remove. * * @return The string, with the substring removed. */ public static String sliceStringL(String strang, int lft, int len) { - String leftSide = strang.substring(0, lft); - String rightSide = strang.substring(lft + len); + String leftSide = strang.substring(0, lft); + String rightSide = strang.substring(lft + len); - return leftSide + rightSide; + return leftSide + rightSide; } } \ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/index.html b/docs/jacoco-ut/bjc.everge/index.html index 8de90e0..4a34eec 100644 --- a/docs/jacoco-ut/bjc.everge/index.html +++ b/docs/jacoco-ut/bjc.everge/index.html @@ -1 +1 @@ -bjc.everge

bjc.everge

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
Total2,246 of 4,19046%241 of 46047%2053244178592675113
ReplPair98786346%10011152%8413716937121801
Everge53831937%542934%41551241992801
ReplOpts1473016%300%171822322301
ControlledString.Control13210143%222250%203121463901
StringUtils11425368%133572%132916721501
ReplSet1050%60%9924246611
ControlledString7414466%31583%51617433701
ReplError726045%712%697182501
BadReplParse596953%6650%71011272401
IntHolder2268%n/a265122601
ControlledString.ParseStrings65%n/a12171201
Everge.InputStatus34100%n/a01040101
StageStatus34100%n/a01040101
\ No newline at end of file +bjc.everge

bjc.everge

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
Total2,333 of 4,69350%243 of 49250%2283765031,05044110015
ReplPair93891249%9211956%7913718040321801
Everge56851347%574041%486813724831301
ReplOpts1473016%300%171832422301
ControlledString.Control13410443%232350%213229553901
StringUtils11425368%133572%132918751501
LogStream915437%2250%17263453162401
ControlledString7414466%31583%51617453701
ReplError726045%712%6910222501
MirrorOutputStream624743%8433%81216254601
BadReplParse596953%6650%71012282401
ReplSet566955%2466%4912273601
IntHolder2268%n/a265122601
ControlledString.ParseStrings65%n/a12171201
Everge.InputStatus34100%n/a01040101
StageStatus34100%n/a01040101
\ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/index.source.html b/docs/jacoco-ut/bjc.everge/index.source.html index 099940c..ed9c3cc 100644 --- a/docs/jacoco-ut/bjc.everge/index.source.html +++ b/docs/jacoco-ut/bjc.everge/index.source.html @@ -1 +1 @@ -bjc.everge

bjc.everge

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
Total2,246 of 4,19046%241 of 46047%2053244178592675113
ReplPair.java98786346%10011152%8413716937121801
Everge.java53835339%542934%41561242032902
ControlledString.java21426054%253759%2649399671803
ReplOpts.java1473016%300%171822322301
StringUtils.java11425368%133572%132916721501
ReplSet.java1050%60%9924246611
ReplError.java726045%712%697182501
BadReplParse.java596953%6650%71011272401
IntHolder.java2268%n/a265122601
StageStatus.java34100%n/a01040101
\ No newline at end of file +bjc.everge

bjc.everge

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
Total2,333 of 4,69350%243 of 49250%2283765031,05044110015
ReplPair.java93891249%9211956%7913718040321801
Everge.java56854749%574041%486913725231402
ControlledString.java21626354%263859%27504710771803
ReplOpts.java1473016%300%171832422301
StringUtils.java11425368%133572%132918751501
LogStream.java915437%2250%17263453162401
ReplError.java726045%712%6910222501
MirrorOutputStream.java624743%8433%81216254601
BadReplParse.java596953%6650%71012282401
ReplSet.java566955%2466%4912273601
IntHolder.java2268%n/a265122601
StageStatus.java34100%n/a01040101
\ No newline at end of file diff --git a/docs/jacoco-ut/index.html b/docs/jacoco-ut/index.html index 764c12a..d896dec 100644 --- a/docs/jacoco-ut/index.html +++ b/docs/jacoco-ut/index.html @@ -1 +1 @@ -everge

everge

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
Total2,246 of 4,19046%241 of 46047%2053244178592675113
bjc.everge2,2461,94446%24121947%2053244178592675113
\ No newline at end of file +everge

everge

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
Total2,333 of 4,69350%243 of 49250%2283765031,05044110015
bjc.everge2,3332,36050%24324950%2283765031,05044110015
\ No newline at end of file diff --git a/docs/jacoco-ut/jacoco-sessions.html b/docs/jacoco-ut/jacoco-sessions.html index 407a1e1..6e5d29f 100644 --- a/docs/jacoco-ut/jacoco-sessions.html +++ b/docs/jacoco-ut/jacoco-sessions.html @@ -1 +1 @@ -Sessions

Sessions

This coverage report is based on execution data from the following sessions:

SessionStart TimeDump Time
Benjamins-MBP-3f518920Sep 9, 2019 8:13:00 PMSep 9, 2019 8:13:03 PM

Execution data for the following classes is considered in this report:

ClassId
bjc.everge.BadReplParse40ae0f685312e439
bjc.everge.ControlledStringbce85694556916e0
bjc.everge.ControlledString.Controlae23ba8c56b400e1
bjc.everge.ControlledString.ParseStrings406a879e3348c157
bjc.everge.ControlledStringTest6244890a2a92ca2c
bjc.everge.Evergeb32ffa53314eb443
bjc.everge.Everge.InputStatus136ca4a661f7b4af
bjc.everge.EvergeTestcdb20595b065d577
bjc.everge.IntHolder0d0152461fea2926
bjc.everge.ReplErrorf9ec5518f9733fc9
bjc.everge.ReplOpts651a1c7297deed59
bjc.everge.ReplPair245809d0191110df
bjc.everge.ReplPairTestbf482fbe60b18e62
bjc.everge.StageStatusac16631888ecec1d
bjc.everge.StringUtils49f8044a26c2dcdf
bjc.everge.StringUtilsTestf40e3aab35c0f54a
bjc.everge.TestUtilsb2fa7b9f435dffba
org.apache.maven.plugin.surefire.log.api.NullConsoleLogger80d79e52a7499259
org.apache.maven.surefire.NonAbstractClassFilter7fa4110cdc2fc1de
org.apache.maven.surefire.booter.AbstractPathConfiguration8182fa1396653f01
org.apache.maven.surefire.booter.BaseProviderFactory82593383b8ea92d6
org.apache.maven.surefire.booter.BiProperty4945e268841ae2cb
org.apache.maven.surefire.booter.BooterDeserializer5e68b147d2c4b22f
org.apache.maven.surefire.booter.ClassLoaderConfigurationdc8fd5c18ebb0e44
org.apache.maven.surefire.booter.Classpathc898ea9ca4a65da5
org.apache.maven.surefire.booter.ClasspathConfigurationfbf5fb96600339ce
org.apache.maven.surefire.booter.Commandeb1b53eb8cbe7b47
org.apache.maven.surefire.booter.CommandReader0c8d3ca700ec7199
org.apache.maven.surefire.booter.CommandReader.1fbfebde20e2b504c
org.apache.maven.surefire.booter.CommandReader.CommandRunnableee59ae4d74408619
org.apache.maven.surefire.booter.DumpErrorSingleton2b476b92c5a56cec
org.apache.maven.surefire.booter.ForkedBooter7c637cf5651513d1
org.apache.maven.surefire.booter.ForkedBooter.18e738e4578953efa
org.apache.maven.surefire.booter.ForkedBooter.2eed8c1764882af0e
org.apache.maven.surefire.booter.ForkedBooter.3c484c4542ee85d76
org.apache.maven.surefire.booter.ForkedBooter.4fdd9c09c784f8eea
org.apache.maven.surefire.booter.ForkedBooter.57b8c4d35432edce6
org.apache.maven.surefire.booter.ForkedBooter.6b897d54528b69e6d
org.apache.maven.surefire.booter.ForkedBooter.7fe5121edb86030bc
org.apache.maven.surefire.booter.ForkedBooter.PingSchedulerd29065207a6b6c40
org.apache.maven.surefire.booter.ForkingReporterFactory076a6c0176f6238b
org.apache.maven.surefire.booter.ForkingRunListener92d4b034b32ca2c0
org.apache.maven.surefire.booter.MasterProcessCommandda65de332c2de19d
org.apache.maven.surefire.booter.PpidChecker71b8c658da2ea8d3
org.apache.maven.surefire.booter.PpidChecker.1a004a9a91ab49ba2
org.apache.maven.surefire.booter.PpidChecker.ProcessInfoConsumer73f319c21fab7e7f
org.apache.maven.surefire.booter.ProcessInfob5b56cd86f3f0b31
org.apache.maven.surefire.booter.PropertiesWrapperae4bf137cc5290c1
org.apache.maven.surefire.booter.ProviderConfigurationd19986536a351b50
org.apache.maven.surefire.booter.Shutdownee9c65017e107986
org.apache.maven.surefire.booter.StartupConfigurationa8cc10b01ed27439
org.apache.maven.surefire.booter.SystemPropertyManagerf47497b1dde50d64
org.apache.maven.surefire.booter.TypeEncodedValue5ea9766678ac06a2
org.apache.maven.surefire.cli.CommandLineOption467fc7f51b73863b
org.apache.maven.surefire.common.junit3.JUnit3TestChecker60f0e8645c7f9683
org.apache.maven.surefire.common.junit4.JUnit4ProviderUtil2efb9b040a733f46
org.apache.maven.surefire.common.junit4.JUnit4Reflectorc6b492fe44aeaaad
org.apache.maven.surefire.common.junit4.JUnit4RunListenere9b69f33ef0f0ee2
org.apache.maven.surefire.common.junit4.JUnit4RunListenerFactory47691d741b824165
org.apache.maven.surefire.common.junit4.JUnit4TestChecker0ecb2bc7979f6afe
org.apache.maven.surefire.common.junit4.JUnitTestFailureListener713afbdb99a074d5
org.apache.maven.surefire.common.junit4.Notifiercc79e323f237d54b
org.apache.maven.surefire.junit4.JUnit4Providerea5628d21adfaab0
org.apache.maven.surefire.junit4.JUnit4Provider.1b81832311ccdea03
org.apache.maven.surefire.providerapi.AbstractProvider90f3b08fe8a1c87c
org.apache.maven.surefire.report.ConsoleOutputCaptureb8ae904ed8536017
org.apache.maven.surefire.report.ConsoleOutputCapture.ForwardingPrintStreamf912ea5d2dac308e
org.apache.maven.surefire.report.ConsoleOutputCapture.NullOutputStream8d05eb67510fd586
org.apache.maven.surefire.report.ReporterConfiguration4281487891f02f69
org.apache.maven.surefire.report.SimpleReportEntryced572f24a462295
org.apache.maven.surefire.shade.org.apache.commons.io.IOUtils31aed2fcfab3e082
org.apache.maven.surefire.shade.org.apache.commons.io.output.StringBuilderWriter6d33fec8cb3374c0
org.apache.maven.surefire.shade.org.apache.commons.lang3.JavaVersiona8452005cb20bb7d
org.apache.maven.surefire.shade.org.apache.commons.lang3.StringUtils4f785afa8bb3a23f
org.apache.maven.surefire.shade.org.apache.commons.lang3.SystemUtilsaba69a973b7ba06a
org.apache.maven.surefire.shade.org.apache.commons.lang3.math.NumberUtilsd0156407bff7b695
org.apache.maven.surefire.shade.org.apache.maven.shared.utils.StringUtils483d14212b21a3ea
org.apache.maven.surefire.suite.RunResultf5c7c53a954bcafa
org.apache.maven.surefire.testset.DirectoryScannerParameters2b5eeacae469cd1d
org.apache.maven.surefire.testset.IncludedExcludedPatternsf39908e3b64d7090
org.apache.maven.surefire.testset.ResolvedTesta598483e424232d4
org.apache.maven.surefire.testset.ResolvedTest.ClassMatcher79be7f2fa77ad8d7
org.apache.maven.surefire.testset.ResolvedTest.MethodMatcher7c71374a51e8e61b
org.apache.maven.surefire.testset.ResolvedTest.Type90e4214668937845
org.apache.maven.surefire.testset.RunOrderParametersb4c06223c3099700
org.apache.maven.surefire.testset.TestArtifactInfof703953620e80b33
org.apache.maven.surefire.testset.TestListResolver7d372c99b98a147d
org.apache.maven.surefire.testset.TestRequest0fa2c0cc34345df2
org.apache.maven.surefire.util.CloseableIteratorcc15bdebae86d5d2
org.apache.maven.surefire.util.DefaultRunOrderCalculator1aeecbcd3bf6e89b
org.apache.maven.surefire.util.DefaultScanResult7fefafdf8c793c36
org.apache.maven.surefire.util.ReflectionUtils8d5f4b05d6d77207
org.apache.maven.surefire.util.RunOrderd2292a6beb4b6337
org.apache.maven.surefire.util.TestsToRuna95363e4b4ba2069
org.apache.maven.surefire.util.TestsToRun.ClassesIterator84a139c598502c0b
org.apache.maven.surefire.util.internal.DaemonThreadFactory21a589f6dedb169c
org.apache.maven.surefire.util.internal.DaemonThreadFactory.NamedThreadFactory682458ca85b067a3
org.apache.maven.surefire.util.internal.DumpFileUtils506743b77fc98f6e
org.apache.maven.surefire.util.internal.ImmutableMap72bcae5e55b4fabb
org.apache.maven.surefire.util.internal.ImmutableMap.Nodeecc659afb4f6d68b
org.apache.maven.surefire.util.internal.ObjectUtils69a2a92649b44645
org.apache.maven.surefire.util.internal.StringUtils3a7e4daf0a993e1e
org.apache.maven.surefire.util.internal.TestClassMethodNameUtils7ccab40b69c25b60
org.junit.Assert78fc7dec7d95195c
org.junit.internal.ComparisonCriteriadb393c2da1190e93
org.junit.internal.ExactComparisonCriteriab46e382b993e25ce
org.junit.internal.MethodSorterae094a8ce1747b79
org.junit.internal.MethodSorter.1d3997b4bdb7889c1
org.junit.internal.MethodSorter.2c8e6351cbf098013
org.junit.internal.builders.AllDefaultPossibilitiesBuilder2d26b5eadd1a8c2a
org.junit.internal.builders.AnnotatedBuilderb6759f9e68d937a7
org.junit.internal.builders.IgnoredBuildere152f333c53967a6
org.junit.internal.builders.JUnit3Builder4a2cc8e608e1275e
org.junit.internal.builders.JUnit4Builder5902b7da0403f55c
org.junit.internal.builders.SuiteMethodBuilder1df136431e07e393
org.junit.internal.requests.ClassRequestcbba192d9af40c26
org.junit.internal.runners.model.EachTestNotifierff8c3fbb105e71ef
org.junit.internal.runners.model.ReflectiveCallabled591724635588bcb
org.junit.internal.runners.rules.RuleFieldValidatorfbc09f9fcb2f9c1a
org.junit.internal.runners.statements.InvokeMethodfa03219f4a4eb968
org.junit.runner.Descriptionc3b4a36e785ee4be
org.junit.runner.Request2501a2515fbe4d86
org.junit.runner.Result6a4a99282d9b0054
org.junit.runner.Result.Listener2060330526262fe0
org.junit.runner.Runnerf5abacc70e2e08a4
org.junit.runner.manipulation.Sorter79c19bcbe8cfca2d
org.junit.runner.manipulation.Sorter.11efe268be59403aa
org.junit.runner.notification.RunListener3350f142e74350a4
org.junit.runner.notification.RunNotifierb34e922304507f84
org.junit.runner.notification.RunNotifier.10d2544b721f0db56
org.junit.runner.notification.RunNotifier.2965ba1903620a2e4
org.junit.runner.notification.RunNotifier.34b1a15148beab121
org.junit.runner.notification.RunNotifier.7c8d33a2e217dded2
org.junit.runner.notification.RunNotifier.SafeNotifier19d584cef25f3ec4
org.junit.runners.BlockJUnit4ClassRunner739bf3a723ee0fec
org.junit.runners.BlockJUnit4ClassRunner.112f85f32c9daafd9
org.junit.runners.ParentRunner287dd153523ee445
org.junit.runners.ParentRunner.1e4b11be78f36c92b
org.junit.runners.ParentRunner.251b5d3c1c8fd8878
org.junit.runners.ParentRunner.3678f2be2f7c4a558
org.junit.runners.model.FrameworkField483e074f630c2720
org.junit.runners.model.FrameworkMember6b9f1505fe4f5d84
org.junit.runners.model.FrameworkMethod78c84f58af3747e6
org.junit.runners.model.FrameworkMethod.152edf435461bec2b
org.junit.runners.model.RunnerBuilder0281d51b4f8328d4
org.junit.runners.model.Statement9a75aa5de27bf4d5
org.junit.runners.model.TestClass2bf85bd14e16d25e
\ No newline at end of file +Sessions

Sessions

This coverage report is based on execution data from the following sessions:

SessionStart TimeDump Time
naberius-34ffc173May 20, 2020 7:39:24 PMMay 20, 2020 7:39:25 PM

Execution data for the following classes is considered in this report:

ClassId
bjc.everge.BadReplParse192749f78fa4dcf7
bjc.everge.ControlledStringde4df65d10df05e4
bjc.everge.ControlledString.Control13055b1089a83a1b
bjc.everge.ControlledString.ParseStrings95f077ad3b296fd3
bjc.everge.ControlledStringTestd85656047fb0b2c0
bjc.everge.Evergee78cf3d00e7fabbb
bjc.everge.Everge.InputStatusd7f64c819e765670
bjc.everge.EvergeTest21abcf1137690dee
bjc.everge.IntHolder0d0152461fea2926
bjc.everge.LogStream1f573f87a267fba6
bjc.everge.MirrorOutputStream41cf9ff539b92372
bjc.everge.ReplError7f6140b3044d0ae2
bjc.everge.ReplOpts4222227f383a19f5
bjc.everge.ReplPairc4d4cdf23bf73131
bjc.everge.ReplPairTeste072c1b1fa043cf9
bjc.everge.ReplSetfa93312641f33939
bjc.everge.StageStatus5406e215a12f7b9e
bjc.everge.StringUtilsfef9c14b157f7212
bjc.everge.StringUtilsTest00905aae090b69ed
bjc.everge.TestUtils36875715fb8fec04
org.apache.maven.plugin.surefire.log.api.NullConsoleLogger80d79e52a7499259
org.apache.maven.surefire.NonAbstractClassFilter7fa4110cdc2fc1de
org.apache.maven.surefire.booter.AbstractPathConfiguration8182fa1396653f01
org.apache.maven.surefire.booter.BaseProviderFactory82593383b8ea92d6
org.apache.maven.surefire.booter.BiProperty4945e268841ae2cb
org.apache.maven.surefire.booter.BooterDeserializer5e68b147d2c4b22f
org.apache.maven.surefire.booter.ClassLoaderConfigurationdc8fd5c18ebb0e44
org.apache.maven.surefire.booter.Classpathc898ea9ca4a65da5
org.apache.maven.surefire.booter.ClasspathConfigurationfbf5fb96600339ce
org.apache.maven.surefire.booter.Commandeb1b53eb8cbe7b47
org.apache.maven.surefire.booter.CommandReader0c8d3ca700ec7199
org.apache.maven.surefire.booter.CommandReader.1fbfebde20e2b504c
org.apache.maven.surefire.booter.CommandReader.CommandRunnableee59ae4d74408619
org.apache.maven.surefire.booter.DumpErrorSingleton2b476b92c5a56cec
org.apache.maven.surefire.booter.ForkedBooter7c637cf5651513d1
org.apache.maven.surefire.booter.ForkedBooter.18e738e4578953efa
org.apache.maven.surefire.booter.ForkedBooter.2eed8c1764882af0e
org.apache.maven.surefire.booter.ForkedBooter.3c484c4542ee85d76
org.apache.maven.surefire.booter.ForkedBooter.4fdd9c09c784f8eea
org.apache.maven.surefire.booter.ForkedBooter.57b8c4d35432edce6
org.apache.maven.surefire.booter.ForkedBooter.6b897d54528b69e6d
org.apache.maven.surefire.booter.ForkedBooter.7fe5121edb86030bc
org.apache.maven.surefire.booter.ForkedBooter.PingSchedulerd29065207a6b6c40
org.apache.maven.surefire.booter.ForkingReporterFactory076a6c0176f6238b
org.apache.maven.surefire.booter.ForkingRunListener92d4b034b32ca2c0
org.apache.maven.surefire.booter.MasterProcessCommandda65de332c2de19d
org.apache.maven.surefire.booter.PpidChecker71b8c658da2ea8d3
org.apache.maven.surefire.booter.PpidChecker.1a004a9a91ab49ba2
org.apache.maven.surefire.booter.PpidChecker.ProcessInfoConsumer73f319c21fab7e7f
org.apache.maven.surefire.booter.ProcessInfob5b56cd86f3f0b31
org.apache.maven.surefire.booter.PropertiesWrapperae4bf137cc5290c1
org.apache.maven.surefire.booter.ProviderConfigurationd19986536a351b50
org.apache.maven.surefire.booter.Shutdownee9c65017e107986
org.apache.maven.surefire.booter.StartupConfigurationa8cc10b01ed27439
org.apache.maven.surefire.booter.SystemPropertyManagerf47497b1dde50d64
org.apache.maven.surefire.booter.TypeEncodedValue5ea9766678ac06a2
org.apache.maven.surefire.cli.CommandLineOption467fc7f51b73863b
org.apache.maven.surefire.common.junit3.JUnit3TestChecker60f0e8645c7f9683
org.apache.maven.surefire.common.junit4.JUnit4ProviderUtil2efb9b040a733f46
org.apache.maven.surefire.common.junit4.JUnit4Reflectorc6b492fe44aeaaad
org.apache.maven.surefire.common.junit4.JUnit4RunListenere9b69f33ef0f0ee2
org.apache.maven.surefire.common.junit4.JUnit4RunListenerFactory47691d741b824165
org.apache.maven.surefire.common.junit4.JUnit4TestChecker0ecb2bc7979f6afe
org.apache.maven.surefire.common.junit4.JUnitTestFailureListener713afbdb99a074d5
org.apache.maven.surefire.common.junit4.Notifiercc79e323f237d54b
org.apache.maven.surefire.junit4.JUnit4Providerea5628d21adfaab0
org.apache.maven.surefire.junit4.JUnit4Provider.1b81832311ccdea03
org.apache.maven.surefire.providerapi.AbstractProvider90f3b08fe8a1c87c
org.apache.maven.surefire.report.ConsoleOutputCaptureb8ae904ed8536017
org.apache.maven.surefire.report.ConsoleOutputCapture.ForwardingPrintStreamf912ea5d2dac308e
org.apache.maven.surefire.report.ConsoleOutputCapture.NullOutputStream8d05eb67510fd586
org.apache.maven.surefire.report.ReporterConfiguration4281487891f02f69
org.apache.maven.surefire.report.SimpleReportEntryced572f24a462295
org.apache.maven.surefire.shade.org.apache.commons.io.IOUtils31aed2fcfab3e082
org.apache.maven.surefire.shade.org.apache.commons.io.output.StringBuilderWriter6d33fec8cb3374c0
org.apache.maven.surefire.shade.org.apache.commons.lang3.JavaVersiona8452005cb20bb7d
org.apache.maven.surefire.shade.org.apache.commons.lang3.StringUtils4f785afa8bb3a23f
org.apache.maven.surefire.shade.org.apache.commons.lang3.SystemUtilsaba69a973b7ba06a
org.apache.maven.surefire.shade.org.apache.commons.lang3.math.NumberUtilsd0156407bff7b695
org.apache.maven.surefire.shade.org.apache.maven.shared.utils.StringUtils483d14212b21a3ea
org.apache.maven.surefire.suite.RunResultf5c7c53a954bcafa
org.apache.maven.surefire.testset.DirectoryScannerParameters2b5eeacae469cd1d
org.apache.maven.surefire.testset.IncludedExcludedPatternsf39908e3b64d7090
org.apache.maven.surefire.testset.ResolvedTesta598483e424232d4
org.apache.maven.surefire.testset.ResolvedTest.ClassMatcher79be7f2fa77ad8d7
org.apache.maven.surefire.testset.ResolvedTest.MethodMatcher7c71374a51e8e61b
org.apache.maven.surefire.testset.ResolvedTest.Type90e4214668937845
org.apache.maven.surefire.testset.RunOrderParametersb4c06223c3099700
org.apache.maven.surefire.testset.TestArtifactInfof703953620e80b33
org.apache.maven.surefire.testset.TestListResolver7d372c99b98a147d
org.apache.maven.surefire.testset.TestRequest0fa2c0cc34345df2
org.apache.maven.surefire.util.CloseableIteratorcc15bdebae86d5d2
org.apache.maven.surefire.util.DefaultRunOrderCalculator1aeecbcd3bf6e89b
org.apache.maven.surefire.util.DefaultScanResult7fefafdf8c793c36
org.apache.maven.surefire.util.ReflectionUtils8d5f4b05d6d77207
org.apache.maven.surefire.util.RunOrderd2292a6beb4b6337
org.apache.maven.surefire.util.TestsToRuna95363e4b4ba2069
org.apache.maven.surefire.util.TestsToRun.ClassesIterator84a139c598502c0b
org.apache.maven.surefire.util.internal.DaemonThreadFactory21a589f6dedb169c
org.apache.maven.surefire.util.internal.DaemonThreadFactory.NamedThreadFactory682458ca85b067a3
org.apache.maven.surefire.util.internal.DumpFileUtils506743b77fc98f6e
org.apache.maven.surefire.util.internal.ImmutableMap72bcae5e55b4fabb
org.apache.maven.surefire.util.internal.ImmutableMap.Nodeecc659afb4f6d68b
org.apache.maven.surefire.util.internal.ObjectUtils69a2a92649b44645
org.apache.maven.surefire.util.internal.StringUtils3a7e4daf0a993e1e
org.apache.maven.surefire.util.internal.StringUtils.EncodedArray477f1d94d78cb50b
org.apache.maven.surefire.util.internal.TestClassMethodNameUtils7ccab40b69c25b60
org.junit.Assert78fc7dec7d95195c
org.junit.internal.ComparisonCriteriadb393c2da1190e93
org.junit.internal.ExactComparisonCriteriab46e382b993e25ce
org.junit.internal.MethodSorterae094a8ce1747b79
org.junit.internal.MethodSorter.1d3997b4bdb7889c1
org.junit.internal.MethodSorter.2c8e6351cbf098013
org.junit.internal.builders.AllDefaultPossibilitiesBuilder2d26b5eadd1a8c2a
org.junit.internal.builders.AnnotatedBuilderb6759f9e68d937a7
org.junit.internal.builders.IgnoredBuildere152f333c53967a6
org.junit.internal.builders.JUnit3Builder4a2cc8e608e1275e
org.junit.internal.builders.JUnit4Builder5902b7da0403f55c
org.junit.internal.builders.SuiteMethodBuilder1df136431e07e393
org.junit.internal.requests.ClassRequestcbba192d9af40c26
org.junit.internal.runners.model.EachTestNotifierff8c3fbb105e71ef
org.junit.internal.runners.model.ReflectiveCallabled591724635588bcb
org.junit.internal.runners.rules.RuleFieldValidatorfbc09f9fcb2f9c1a
org.junit.internal.runners.statements.InvokeMethodfa03219f4a4eb968
org.junit.runner.Descriptionc3b4a36e785ee4be
org.junit.runner.Request2501a2515fbe4d86
org.junit.runner.Result6a4a99282d9b0054
org.junit.runner.Result.Listener2060330526262fe0
org.junit.runner.Runnerf5abacc70e2e08a4
org.junit.runner.manipulation.Sorter79c19bcbe8cfca2d
org.junit.runner.manipulation.Sorter.11efe268be59403aa
org.junit.runner.notification.RunListener3350f142e74350a4
org.junit.runner.notification.RunNotifierb34e922304507f84
org.junit.runner.notification.RunNotifier.10d2544b721f0db56
org.junit.runner.notification.RunNotifier.2965ba1903620a2e4
org.junit.runner.notification.RunNotifier.34b1a15148beab121
org.junit.runner.notification.RunNotifier.7c8d33a2e217dded2
org.junit.runner.notification.RunNotifier.SafeNotifier19d584cef25f3ec4
org.junit.runners.BlockJUnit4ClassRunner739bf3a723ee0fec
org.junit.runners.BlockJUnit4ClassRunner.112f85f32c9daafd9
org.junit.runners.ParentRunner287dd153523ee445
org.junit.runners.ParentRunner.1e4b11be78f36c92b
org.junit.runners.ParentRunner.251b5d3c1c8fd8878
org.junit.runners.ParentRunner.3678f2be2f7c4a558
org.junit.runners.model.FrameworkField483e074f630c2720
org.junit.runners.model.FrameworkMember6b9f1505fe4f5d84
org.junit.runners.model.FrameworkMethod78c84f58af3747e6
org.junit.runners.model.FrameworkMethod.152edf435461bec2b
org.junit.runners.model.RunnerBuilder0281d51b4f8328d4
org.junit.runners.model.Statement9a75aa5de27bf4d5
org.junit.runners.model.TestClass2bf85bd14e16d25e
\ No newline at end of file diff --git a/docs/jacoco-ut/jacoco.csv b/docs/jacoco-ut/jacoco.csv index 2a09295..f72d312 100644 --- a/docs/jacoco-ut/jacoco.csv +++ b/docs/jacoco-ut/jacoco.csv @@ -1,14 +1,16 @@ GROUP,PACKAGE,CLASS,INSTRUCTION_MISSED,INSTRUCTION_COVERED,BRANCH_MISSED,BRANCH_COVERED,LINE_MISSED,LINE_COVERED,COMPLEXITY_MISSED,COMPLEXITY_COVERED,METHOD_MISSED,METHOD_COVERED -everge,bjc.everge,StringUtils,114,253,13,35,16,56,13,16,1,4 -everge,bjc.everge,ReplOpts,147,30,30,0,22,10,17,1,2,1 -everge,bjc.everge,ReplPair,987,863,100,111,169,202,84,53,2,16 -everge,bjc.everge,ReplError,72,60,7,1,7,11,6,3,2,3 +everge,bjc.everge,StringUtils,114,253,13,35,18,57,13,16,1,4 +everge,bjc.everge,ReplOpts,147,30,30,0,32,10,17,1,2,1 +everge,bjc.everge,ReplPair,938,912,92,119,180,223,79,58,2,16 +everge,bjc.everge,LogStream,91,54,2,2,34,19,17,9,16,8 +everge,bjc.everge,ReplError,72,60,7,1,10,12,6,3,2,3 everge,bjc.everge,ControlledString.ParseStrings,8,15,0,0,1,6,1,1,1,1 -everge,bjc.everge,Everge,538,319,54,29,124,75,41,14,2,6 +everge,bjc.everge,Everge,568,513,57,40,137,111,48,20,3,10 everge,bjc.everge,IntHolder,10,22,0,0,5,7,2,4,2,4 -everge,bjc.everge,ControlledString.Control,132,101,22,22,21,25,20,11,3,6 +everge,bjc.everge,MirrorOutputStream,62,47,8,4,16,9,8,4,4,2 +everge,bjc.everge,ControlledString.Control,134,104,23,23,29,26,21,11,3,6 everge,bjc.everge,Everge.InputStatus,0,34,0,0,0,4,0,1,0,1 everge,bjc.everge,StageStatus,0,34,0,0,0,4,0,1,0,1 -everge,bjc.everge,ControlledString,74,144,3,15,17,26,5,11,3,4 -everge,bjc.everge,ReplSet,105,0,6,0,24,0,9,0,6,0 -everge,bjc.everge,BadReplParse,59,69,6,6,11,16,7,3,2,2 +everge,bjc.everge,ControlledString,74,144,3,15,17,28,5,11,3,4 +everge,bjc.everge,ReplSet,56,69,2,4,12,15,4,5,3,3 +everge,bjc.everge,BadReplParse,59,69,6,6,12,16,7,3,2,2 diff --git a/docs/jacoco-ut/jacoco.xml b/docs/jacoco-ut/jacoco.xml index e88c882..f3632a8 100644 --- a/docs/jacoco-ut/jacoco.xml +++ b/docs/jacoco-ut/jacoco.xml @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file -- cgit v1.2.3