From 4a36dbf913e1a1bce6e7e5e53531ef084f59babf Mon Sep 17 00:00:00 2001 From: bculkin2442 Date: Tue, 2 Jul 2019 17:00:47 -0400 Subject: Update site --- .../bjc.everge/ControlledString$Control.html | 2 +- .../bjc.everge/ControlledString$ParseStrings.html | 1 + docs/jacoco-ut/bjc.everge/ControlledString.html | 2 +- .../bjc.everge/ControlledString.java.html | 294 +++++-- docs/jacoco-ut/bjc.everge/ReplError.html | 2 +- docs/jacoco-ut/bjc.everge/ReplError.java.html | 6 +- docs/jacoco-ut/bjc.everge/ReplOpts.html | 2 +- docs/jacoco-ut/bjc.everge/ReplOpts.java.html | 46 +- docs/jacoco-ut/bjc.everge/ReplPair.html | 2 +- docs/jacoco-ut/bjc.everge/ReplPair.java.html | 865 ++++++++++----------- docs/jacoco-ut/bjc.everge/ReplParseException.html | 2 +- .../bjc.everge/ReplParseException.java.html | 58 +- 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 | 17 +- docs/jacoco-ut/jacoco.xml | 2 +- 18 files changed, 744 insertions(+), 565 deletions(-) create mode 100644 docs/jacoco-ut/bjc.everge/ControlledString$ParseStrings.html (limited to 'docs/jacoco-ut') diff --git a/docs/jacoco-ut/bjc.everge/ControlledString$Control.html b/docs/jacoco-ut/bjc.everge/ControlledString$Control.html index e93afa5..e9f1cbe 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
Total18 of 180%0 of 0n/a339933
ControlledString.Control(String, String[])90%n/a114411
ControlledString.Control(String)60%n/a113311
ControlledString.Control()30%n/a112211
\ No newline at end of file +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 diff --git a/docs/jacoco-ut/bjc.everge/ControlledString$ParseStrings.html b/docs/jacoco-ut/bjc.everge/ControlledString$ParseStrings.html new file mode 100644 index 0000000..15d59e9 --- /dev/null +++ b/docs/jacoco-ut/bjc.everge/ControlledString$ParseStrings.html @@ -0,0 +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 diff --git a/docs/jacoco-ut/bjc.everge/ControlledString.html b/docs/jacoco-ut/bjc.everge/ControlledString.html index 70da0b2..8b72ed6 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
Total159 of 1590%14 of 140%1212353555
parse(String, String, String, String, String)1260%120%77232311
ControlledString(String)100%n/a114411
ControlledString(String, ControlledString.Control[])80%n/a114411
hasControls()80%20%221111
ControlledString()70%n/a113311
\ No newline at end of file +ControlledString

ControlledString

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total74 of 22266%3 of 1883%516174437
toString()410%20%227711
parse(String, ControlledString.ParseStrings)1712688%11392%1832401
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 2f928e8..63c0b44 100644 --- a/docs/jacoco-ut/bjc.everge/ControlledString.java.html +++ b/docs/jacoco-ut/bjc.everge/ControlledString.java.html @@ -1,5 +1,7 @@ ControlledString.java

ControlledString.java

package bjc.everge;
 
+import java.util.Arrays;
+
 /**
  * Represents a string with a set of control flags attached to it.
  *
@@ -25,9 +27,9 @@ public class ControlledString {
 		/**
 		 * Create a new blank control.
 		 */
-		public Control() {
+		public Control() {
 
-		}
+		}
 
 		/**
 		 * Create a new argless control.
@@ -35,9 +37,9 @@ public class ControlledString {
 		 * @param nam
 		 * 	The name of the control.
 		 */
-		public Control(String nam) {
-			name = nam;
-		}
+		public Control(String nam) {
+			name = nam;
+		}
 
 		/**
 		 * Create a new control.
@@ -47,12 +49,165 @@ public class ControlledString {
 		 * @param ars
 		 * 	The arguments of the control.
 		 */
-		public Control(String nam, String... ars) {
-			name = nam;
-			args = ars;
-		}
+		public Control(String nam, String... ars) {
+			name = nam;
+			args = ars;
+		}
+
+		/**
+		 * Get the count of arguments this control has.
+		 *
+		 * @return The number of arguments to this control.
+		 */
+		public int count() {
+			return args.length;
+		}
+
+		public String get(int i) {
+			if (i < 0) {
+				String msg = String.format("Control argument index must be greater than 0 (was %d)", i);
+
+				throw new IllegalArgumentException(msg);
+			}
+
+			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);
+			}
+
+			return args[i];
+		}
+
+		@Override
+		public String toString() {
+			StringBuilder sb = new StringBuilder();
+			sb.append(name);
+
+			if (args != null && args.length > 0) {
+				sb.append("/");
+
+				for (String arg : args) {
+					sb.append(arg);
+					sb.append(";");
+				}
+			}
+
+			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;
+		}
+
+		@Override
+		public boolean equals(Object obj) {
+			if (this == obj) { return true; }
+			if (obj == null) { return false; }
+			if (getClass() != obj.getClass()) { return false; }
+
+			Control other = (Control) obj;
+
+			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;
+
+			if (isArged && !oIsArged) { return false; }
+			if (!isArged && oIsArged) { return false; }
+
+			if (isArged && oIsArged) {
+				return Arrays.equals(args, other.args);
+			}
+
+			return true;
+		}
+
+		/**
+		 * Convenient static constructor for static imports.
+		 *
+		 * @param nam
+		 * 	The name of the control.
+		 * @param ars
+		 * 	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);
+		}
 	}
+	
+	/**
+	 * Parameter class for defining how to parse a ControlledString.
+	 *
+	 * @author Ben Culkin
+	 */
+	public static class ParseStrings {
+		/**
+		 * The indicator for separating controls from the regular string.
+		 */
+		public String contInd;
+
+		/**
+		 * The indicator for separating individual controls.
+		 */
+		public String contSep;
+
+		/**
+		 * The indicator for separating arguments to a control.
+		 */
+		public String contArg;
+
+		/**
+		 * The indicator for escaping any of the indicators (including itself)
+		 */
+		public String contEsc;
 
+		/**
+		 * Create a new set of parse strings.
+		 *
+		 * @param contInd
+		 * 	The control indicator.
+		 * @param contSep
+		 * 	The control separator.
+		 * @param contArg
+		 * 	The argument separator.
+		 * @param contEsc
+		 * 	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;
+		}
+
+		/**
+		 * Convenient static constructor.
+		 *
+		 * @param contInd
+		 * 	The control indicator.
+		 * @param contSep
+		 * 	The control separator.
+		 * @param contArg
+		 * 	The argument separator.
+		 * @param contEsc
+		 * 	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);
+		}
+	}
+	
 	/**
 	 * The string the controls apply to.
 	 */
@@ -66,9 +221,9 @@ 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.
@@ -76,11 +231,11 @@ public class ControlledString {
 	 * @param strung
 	 * 	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.
@@ -90,11 +245,11 @@ public class ControlledString {
 	 * @param controls
 	 * 	The controls that apply to the string.
 	 */
-	public ControlledString(String strung, Control... controls) {
-		strang = strung;
+	public ControlledString(String strung, Control... controls) {
+		strang = strung;
 
-		controls = controls;
-	}
+		this.controls = controls;
+	}
 
 	/**
 	 * Check if the string has controls.
@@ -102,77 +257,90 @@ public class ControlledString {
 	 * @return Whether or not the string has controls.
 	 */
 	public boolean hasControls() {
-		return controls.length > 0;
+		return controls.length > 0;
 	}
 
 	/**
-	 * Parse a controlled string from a regular string.
+	 * Get the count of controls.
 	 *
-	 * The controls must be parsed from the beginning of the string, and are indicated by occurances
-	 * of contInd that bracket them from the string. The individual controls are delimited by
-	 * instances of contSep, with arguments to them being separated by occurances of contArg.
+	 * @return The number of controls for this string.
+	 */
+	public int count() {
+		return controls.length;
+	}
+
+	/**
+	 * Parse a controlled string from a regular string.
 	 *
-	 * Each of those separators (which must be regular strings, not regexes or anything) may be
-	 * escaped by preceeding them with a copy of contEsc.
+	 * The controls must be parsed from the beginning of the string.
 	 *
 	 * @param lne
-	 * 	The string to parse frmo.
-	 * @param contInd
-	 * 	The indicator for whether or not there are controls.
-	 * @param contSep
-	 * 	The separator of individual controls.
-	 * @param contArg
-	 * 	The separator of control arguments.
-	 * @param contEsc
-	 * 	The escape string for each of the separators/indicators.
-	 *
+	 * 	The string to parse from.
+	 * @param parameterObject TODO
 	 * @return A parsed control string.
 	 */
-	public static ControlledString parse(String lne, String contInd, String contSep,
-			String contArg, String contEsc) {
-		if (!lne.startsWith(contInd)) {
-			return new ControlledString(lne);
+	public static ControlledString parse(String lne, ParseStrings parameterObject) 
+	{
+		if (!lne.startsWith(parameterObject.contInd)) {
+			return new ControlledString(lne);
 		}
 
-		String tmp = lne.substring(2);
+		String tmp = lne.substring(2);
 
-		String[] bits = StringUtils.escapeSplit(contEsc, contInd, lne);
+		String[] bits = StringUtils.escapeSplit(parameterObject.contEsc, parameterObject.contInd, lne);
 
-		if (bits.length < 2) {
-			String msg = "Did not find control terminator (%s) where it should be";
-			msg = String.format(msg, contInd);
+		if (bits.length < 2) {
+			String msg = "Did not find control terminator (%s) where it should be";
+			msg = String.format(msg, parameterObject.contInd);
 
-			throw new IllegalArgumentException(msg);
-		}
+			throw new IllegalArgumentException(msg);
+		} 
 
-		ControlledString cs = new ControlledString(bits[0]);
+		ControlledString cs = new ControlledString(bits[0]);
+		if (bits.length > 2) cs.strang = bits[2];
 
-		bits = StringUtils.escapeSplit(contEsc, contSep, bits[1]);
+		bits = StringUtils.escapeSplit(parameterObject.contEsc, parameterObject.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(contEsc, contArg, bit);
+			String[] bots = StringUtils.escapeSplit(parameterObject.contEsc, parameterObject.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();
+
+		sb.append("//");
+
+		for (Control cont : controls) {
+			sb.append(cont);
+		}
+
+		sb.append("//");
+		sb.append(strang);
+
+		return sb.toString();
 	}
 }
 
\ 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 7b798b3..5fe14b6 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
Total57 of 13256%5 of 837%5951825
toString()500%40%334411
toPrintString()40%n/a111111
toPrintString(String)35194%1375%130501
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 e2d44dc..1e0ba81 100644 --- a/docs/jacoco-ut/bjc.everge/ReplError.java.html +++ b/docs/jacoco-ut/bjc.everge/ReplError.java.html @@ -76,9 +76,9 @@ public class ReplError { 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); diff --git a/docs/jacoco-ut/bjc.everge/ReplOpts.html b/docs/jacoco-ut/bjc.everge/ReplOpts.html index ff2c6e2..9d884f8 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
Total66 of 9631%18 of 180%1011112112
equals(Object)660%180%1010111111
ReplOpts()30100%n/a0101001
\ No newline at end of file +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 diff --git a/docs/jacoco-ut/bjc.everge/ReplOpts.java.html b/docs/jacoco-ut/bjc.everge/ReplOpts.java.html index 1194cd3..8e3e829 100644 --- a/docs/jacoco-ut/bjc.everge/ReplOpts.java.html +++ b/docs/jacoco-ut/bjc.everge/ReplOpts.java.html @@ -45,27 +45,33 @@ import java.io.PrintStream; public PrintStream outStream = System.out; public PrintStream errStream = System.err; - @Override - public boolean equals(Object o) { - if (o == null) return false; - - if (!getClass().equals(o.getClass())) return false; - - ReplOpts ro = (ReplOpts)o; - - if (isPerf != ro.isPerf) return false; - - if (isDebug != ro.isDebug) return false; - if (isTrace != ro.isTrace) return false; - - if (defPrior != ro.defPrior) return false; - if (defStage != ro.defStage) return false; - if (defMulti != ro.defMulti) return false; - - if (defStatus != ro.defStatus) return false; - - return true; + 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; + } + @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; } } \ 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 f4c8951..e7404ea 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
Total800 of 1,62250%87 of 18653%73123138336217
readList(List, Scanner, List, ReplOpts)28237056%315162%25433612501
readGlobal(String, Scanner, List, ReplOpts, IntHolder, IntHolder)1869132%181240%1724436901
getControls(String, List, ReplOpts, IntHolder, IntHolder, String)1350%120%77252511
readName(String, Scanner, List, ReplPair, ReplOpts, IntHolder, IntHolder)13111045%111354%1017306001
readMultiLine(String, Scanner, ReplOpts, List, String, IntHolder)378469%81260%61122001
equals(Object)123675%6650%670801
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
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
apply(String)7100%n/a010101
ReplPair(String, String)6100%n/a010201
\ No newline at end of file +ReplPair

ReplPair

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total940 of 1,77547%99 of 20451%83133161355218
readGlobal(String, Scanner, List, ReplOpts, IntHolder, IntHolder)3028722%241233%2127699001
readList(List, Scanner, List, ReplOpts)25437559%295163%24422611601
readName(String, Scanner, List, ReplPair, ReplOpts, IntHolder, IntHolder)2149630%141450%1219456901
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
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
apply(String)7100%n/a010101
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 7cfa2b5..9701d27 100644 --- a/docs/jacoco-ut/bjc.everge/ReplPair.java.html +++ b/docs/jacoco-ut/bjc.everge/ReplPair.java.html @@ -7,6 +7,7 @@ import java.util.Scanner; import java.util.function.UnaryOperator; import bjc.everge.ControlledString.Control; +import bjc.everge.ControlledString.ParseStrings; /** * String pairs for replacements. @@ -21,7 +22,7 @@ public class ReplPair implements Comparable<ReplPair>, UnaryOperator<St private int stage; // Status of this pair with regards to doing staging stuff - private StageStatus stat = StageStatus.BOTH; + private StageStatus stat = StageStatus.BOTH; /** * The priority for this replacement. @@ -49,8 +50,8 @@ public class ReplPair implements Comparable<ReplPair>, UnaryOperator<St * Create a new blank replacement pair. */ public ReplPair() { - this("", "", 1, null); - } + this("", "", 1, null); + } /** * Create a new replacement pair with a priority of 1. @@ -61,8 +62,8 @@ public class ReplPair implements Comparable<ReplPair>, UnaryOperator<St * The string to replace. */ public ReplPair(String f, String r) { - this(f, r, 1); - } + this(f, r, 1); + } /** * Create a new named replacement pair with a priority of 1. @@ -75,8 +76,8 @@ public class ReplPair implements Comparable<ReplPair>, UnaryOperator<St * The name of the replacement pair. */ public ReplPair(String f, String r, String n) { - this(f, r, 1, n); - } + this(f, r, 1, n); + } /** * Create a new replacement pair with a set priority. @@ -89,8 +90,8 @@ public class ReplPair implements Comparable<ReplPair>, UnaryOperator<St * The priority for the replacement. */ public ReplPair(String f, String r, int p) { - this(f, r, p, f); - } + this(f, r, p, f); + } /** * Create a new replacement pair with a set priority and name. @@ -104,14 +105,14 @@ public class ReplPair implements Comparable<ReplPair>, UnaryOperator<St * @param p * The priority for the replacement. */ - public ReplPair(String f, String r, int p, String n) { - find = f; - replace = r; + public ReplPair(String f, String r, int p, String n) { + find = f; + replace = r; - name = n; + name = n; - priority = p; - } + priority = p; + } /** * Read a list of replacement pairs from an input source. @@ -122,9 +123,9 @@ public class ReplPair implements Comparable<ReplPair>, UnaryOperator<St * 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); } /** @@ -139,15 +140,15 @@ public class ReplPair implements Comparable<ReplPair>, UnaryOperator<St * 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 ReplParseException("", errList); + if (errList.size() != 0) { + throw new ReplParseException("", errList); } - return rplPar; + return rplPar; } /** @@ -164,7 +165,7 @@ public class ReplPair implements Comparable<ReplPair>, UnaryOperator<St * The list of replacements. */ public static List<ReplPair> readList(List<ReplPair> detals, Scanner scn, List<ReplError> errs) { - return readList(detals, scn, errs, new ReplOpts()); + return readList(detals, scn, errs, new ReplOpts()); } /** @@ -182,634 +183,632 @@ public class ReplPair implements Comparable<ReplPair>, UnaryOperator<St * @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(); - } while (body.startsWith("#")); + body = scn.nextLine().trim(); + lno.incr(); + } while (body.startsWith("#")); - if (body == null) { - String msg = - "Ran out of input looking for replacement body for raw name '" + name + "'"; + if (body == null) { + String msg = String.format( + "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; - + isMulti = ropts.defMulti; + + ControlledString cs = getControls(body, errs, ropts, lno, pno, "body"); // Body has attached controls, process them. - if (body.startsWith("//")) { - body = body.substring(2); - - String[] bodyBits = StringUtils.escapeSplit("|", "//", body); - if (bodyBits.length < 2) { - String msg = "Did not find control terminator (//) in body where it should be"; - - errs.add(new ReplError(lno, pno, msg, body)); - continue; - } - - String contBody = bodyBits[0]; - String actBody = bodyBits[1]; - - // Split out each control - String[] bits = StringUtils.escapeSplit("|", ";", actBody); - - for (String bit : bits) { - String bitHead = bit.toUpperCase(); - String bitBody = bit; - - String[] bots = StringUtils.escapeSplit("|", "/", bit); - if (bots.length > 1) { - bitHead = bots[0].toUpperCase(); - bitBody = bots[1]; - } - - switch (bitHead) { + 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": - isMulti = Boolean.parseBoolean(bitBody); - break; + 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: - errs.add(new ReplError(lno, pno, String.format("Invalid control name '%s'", bitHead), body)); + { + String errMsg = String.format("Invalid control name '%s'", cont.name); + errs.add(new ReplError(lno, pno, errMsg, body)); + } break; } } - body = actBody; + 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, errs, "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"); + 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); + 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", + 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", + 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 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) { - return inp.replaceAll(find, replace); + return inp.replaceAll(find, replace); } @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 boolean equals(Object o) { - if (o == null) return false; - - if (!getClass().equals(o.getClass())) return false; - - ReplPair ro = (ReplPair)o; - - if (!find.equals(ro.find)) return false; - // lno is not a field we consider for equality - if (!name.equals(ro.name)) return false; - if (priority != ro.priority) return false; - if (!replace.equals(ro.name)) return false; - // stat is not a field we consider for equality + 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; + } - return true; + @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; } private static String readName(String nam, Scanner scn, List<ReplError> errs, ReplPair rp, ReplOpts ropts, IntHolder lno, IntHolder pno) { - String name = nam; + ControlledString cs = getControls(nam, errs, ropts, lno, pno, "name"); - boolean isMulti = ropts.defMulti; + boolean isMulti = ropts.defMulti; - // Name has attached controls, process them. - if (name.startsWith("//")) { - name = name.substring(2); + String name = cs.strang; - String[] nameBits = StringUtils.escapeSplit("|", "//", name); + 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 (nameBits.length < 2) { - String msg = "Did not find control terminator (//) in name where it should be"; - - errs.add(new ReplError(lno, pno, msg, name)); - return null; - } - - String contName = nameBits[0]; - String actName = nameBits[1]; - - // Split out each control - String[] bits = StringUtils.escapeSplit("|", ";", contName); - - for (String bit : bits) { - String bitHead = bit.toUpperCase(); - String bitBody = bit; + errs.add(new ReplError(lno, pno, errMsg, nam)); + } else { + rp.name = 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 { + 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)); + + 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()); - String[] bots = StringUtils.escapeSplit("|", "/", bit); + 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); - if (bots.length > 1) { - bitHead = bots[0].toUpperCase(); - bitBody = bots[1]; - } + ReplError erd = new ReplError(lno, pno, errMsg, nam); - switch (bitHead) { - case "NAME": - case "N": - rp.name = bitBody; - break; - case "PRIORITY": - case "PRIOR": - case "P": - try { - rp.priority = Integer.parseInt(bitBody); - } catch (NumberFormatException nfex) { - String errMsg = String.format("'%s' is not a valid priority (must be an integer)", bitBody); - errs.add(new ReplError(lno, pno, errMsg, name)); - } - break; - case "STAGE": - case "S": - try { - int tmpStage = Integer.parseInt(bitBody); - if (tmpStage < 0) { - String errMsg = String.format("'%s' is not a valid stage (must be a positive integer)", bitBody); - errs.add(new ReplError(lno, pno, errMsg, name)); - - break; + errs.add(erd); } - rp.stage = tmpStage; - } catch (NumberFormatException nfex) { - String errMsg = String.format("'%s' is not a valid stage (must be a positive integer)", bitBody); - errs.add(new ReplError(lno, pno, errMsg, name)); - } - break; - case "MULTITRUE": - case "MULTIT": - case "MT": - isMulti = true; - break; - case "MULTIFALSE": - case "MULTIF": - case "MF": - isMulti = false; - break; - case "MULTI": - case "M": - isMulti = Boolean.parseBoolean(bitBody); - 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: - { - ReplError erd = new ReplError(lno, pno, - String.format("Unknown control name '%s' for name '%s'", - bitHead, name), name); - - errs.add(erd); - } - break; + break; } - - name = actName; } - // Multi-line name with a trailer - if (isMulti) { - String tmp = readMultiLine(name, scn, ropts, errs, "name", lno); - if (tmp == null) return null; - name = tmp; - } + 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; } - return name; + return name; } private static void readGlobal(String nam, Scanner scn, List<ReplError> errs, ReplOpts ropts, IntHolder lno, IntHolder pno) { - String name = nam.substring(3); - - // Split out each control - String[] bits = StringUtils.escapeSplit("|", ";", name); - if (ropts.isTrace) { - ropts.errStream.printf("\t[TRACE] Split control bits are: \n"); - for (String bit : bits) { - ropts.errStream.printf("%s, ", bit); - } - ropts.errStream.println(); - } - for (String bit : bits) { - String bitHead = bit.toUpperCase(); - String bitBody = bit; - - String[] bots = StringUtils.escapeSplit("|", "/", bit); - if (bots.length > 1) { - bitHead = bots[0]; - bitBody = bots[1]; - } + ControlledString cs = getControls(nam.substring(1), errs, ropts, lno, pno, "global"); - switch (bitHead) { + for (Control cont : cs.controls) { + switch (cont.name) { case "PRIORITY": case "PRIOR": case "P": try { - int tmp = Integer.parseInt(bitBody); - ropts.defPrior = tmp; - } catch (NumberFormatException nfex) { - String errMsg = String.format("'%s' is not a valid priority (must be an integer)", - bitBody); - - errs.add(new ReplError(lno, pno, errMsg, name)); - } - break; + 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; case "STAGE": case "S": try { - int tmpStage = Integer.parseInt(bitBody); + 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)); + + 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)", - bitBody); + errs.add(new ReplError(lno, pno, errMsg, nam)); + break; + } - errs.add(new ReplError(lno, pno, errMsg, name)); - 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)", - bitBody); - - errs.add(new ReplError(lno, pno, errMsg, name)); - } - 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": - ropts.defMulti = Boolean.parseBoolean(bitBody); - break; + 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)); + } + 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": - ropts.isDebug = Boolean.parseBoolean(bitBody); - break; + 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)); + } + 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": - ropts.isTrace = Boolean.parseBoolean(bitBody); - break; + 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)); + } + 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": - ropts.isPerf = Boolean.parseBoolean(bitBody); - break; + 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'", bitHead); - ReplError err = new ReplError(lno, pno, msg, name); - errs.add(err); + 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':'%s'\n", - bitHead, bitBody); + 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) { - if (!lne.startsWith("//")) { - return new ControlledString(lne); + 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); + + ReplError re = new ReplError(lno, pno, msg, lne); + errs.add(re); + + return null; } - - String tmp = lne.substring(2); - - String[] bits = StringUtils.escapeSplit("|", "//", lne); - - if (bits.length < 2) { - 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); - - return null; - } - - ControlledString cs = new ControlledString(bits[0]); - - bits = StringUtils.escapeSplit("|", ";", bits[1]); - - cs.controls = new Control[bits.length]; - - for (int i = 0; i < bits.length; i++) { - String bit = bits[i]; - - String[] bots = StringUtils.escapeSplit("|", "/", bit); - - Control cont = new Control(bots[0]); - - 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]; - } - } - - cs.controls[i] = cont; - } - - return cs; } } \ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/ReplParseException.html b/docs/jacoco-ut/bjc.everge/ReplParseException.html index db90db6..f80f7cb 100644 --- a/docs/jacoco-ut/bjc.everge/ReplParseException.html +++ b/docs/jacoco-ut/bjc.everge/ReplParseException.html @@ -1 +1 @@ -ReplParseException

ReplParseException

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

ReplParseException

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total59 of 12853%6 of 1250%710112724
toString()280%20%224411
toPrintString()246272%4660%4651801
ReplParseException(String)70%n/a112211
ReplParseException(String, List)7100%n/a010301
\ No newline at end of file diff --git a/docs/jacoco-ut/bjc.everge/ReplParseException.java.html b/docs/jacoco-ut/bjc.everge/ReplParseException.java.html index 322ba21..717bf7f 100644 --- a/docs/jacoco-ut/bjc.everge/ReplParseException.java.html +++ b/docs/jacoco-ut/bjc.everge/ReplParseException.java.html @@ -4,56 +4,60 @@ import java.util.ArrayList; import java.util.List; public class ReplParseException extends RuntimeException { + /** + * Serialization ID. + */ + private static final long serialVersionUID = 4752304282380556849L; public List<ReplError> errs; public ReplParseException(String msg) { - this(msg, new ArrayList<>()); - } + this(msg, new ArrayList<>()); + } public ReplParseException(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); } 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/index.html b/docs/jacoco-ut/bjc.everge/index.html index c22add6..dbd7838 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,013 of 3,67345%209 of 38145%1792703887692661312
ReplPair80082250%879953%7312313833621701
Everge53431937%542934%41551241992801
StringUtils19027058%173768%163024801301
ControlledString1590%140%121235355511
ReplSet1050%60%9924246611
ReplError726045%712%697182501
ReplOpts663031%180%101111211201
ReplParseException596953%6650%71011272401
ControlledString.Control180%n/a33993311
IntHolder2268%n/a265122601
Everge.InputStatus34100%n/a01040101
StageStatus34100%n/a01040101
\ No newline at end of file +bjc.everge

bjc.everge

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
Total2,256 of 4,20846%242 of 45947%2063214158522673113
ReplPair94083547%9910551%8313316135521801
Everge53431937%542934%41551241992801
StringUtils19027058%173768%163024801301
ReplOpts1473016%300%171822322301
ControlledString.Control13210143%222250%203121463901
ReplSet1050%60%9924246611
ControlledString7414866%31583%51617443701
ReplParseException596953%6650%71011272401
ReplError577556%5337%595182501
IntHolder2268%n/a265122601
ControlledString.ParseStrings1565%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 0b57023..97db308 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,013 of 3,67345%209 of 38145%1792703887692661312
ReplPair.java80082250%879953%7312313833621701
Everge.java53435339%542934%41561242032902
StringUtils.java19027058%173768%163024801301
ControlledString.java1770%140%151544448822
ReplSet.java1050%60%9924246611
ReplError.java726045%712%697182501
ReplOpts.java663031%180%101111211201
ReplParseException.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,256 of 4,20846%242 of 45947%2063214158522673113
ReplPair.java94083547%9910551%8313316135521801
Everge.java53435339%542934%41561242032902
ControlledString.java21426455%253759%2649399771803
StringUtils.java19027058%173768%163024801301
ReplOpts.java1473016%300%171822322301
ReplSet.java1050%60%9924246611
ReplParseException.java596953%6650%71011272401
ReplError.java577556%5337%595182501
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 9034613..a669aa2 100644 --- a/docs/jacoco-ut/index.html +++ b/docs/jacoco-ut/index.html @@ -1 +1 @@ -everge

everge

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
Total2,013 of 3,67345%209 of 38145%1792703887692661312
bjc.everge2,0131,66045%20917245%1792703887692661312
\ No newline at end of file +everge

everge

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
Total2,256 of 4,20846%242 of 45947%2063214158522673113
bjc.everge2,2561,95246%24221747%2063214158522673113
\ No newline at end of file diff --git a/docs/jacoco-ut/jacoco-sessions.html b/docs/jacoco-ut/jacoco-sessions.html index 686c435..0cd2b85 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-67292b47Jun 24, 2019 8:59:20 PMJun 24, 2019 8:59:23 PM
Benjamins-MBP-3b692744Jun 24, 2019 9:03:05 PMJun 24, 2019 9:03:07 PM
Benjamins-MBP-3f784be9Jun 24, 2019 9:03:54 PMJun 24, 2019 9:03:56 PM
Benjamins-MBP-297f715fJun 24, 2019 9:04:27 PMJun 24, 2019 9:04:29 PM
Benjamins-MBP-b7a7cd7aJun 24, 2019 9:07:30 PMJun 24, 2019 9:07:32 PM
Benjamins-MBP-3c84e42dJun 24, 2019 9:08:48 PMJun 24, 2019 9:08:51 PM
Benjamins-MBP-90c9c19fJun 24, 2019 9:10:33 PMJun 24, 2019 9:10:35 PM
Benjamins-MBP-258e5d55Jun 24, 2019 9:11:10 PMJun 24, 2019 9:11:13 PM
Benjamins-MBP-1c8db53cJun 24, 2019 9:11:54 PMJun 24, 2019 9:11:57 PM
Benjamins-MBP-fe884b29Jun 24, 2019 9:13:48 PMJun 24, 2019 9:13:51 PM
Benjamins-MBP-bbbda15cJun 25, 2019 4:59:55 PMJun 25, 2019 4:59:58 PM
Benjamins-MBP-619d5306Jun 25, 2019 5:02:51 PMJun 25, 2019 5:02:54 PM
Benjamins-MBP-5be181bcJun 25, 2019 5:06:24 PMJun 25, 2019 5:06:27 PM
Benjamins-MBP-5a9a677fJun 25, 2019 5:11:13 PMJun 25, 2019 5:11:16 PM
Benjamins-MBP-a5f6a88eJun 25, 2019 5:13:13 PMJun 25, 2019 5:13:16 PM
Benjamins-MBP-f7f6396Jun 25, 2019 5:17:56 PMJun 25, 2019 5:17:59 PM
Benjamins-MBP-d79643a5Jun 25, 2019 5:19:05 PMJun 25, 2019 5:19:09 PM
Benjamins-MBP-d13feb00Jun 25, 2019 5:22:48 PMJun 25, 2019 5:22:53 PM
Benjamins-MBP-d99cdddJun 25, 2019 5:24:37 PMJun 25, 2019 5:24:40 PM
Benjamins-MBP-7fb5d03cJun 25, 2019 5:27:13 PMJun 25, 2019 5:27:16 PM
Benjamins-MBP-27500956Jun 25, 2019 6:00:01 PMJun 25, 2019 6:00:04 PM
Benjamins-MBP-fabd9a80Jun 25, 2019 6:01:20 PMJun 25, 2019 6:01:23 PM
Benjamins-MBP-cc099d67Jun 25, 2019 6:05:30 PMJun 25, 2019 6:05:34 PM
Benjamins-MBP-41bbaf88Jun 25, 2019 6:11:18 PMJun 25, 2019 6:11:22 PM
Benjamins-MBP-f6e0efd9Jun 25, 2019 6:15:33 PMJun 25, 2019 6:15:37 PM
Benjamins-MBP-3342ac36Jun 25, 2019 6:17:47 PMJun 25, 2019 6:17:51 PM
Benjamins-MBP-6306767eJun 25, 2019 6:19:29 PMJun 25, 2019 6:19:34 PM
Benjamins-MBP-9650af58Jun 25, 2019 6:21:23 PMJun 25, 2019 6:21:26 PM
Benjamins-MBP-94ee416eJun 25, 2019 6:22:43 PMJun 25, 2019 6:22:46 PM
Benjamins-MBP-acf8a55eJun 25, 2019 6:24:45 PMJun 25, 2019 6:24:49 PM
Benjamins-MBP-e005d98fJun 25, 2019 6:26:50 PMJun 25, 2019 6:26:53 PM
Benjamins-MBP-7e76464aJun 25, 2019 6:27:56 PMJun 25, 2019 6:27:59 PM
Benjamins-MBP-889390fcJun 25, 2019 6:30:19 PMJun 25, 2019 6:30:22 PM
Benjamins-MBP-a2eca0cJun 25, 2019 6:32:34 PMJun 25, 2019 6:32:38 PM
Benjamins-MBP-d4166fb4Jun 25, 2019 6:37:07 PMJun 25, 2019 6:37:10 PM
Benjamins-MBP-7f813079Jun 25, 2019 6:41:50 PMJun 25, 2019 6:41:54 PM
Benjamins-MBP-3b22eaa0Jun 25, 2019 6:43:57 PMJun 25, 2019 6:44:01 PM
Benjamins-MBP-bce66460Jun 25, 2019 6:45:56 PMJun 25, 2019 6:46:05 PM
Benjamins-MBP-ec69e715Jun 25, 2019 6:47:50 PMJun 25, 2019 6:47:53 PM
Benjamins-MBP-1e2bc362Jun 25, 2019 6:50:39 PMJun 25, 2019 6:50:42 PM
Benjamins-MBP-2192d47eJun 25, 2019 6:54:31 PMJun 25, 2019 6:54:35 PM
Benjamins-MBP-5578d310Jun 25, 2019 6:57:16 PMJun 25, 2019 6:57:21 PM
Benjamins-MBP-7f918ae3Jun 25, 2019 6:58:38 PMJun 25, 2019 6:58:41 PM
Benjamins-MBP-1b2a4262Jun 25, 2019 7:00:52 PMJun 25, 2019 7:00:56 PM
Benjamins-MBP-32eb1f2fJun 25, 2019 7:46:14 PMJun 25, 2019 7:46:17 PM
Benjamins-MBP-ad93c87fJun 25, 2019 7:47:28 PMJun 25, 2019 7:47:34 PM
Benjamins-MBP-949c0249Jun 25, 2019 7:51:13 PMJun 25, 2019 7:51:19 PM
Benjamins-MBP-d850dedcJun 25, 2019 7:59:42 PMJun 25, 2019 7:59:46 PM
Benjamins-MBP-cf0e8fcbJun 25, 2019 8:02:21 PMJun 25, 2019 8:02:25 PM

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

ClassId
bjc.everge.Everge0f9bbd087c6a82a8
bjc.everge.Everge.InputStatus4a55ec97be767aa3
bjc.everge.EvergeTestcdb20595b065d577
bjc.everge.IntHolder737f55a181942cdc
bjc.everge.ReplErrorcfe2129d4ad345ed
bjc.everge.ReplOpts8450f17e7cbeb091
bjc.everge.ReplPair2d75250bb3a4dc9b
bjc.everge.ReplPairTest113dc21d30690e76
bjc.everge.ReplParseExceptiond8ab30d3d245efb0
bjc.everge.StageStatusac16631888ecec1d
bjc.everge.StringUtils96129974ee10757f
bjc.everge.StringUtilsb1f6ea8a04497939
bjc.everge.StringUtils162d01291f370427
bjc.everge.StringUtils46672b84a602d7fe
bjc.everge.StringUtils345938959587d360
bjc.everge.StringUtilsb2c7807a17916b02
bjc.everge.StringUtils5380b0d12b9b82fa
bjc.everge.StringUtils56009bb8e60e51fe
bjc.everge.StringUtilsea5a1ca459f38b67
bjc.everge.StringUtils5faea0492fe3f69d
bjc.everge.StringUtilse124af90d0899493
bjc.everge.StringUtilsafb06ae0324ba1aa
bjc.everge.StringUtils95379209e31566ec
bjc.everge.StringUtils68722ea854182213
bjc.everge.StringUtilsd93e3b9453a991dc
bjc.everge.StringUtilsc821d7e7cdde30f5
bjc.everge.StringUtilse8bc70abb233e8de
bjc.everge.StringUtils72794c9b4192e467
bjc.everge.StringUtilsf28c1c23f3a4ca11
bjc.everge.StringUtilse4ad5e03d758c4db
bjc.everge.StringUtils25a4be5eb9694fa7
bjc.everge.StringUtils473ac177d99f4483
bjc.everge.StringUtils2a436ce5ce20f3e1
bjc.everge.StringUtils02cc20f71169fa3b
bjc.everge.StringUtils158ec1ceb2332bf6
bjc.everge.StringUtils8653cd571861b6ed
bjc.everge.StringUtils7e01c56903605d83
bjc.everge.StringUtils9fb30af8a3271de2
bjc.everge.StringUtilsdcde9a6346e8f1f2
bjc.everge.StringUtils9c9ef2ae9cfcff61
bjc.everge.StringUtils834a3c5103a7216e
bjc.everge.StringUtils1c88fcd7e41cc194
bjc.everge.StringUtils73789ce1e2babcff
bjc.everge.StringUtils5f58bc01c7ffbf5e
bjc.everge.StringUtilsTestbabeafb324d389bc
bjc.everge.StringUtilsTestba524758af935222
bjc.everge.StringUtilsTest03a5d7d600df7a60
bjc.everge.StringUtilsTest862b25c9cb9e0e95
bjc.everge.StringUtilsTest2c45b0b5b9f969fd
bjc.everge.StringUtilsTest1f3d0eb955670a17
bjc.everge.StringUtilsTest6e7276d8d6f77555
bjc.everge.StringUtilsTestb0de7d7e5f67ddef
bjc.everge.StringUtilsTest11c88b1b176e3ae7
bjc.everge.StringUtilsTest11d6c586e9cdcce5
bjc.everge.StringUtilsTeste90540f3b3f9338c
bjc.everge.StringUtilsTest77748dc7c974e456
bjc.everge.StringUtilsTest33b839e709b1f84d
bjc.everge.StringUtilsTest24d6981b58274f22
bjc.everge.StringUtilsTestaa0b4e114ce90f23
bjc.everge.TestUtilsb4a64196a53960fd
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.JUnit4StackTraceWriter4381f0edfc893883
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.ClassNameStackTraceFilter2e0e75f8104a222a
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.SafeThrowablee61429531d0f0c1c
org.apache.maven.surefire.report.SimpleReportEntryced572f24a462295
org.apache.maven.surefire.report.SmartStackTraceParser45ff733565a2ac18
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.ComparisonFailure2e043b54f4444387
org.junit.ComparisonFailure.ComparisonCompactor63a5eeaf6441cd66
org.junit.internal.ArrayComparisonFailure2f82261abd610f66
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.Failure667385430e134e4a
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.4b1686c7d1ca56287
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
Benjamins-MBP-67292b47Jun 24, 2019 8:59:20 PMJun 24, 2019 8:59:23 PM
Benjamins-MBP-3b692744Jun 24, 2019 9:03:05 PMJun 24, 2019 9:03:07 PM
Benjamins-MBP-3f784be9Jun 24, 2019 9:03:54 PMJun 24, 2019 9:03:56 PM
Benjamins-MBP-297f715fJun 24, 2019 9:04:27 PMJun 24, 2019 9:04:29 PM
Benjamins-MBP-b7a7cd7aJun 24, 2019 9:07:30 PMJun 24, 2019 9:07:32 PM
Benjamins-MBP-3c84e42dJun 24, 2019 9:08:48 PMJun 24, 2019 9:08:51 PM
Benjamins-MBP-90c9c19fJun 24, 2019 9:10:33 PMJun 24, 2019 9:10:35 PM
Benjamins-MBP-258e5d55Jun 24, 2019 9:11:10 PMJun 24, 2019 9:11:13 PM
Benjamins-MBP-1c8db53cJun 24, 2019 9:11:54 PMJun 24, 2019 9:11:57 PM
Benjamins-MBP-fe884b29Jun 24, 2019 9:13:48 PMJun 24, 2019 9:13:51 PM
Benjamins-MBP-bbbda15cJun 25, 2019 4:59:55 PMJun 25, 2019 4:59:58 PM
Benjamins-MBP-619d5306Jun 25, 2019 5:02:51 PMJun 25, 2019 5:02:54 PM
Benjamins-MBP-5be181bcJun 25, 2019 5:06:24 PMJun 25, 2019 5:06:27 PM
Benjamins-MBP-5a9a677fJun 25, 2019 5:11:13 PMJun 25, 2019 5:11:16 PM
Benjamins-MBP-a5f6a88eJun 25, 2019 5:13:13 PMJun 25, 2019 5:13:16 PM
Benjamins-MBP-f7f6396Jun 25, 2019 5:17:56 PMJun 25, 2019 5:17:59 PM
Benjamins-MBP-d79643a5Jun 25, 2019 5:19:05 PMJun 25, 2019 5:19:09 PM
Benjamins-MBP-d13feb00Jun 25, 2019 5:22:48 PMJun 25, 2019 5:22:53 PM
Benjamins-MBP-d99cdddJun 25, 2019 5:24:37 PMJun 25, 2019 5:24:40 PM
Benjamins-MBP-7fb5d03cJun 25, 2019 5:27:13 PMJun 25, 2019 5:27:16 PM
Benjamins-MBP-27500956Jun 25, 2019 6:00:01 PMJun 25, 2019 6:00:04 PM
Benjamins-MBP-fabd9a80Jun 25, 2019 6:01:20 PMJun 25, 2019 6:01:23 PM
Benjamins-MBP-cc099d67Jun 25, 2019 6:05:30 PMJun 25, 2019 6:05:34 PM
Benjamins-MBP-41bbaf88Jun 25, 2019 6:11:18 PMJun 25, 2019 6:11:22 PM
Benjamins-MBP-f6e0efd9Jun 25, 2019 6:15:33 PMJun 25, 2019 6:15:37 PM
Benjamins-MBP-3342ac36Jun 25, 2019 6:17:47 PMJun 25, 2019 6:17:51 PM
Benjamins-MBP-6306767eJun 25, 2019 6:19:29 PMJun 25, 2019 6:19:34 PM
Benjamins-MBP-9650af58Jun 25, 2019 6:21:23 PMJun 25, 2019 6:21:26 PM
Benjamins-MBP-94ee416eJun 25, 2019 6:22:43 PMJun 25, 2019 6:22:46 PM
Benjamins-MBP-acf8a55eJun 25, 2019 6:24:45 PMJun 25, 2019 6:24:49 PM
Benjamins-MBP-e005d98fJun 25, 2019 6:26:50 PMJun 25, 2019 6:26:53 PM
Benjamins-MBP-7e76464aJun 25, 2019 6:27:56 PMJun 25, 2019 6:27:59 PM
Benjamins-MBP-889390fcJun 25, 2019 6:30:19 PMJun 25, 2019 6:30:22 PM
Benjamins-MBP-a2eca0cJun 25, 2019 6:32:34 PMJun 25, 2019 6:32:38 PM
Benjamins-MBP-d4166fb4Jun 25, 2019 6:37:07 PMJun 25, 2019 6:37:10 PM
Benjamins-MBP-7f813079Jun 25, 2019 6:41:50 PMJun 25, 2019 6:41:54 PM
Benjamins-MBP-3b22eaa0Jun 25, 2019 6:43:57 PMJun 25, 2019 6:44:01 PM
Benjamins-MBP-bce66460Jun 25, 2019 6:45:56 PMJun 25, 2019 6:46:05 PM
Benjamins-MBP-ec69e715Jun 25, 2019 6:47:50 PMJun 25, 2019 6:47:53 PM
Benjamins-MBP-1e2bc362Jun 25, 2019 6:50:39 PMJun 25, 2019 6:50:42 PM
Benjamins-MBP-2192d47eJun 25, 2019 6:54:31 PMJun 25, 2019 6:54:35 PM
Benjamins-MBP-5578d310Jun 25, 2019 6:57:16 PMJun 25, 2019 6:57:21 PM
Benjamins-MBP-7f918ae3Jun 25, 2019 6:58:38 PMJun 25, 2019 6:58:41 PM
Benjamins-MBP-1b2a4262Jun 25, 2019 7:00:52 PMJun 25, 2019 7:00:56 PM
Benjamins-MBP-32eb1f2fJun 25, 2019 7:46:14 PMJun 25, 2019 7:46:17 PM
Benjamins-MBP-ad93c87fJun 25, 2019 7:47:28 PMJun 25, 2019 7:47:34 PM
Benjamins-MBP-949c0249Jun 25, 2019 7:51:13 PMJun 25, 2019 7:51:19 PM
Benjamins-MBP-d850dedcJun 25, 2019 7:59:42 PMJun 25, 2019 7:59:46 PM
Benjamins-MBP-cf0e8fcbJun 25, 2019 8:02:21 PMJun 25, 2019 8:02:25 PM
Benjamins-MBP-3e05a57bJun 25, 2019 9:20:10 PMJun 25, 2019 9:20:13 PM
Benjamins-MBP-121ea26cJul 1, 2019 6:14:21 PMJul 1, 2019 6:14:23 PM
Benjamins-MBP-903b4a7dJul 1, 2019 6:30:23 PMJul 1, 2019 6:30:31 PM
Benjamins-MBP-27448ebeJul 1, 2019 6:33:34 PMJul 1, 2019 6:33:38 PM
Benjamins-MBP-279261fJul 1, 2019 6:34:34 PMJul 1, 2019 6:34:40 PM
Benjamins-MBP-27adad70Jul 1, 2019 6:51:10 PMJul 1, 2019 6:51:19 PM
Benjamins-MBP-c83f23e4Jul 1, 2019 7:31:29 PMJul 1, 2019 7:31:34 PM
Benjamins-MBP-13a7d9a1Jul 1, 2019 7:33:34 PMJul 1, 2019 7:33:39 PM
Benjamins-MBP-e2b3268dJul 1, 2019 7:35:46 PMJul 1, 2019 7:35:50 PM
Benjamins-MBP-105d3553Jul 1, 2019 7:37:08 PMJul 1, 2019 7:37:12 PM
Benjamins-MBP-9abe68a7Jul 1, 2019 7:41:48 PMJul 1, 2019 7:41:53 PM
Benjamins-MBP-ffcd7c8aJul 1, 2019 7:44:29 PMJul 1, 2019 7:44:33 PM
Benjamins-MBP-fa96287fJul 1, 2019 7:45:59 PMJul 1, 2019 7:46:04 PM
Benjamins-MBP-c64bc630Jul 1, 2019 8:28:28 PMJul 1, 2019 8:28:29 PM
Benjamins-MBP-7320603aJul 1, 2019 8:29:54 PMJul 1, 2019 8:29:55 PM
Benjamins-MBP-58d7c064Jul 1, 2019 8:31:18 PMJul 1, 2019 8:31:20 PM
Benjamins-MBP-a9d5751cJul 1, 2019 8:34:05 PMJul 1, 2019 8:34:07 PM
Benjamins-MBP-801e5625Jul 1, 2019 8:40:35 PMJul 1, 2019 8:40:36 PM
Benjamins-MBP-1edc0150Jul 1, 2019 8:41:41 PMJul 1, 2019 8:41:43 PM
Benjamins-MBP-7014445fJul 1, 2019 8:47:02 PMJul 1, 2019 8:47:04 PM
Benjamins-MBP-70056eb0Jul 1, 2019 8:48:14 PMJul 1, 2019 8:48:15 PM
Benjamins-MBP-db419a2eJul 1, 2019 8:50:02 PMJul 1, 2019 8:50:04 PM
Benjamins-MBP-4b0d624Jul 1, 2019 8:52:00 PMJul 1, 2019 8:52:01 PM
Benjamins-MBP-7fc2a50cJul 1, 2019 8:52:21 PMJul 1, 2019 8:52:22 PM
Benjamins-MBP-ebd87c97Jul 1, 2019 8:53:13 PMJul 1, 2019 8:53:15 PM
Benjamins-MBP-3410d1ceJul 1, 2019 8:53:32 PMJul 1, 2019 8:53:34 PM
Benjamins-MBP-19bd296cJul 1, 2019 8:54:36 PMJul 1, 2019 8:54:37 PM
Benjamins-MBP-81ae746cJul 1, 2019 9:08:52 PMJul 1, 2019 9:08:54 PM
Benjamins-MBP-b431fae2Jul 1, 2019 9:10:32 PMJul 1, 2019 9:10:33 PM
Benjamins-MBP-fc98d47aJul 1, 2019 9:11:47 PMJul 1, 2019 9:11:48 PM
Benjamins-MBP-52b1ff7aJul 1, 2019 9:12:17 PMJul 1, 2019 9:12:18 PM
Benjamins-MBP-4a35ca94Jul 1, 2019 9:13:01 PMJul 1, 2019 9:13:03 PM
Benjamins-MBP-a5412488Jul 1, 2019 9:13:38 PMJul 1, 2019 9:13:40 PM
Benjamins-MBP-505364efJul 1, 2019 9:20:45 PMJul 1, 2019 9:20:46 PM
Benjamins-MBP-c26bbd5aJul 1, 2019 9:27:41 PMJul 1, 2019 9:27:43 PM
Benjamins-MBP-23581b8cJul 2, 2019 4:51:45 PMJul 2, 2019 4:51:47 PM

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

ClassId
bjc.everge.ConstructUtils769871b8e9c1d00a
bjc.everge.ConstructUtilsf37e5bf2a63b2ffa
bjc.everge.ControlledStringf4b4f3626f87de19
bjc.everge.ControlledString815ba09f6eca235c
bjc.everge.ControlledString1d8c54b305bba2d6
bjc.everge.ControlledString6e1e4d76836d3451
bjc.everge.ControlledString6b747f732248a2c4
bjc.everge.ControlledString967229cd24a7df8a
bjc.everge.ControlledString8a33e86a16236cd3
bjc.everge.ControlledString37915ca66c20adcb
bjc.everge.ControlledStringb121f9453d08606e
bjc.everge.ControlledString86a5ad4ede772690
bjc.everge.ControlledStringe85d66270ad0c9a7
bjc.everge.ControlledString6b95594cf514eeda
bjc.everge.ControlledString6a37705414a1b35e
bjc.everge.ControlledString1ec2f5183bc201aa
bjc.everge.ControlledString.Controle89634e8b0117265
bjc.everge.ControlledString.Controlc1ffd6e665243a56
bjc.everge.ControlledString.Controlc368ee4a91edd063
bjc.everge.ControlledString.Controle857324e0d0f67b8
bjc.everge.ControlledString.Control5b49537977f3a6d9
bjc.everge.ControlledString.Controlb2f5f32d329c5c5f
bjc.everge.ControlledString.Control3d6c3b22fd1714d4
bjc.everge.ControlledString.Control557e824235c7c175
bjc.everge.ControlledString.Controld2a9902a8f486027
bjc.everge.ControlledString.ParseStringsc2b6fb70e5cce877
bjc.everge.ControlledString.ParseStrings5e97ddd3e659dea2
bjc.everge.ControlledString.ParseStringse1b41879c9280106
bjc.everge.ControlledStringTest405dfc5fd397f984
bjc.everge.ControlledStringTest2abff8671e0b865b
bjc.everge.ControlledStringTestfe98161f82b93a92
bjc.everge.ControlledStringTest250d25afb9f16e12
bjc.everge.ControlledStringTestd44a8e671212c963
bjc.everge.ControlledStringTest07c51946e3654e85
bjc.everge.ControlledStringTest5aebf3998a5bfe5d
bjc.everge.ControlledStringTestcdb3f756d6eb79be
bjc.everge.ControlledStringTest4d93357933603433
bjc.everge.ControlledStringTest04ec08d5e81853dc
bjc.everge.ControlledStringTest91331a3f4c5084a2
bjc.everge.Everge0f9bbd087c6a82a8
bjc.everge.Evergeac1b1523b93eca6e
bjc.everge.Everge.InputStatus4a55ec97be767aa3
bjc.everge.Everge.InputStatus069de9ebb85708e2
bjc.everge.EvergeTestcdb20595b065d577
bjc.everge.EvergeTestd5de2cf3390d27ab
bjc.everge.IntHolder737f55a181942cdc
bjc.everge.ReplErrorcfe2129d4ad345ed
bjc.everge.ReplOpts8450f17e7cbeb091
bjc.everge.ReplOptsbdbd00c7b061b643
bjc.everge.ReplOptsc30eafcacae90dc7
bjc.everge.ReplPairf7e7daa9ca7b8725
bjc.everge.ReplPairc94eda96890980c3
bjc.everge.ReplPairb111a0d029d0c63c
bjc.everge.ReplPair6a2bb26fcfc843bd
bjc.everge.ReplPair657a783ab46cc31a
bjc.everge.ReplPair1675699e3a2bd964
bjc.everge.ReplPair99bace6f1eef5ff7
bjc.everge.ReplPair6c1a15f0194e167c
bjc.everge.ReplPair2290a992be9a017a
bjc.everge.ReplPair821b3bb4b4cb4871
bjc.everge.ReplPair2d75250bb3a4dc9b
bjc.everge.ReplPairc1ec4e5463d64125
bjc.everge.ReplPairab0b378a98b937a8
bjc.everge.ReplPair04066e7ffce6e758
bjc.everge.ReplPairTest43a263a8514afd4b
bjc.everge.ReplPairTesta2a4401d3beee729
bjc.everge.ReplPairTestf0f3401d3bef71d5
bjc.everge.ReplPairTest113dc21d30690e76
bjc.everge.ReplParseException72cbae1b620efdbc
bjc.everge.ReplParseExceptiond8ab30d3d245efb0
bjc.everge.ReplParseException3eea90a3071724c2
bjc.everge.StageStatusac16631888ecec1d
bjc.everge.StringUtils96129974ee10757f
bjc.everge.StringUtilsb1f6ea8a04497939
bjc.everge.StringUtils162d01291f370427
bjc.everge.StringUtils46672b84a602d7fe
bjc.everge.StringUtils345938959587d360
bjc.everge.StringUtilsb2c7807a17916b02
bjc.everge.StringUtils5380b0d12b9b82fa
bjc.everge.StringUtils56009bb8e60e51fe
bjc.everge.StringUtilsea5a1ca459f38b67
bjc.everge.StringUtils5faea0492fe3f69d
bjc.everge.StringUtilse124af90d0899493
bjc.everge.StringUtilsafb06ae0324ba1aa
bjc.everge.StringUtils95379209e31566ec
bjc.everge.StringUtils68722ea854182213
bjc.everge.StringUtilsd93e3b9453a991dc
bjc.everge.StringUtilsc821d7e7cdde30f5
bjc.everge.StringUtilse8bc70abb233e8de
bjc.everge.StringUtils72794c9b4192e467
bjc.everge.StringUtilsf28c1c23f3a4ca11
bjc.everge.StringUtilse4ad5e03d758c4db
bjc.everge.StringUtils25a4be5eb9694fa7
bjc.everge.StringUtils473ac177d99f4483
bjc.everge.StringUtils2a436ce5ce20f3e1
bjc.everge.StringUtils02cc20f71169fa3b
bjc.everge.StringUtils158ec1ceb2332bf6
bjc.everge.StringUtils8653cd571861b6ed
bjc.everge.StringUtils7e01c56903605d83
bjc.everge.StringUtils9fb30af8a3271de2
bjc.everge.StringUtilsdcde9a6346e8f1f2
bjc.everge.StringUtils9c9ef2ae9cfcff61
bjc.everge.StringUtils834a3c5103a7216e
bjc.everge.StringUtils1c88fcd7e41cc194
bjc.everge.StringUtils73789ce1e2babcff
bjc.everge.StringUtils5f58bc01c7ffbf5e
bjc.everge.StringUtilsTestbabeafb324d389bc
bjc.everge.StringUtilsTestba524758af935222
bjc.everge.StringUtilsTest03a5d7d600df7a60
bjc.everge.StringUtilsTest862b25c9cb9e0e95
bjc.everge.StringUtilsTest2c45b0b5b9f969fd
bjc.everge.StringUtilsTest1f3d0eb955670a17
bjc.everge.StringUtilsTest6e7276d8d6f77555
bjc.everge.StringUtilsTestb0de7d7e5f67ddef
bjc.everge.StringUtilsTest11c88b1b176e3ae7
bjc.everge.StringUtilsTest11d6c586e9cdcce5
bjc.everge.StringUtilsTeste90540f3b3f9338c
bjc.everge.StringUtilsTest77748dc7c974e456
bjc.everge.StringUtilsTest33b839e709b1f84d
bjc.everge.StringUtilsTest24d6981b58274f22
bjc.everge.StringUtilsTest1e1bbcbd29fc0a94
bjc.everge.StringUtilsTestaa0b4e114ce90f23
bjc.everge.TestUtilsd742f7d80d269997
bjc.everge.TestUtilsb856b26575088552
bjc.everge.TestUtilse350a84ca5a95817
bjc.everge.TestUtils28c19ab0cfe56d43
bjc.everge.TestUtilsb4a64196a53960fd
bjc.everge.TestUtils600403e996648897
bjc.everge.TestUtilse1883133c3693458
bjc.everge.TestUtilsda32b864ed74ea96
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.JUnit4StackTraceWriter4381f0edfc893883
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.ClassNameStackTraceFilter2e0e75f8104a222a
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.SafeThrowablee61429531d0f0c1c
org.apache.maven.surefire.report.SimpleReportEntryced572f24a462295
org.apache.maven.surefire.report.SmartStackTraceParser45ff733565a2ac18
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.ComparisonFailure2e043b54f4444387
org.junit.ComparisonFailure.ComparisonCompactor63a5eeaf6441cd66
org.junit.internal.ArrayComparisonFailure2f82261abd610f66
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.Failure667385430e134e4a
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.4b1686c7d1ca56287
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 6f4f87a..f27d951 100644 --- a/docs/jacoco-ut/jacoco.csv +++ b/docs/jacoco-ut/jacoco.csv @@ -1,13 +1,14 @@ 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,ControlledString.Control,18,0,0,0,9,0,3,0,3,0 -everge,bjc.everge,Everge.InputStatus,0,34,0,0,0,4,0,1,0,1 everge,bjc.everge,StringUtils,190,270,17,37,24,56,16,14,1,2 -everge,bjc.everge,ReplOpts,66,30,18,0,11,10,10,1,1,1 -everge,bjc.everge,ReplPair,800,822,87,99,138,198,73,50,2,15 -everge,bjc.everge,ReplError,72,60,7,1,7,11,6,3,2,3 -everge,bjc.everge,ReplParseException,59,69,6,6,11,16,7,3,2,2 -everge,bjc.everge,StageStatus,0,34,0,0,0,4,0,1,0,1 +everge,bjc.everge,ReplOpts,147,30,30,0,22,10,17,1,2,1 +everge,bjc.everge,ReplPair,940,835,99,105,161,194,83,50,2,16 +everge,bjc.everge,ReplError,57,75,5,3,5,13,5,4,2,3 +everge,bjc.everge,ControlledString.ParseStrings,8,15,0,0,1,6,1,1,1,1 everge,bjc.everge,Everge,534,319,54,29,124,75,41,14,2,6 everge,bjc.everge,IntHolder,10,22,0,0,5,7,2,4,2,4 -everge,bjc.everge,ControlledString,159,0,14,0,35,0,12,0,5,0 +everge,bjc.everge,ControlledString.Control,132,101,22,22,21,25,20,11,3,6 +everge,bjc.everge,Everge.InputStatus,0,34,0,0,0,4,0,1,0,1 +everge,bjc.everge,ReplParseException,59,69,6,6,11,16,7,3,2,2 +everge,bjc.everge,StageStatus,0,34,0,0,0,4,0,1,0,1 +everge,bjc.everge,ControlledString,74,148,3,15,17,27,5,11,3,4 everge,bjc.everge,ReplSet,105,0,6,0,24,0,9,0,6,0 diff --git a/docs/jacoco-ut/jacoco.xml b/docs/jacoco-ut/jacoco.xml index 5f4eacf..1a17404 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