diff options
3 files changed, 27 insertions, 10 deletions
diff --git a/src/batchtools/rsTester/src/main/java/com/galois/fiveui/RuleSet.java b/src/batchtools/rsTester/src/main/java/com/galois/fiveui/RuleSet.java index 568a346..8e750ea 100644 --- a/src/batchtools/rsTester/src/main/java/com/galois/fiveui/RuleSet.java +++ b/src/batchtools/rsTester/src/main/java/com/galois/fiveui/RuleSet.java @@ -48,15 +48,18 @@ public class RuleSet { private final String name; private final String description; private final List<String> rules; + private final List<String> dependencies; private transient ImmutableMap<String, Rule> _evaledRules = null; private transient String descDir = "."; - public RuleSet(String name, String description, List<String> ruleFiles) { + public RuleSet(String name, String description, + List<String> ruleFiles, List<String> dependencies) { this.name = name; this.description = description; this.rules = ruleFiles; + this.dependencies = dependencies; } private void parseRules() { @@ -89,7 +92,8 @@ public class RuleSet { */ public static RuleSet empty() { List<String> rules = Lists.newArrayList(); - return new RuleSet("", "", ImmutableList.copyOf(rules)); + return new RuleSet("", "", ImmutableList.copyOf(rules), + ImmutableList.<String>of()); } public String getName() { @@ -100,6 +104,11 @@ public class RuleSet { return description; } + public List<String> getDependencies() { + return dependencies; + } + + public ImmutableCollection<Rule> getRules() { if (null == _evaledRules) { parseRules(); @@ -121,7 +130,10 @@ public class RuleSet { public String toJS() { Gson gson = new Gson(); StringBuilder builder = new StringBuilder(); - builder.append("["); + builder.append("{ \"dependencies\": "); + builder.append(gson.toJson(this.dependencies)); + builder.append(",\n"); + builder.append(" \"rules\": ["); for (String r : this.rules) { try { @@ -139,7 +151,8 @@ public class RuleSet { } } - builder.append("]"); + builder.append(" ]\n"); + builder.append("}"); return builder.toString(); } diff --git a/src/batchtools/rsTester/src/test/java/com/galois/fiveui/RunDescriptionTest.java b/src/batchtools/rsTester/src/test/java/com/galois/fiveui/RunDescriptionTest.java index 0d5d4c4..a815f0a 100644 --- a/src/batchtools/rsTester/src/test/java/com/galois/fiveui/RunDescriptionTest.java +++ b/src/batchtools/rsTester/src/test/java/com/galois/fiveui/RunDescriptionTest.java @@ -36,13 +36,13 @@ public class RunDescriptionTest { RUN_DESCRIPTION_DIR + "../ruleSets/emptyRuleSet.json"; ImmutableList<String> emptyRuleList = ImmutableList.of(); - RuleSet rsOracle = new RuleSet("emptyRuleSet", "", emptyRuleList); + RuleSet rsOracle = new RuleSet("emptyRuleSet", "", + emptyRuleList, ImmutableList.<String>of()); RSTestDescription oracle = new RSTestDescription(ruleSetLoc, new ArrayList<RSTestDescription.URIMap>(), rsOracle); - RSTestDescription actual = RSTestDescription.parse(jsonFileName); assertObjEqual("Object deserialized incorrectly.", oracle, actual); } @@ -59,14 +59,14 @@ public class RunDescriptionTest { RUN_DESCRIPTION_DIR + "../ruleSets/simpleRuleSet1.json"; RuleSet rsOracle = - new RuleSet("simpleRuleSet1", "", ImmutableList.of("emptyCheck.js")); + new RuleSet("simpleRuleSet1", "", + ImmutableList.of("emptyCheck.js"), ImmutableList.<String>of()); rsOracle.setDirectory(RUN_DESCRIPTION_DIR + "../ruleSets/"); RSTestDescription oracle = new RSTestDescription(ruleSetLoc, new ArrayList<RSTestDescription.URIMap>(), rsOracle); - RSTestDescription actual = RSTestDescription.parse(jsonFileName); assertObjEqual("Object deserialized incorrectly.", oracle, actual); } @@ -87,7 +87,8 @@ public class RunDescriptionTest { "Heading Guidelines", "Guidelines pertaining to the formatting and content of headings.", ImmutableList.of("headingGuidelines-caps.js", - "headingGuidelines-noEmptyHdrs.js")); + "headingGuidelines-noEmptyHdrs.js"), + ImmutableList.<String>of()); rsOracle.setDirectory(RUN_DESCRIPTION_DIR + "../ruleSets/"); rsOracle.getRules(); // force the rules to parse diff --git a/src/js/fiveui/injected/compute.js b/src/js/fiveui/injected/compute.js index 49c0a43..8fc7a84 100644 --- a/src/js/fiveui/injected/compute.js +++ b/src/js/fiveui/injected/compute.js @@ -305,6 +305,9 @@ }; var registerBackendListeners = function(port) { + /** + * @param {{rules: [string], dependencies: [string]}} ruleDescr + */ var assembleRules = function(ruleDescr) { var ruleList = []; @@ -317,7 +320,7 @@ console.error(x); } }); - + var ruleStrList = ruleDescr.rules; for(var i=0; i<ruleStrList.length; ++i) { var moduleStr = |