@Override public void run() throws XMLStreamException { xmlStreamWriter.writeStartElement("group"); xmlStreamWriter.writeAttribute("id", group.getId()); xmlStreamWriter.writeAttribute("date", XML_DATE_FORMAT.format(now)); } });
public static Group.GroupBuilder builder() { return new GroupBuilder(new Group()); }
/** * Executes the given group. * * @param ruleSet * The rule set. * @param group * The group. * @param parentSeverity * The severity. */ private void executeGroup(RuleSet ruleSet, Group group, Severity parentSeverity) throws RuleException { if (!executedGroups.contains(group)) { ruleVisitor.beforeGroup(group, getEffectiveSeverity(group, parentSeverity, parentSeverity)); for (Map.Entry<String, Severity> conceptEntry : group.getConcepts().entrySet()) { applyConcepts(ruleSet, conceptEntry.getKey(), parentSeverity, conceptEntry.getValue()); } for (Map.Entry<String, Severity> groupEntry : group.getGroups().entrySet()) { executeGroups(ruleSet, groupEntry.getKey(), parentSeverity, groupEntry.getValue()); } Map<String, Severity> constraints = group.getConstraints(); for (Map.Entry<String, Severity> constraintEntry : constraints.entrySet()) { validateConstraints(ruleSet, constraintEntry.getKey(), parentSeverity, constraintEntry.getValue()); } ruleVisitor.afterGroup(group); executedGroups.add(group); } }
private void writeGroups(Collection<Group> groups, JqassistantRules rules) { for (Group group : groups) { GroupType groupType = new GroupType(); groupType.setId(group.getId()); for (Map.Entry<String, Severity> groupEntry : group.getGroups().entrySet()) { IncludedReferenceType groupReferenceType = new IncludedReferenceType(); groupReferenceType.setRefId(groupEntry.getKey()); groupType.setSeverity(getSeverity(groupEntry.getValue(), ruleConfiguration.getDefaultGroupSeverity())); groupType.getIncludeGroup().add(groupReferenceType); } for (Map.Entry<String, Severity> conceptEntry : group.getConcepts().entrySet()) { IncludedReferenceType conceptReferenceType = new IncludedReferenceType(); conceptReferenceType.setRefId(conceptEntry.getKey()); conceptReferenceType.setSeverity(getSeverity(conceptEntry.getValue(), ruleConfiguration.getDefaultConceptSeverity())); groupType.getIncludeConcept().add(conceptReferenceType); } for (Map.Entry<String, Severity> constraintEntry : group.getConstraints().entrySet()) { IncludedReferenceType constraintReferenceType = new IncludedReferenceType(); constraintReferenceType.setRefId(constraintEntry.getKey()); constraintReferenceType.setSeverity(getSeverity(constraintEntry.getValue(), ruleConfiguration.getDefaultConstraintSeverity())); groupType.getIncludeConstraint().add(constraintReferenceType); } rules.getConceptOrConstraintOrGroup().add(groupType); } }
for (Group group : ruleSet.getGroupsBucket().getAll()) { JSONObject groupObject = new JSONObject(); groupObject.put(JSON_OBJECT_KEY_ID, group.getId()); groupObject.put(JSON_OBJECT_KEY_DESCRIPTION, group.getDescription()); groups.put(groupObject);
Group group = Group.builder().id(id).severity(null /* todo */) .ruleSource(context.getSource()) .concepts(includedConcepts).constraints(includedConstraints)
private Group createGroup(String id, RuleSource ruleSource, GroupType referenceableType) throws RuleException { SeverityEnumType severityType = referenceableType.getSeverity(); Severity severity = getSeverity(severityType, getRuleConfiguration().getDefaultGroupSeverity()); Map<String, Severity> includeConcepts = getIncludedReferences(referenceableType.getIncludeConcept()); Map<String, Severity> includeConstraints = getIncludedReferences(referenceableType.getIncludeConstraint()); Map<String, Severity> includeGroups = getIncludedReferences(referenceableType.getIncludeGroup()); return Group.builder().id(id).severity(severity).ruleSource(ruleSource).concepts(includeConcepts).constraints(includeConstraints) .groups(includeGroups).build(); }
/** * Prints all valid rules. * * @param visitor * The visitor. */ private void printValidRules(CollectRulesVisitor visitor) { logger.info("Groups [" + visitor.getGroups().size() + "]"); for (Group group : visitor.getGroups()) { logger.info(LOG_LINE_PREFIX + group.getId() + "\""); } logger.info("Constraints [" + visitor.getConstraints().size() + "]"); for (Constraint constraint : visitor.getConstraints().keySet()) { logger.info(LOG_LINE_PREFIX + constraint.getId() + "\" - " + constraint.getDescription()); } logger.info("Concepts [" + visitor.getConcepts().size() + "]"); for (Concept concept : visitor.getConcepts().keySet()) { logger.info(LOG_LINE_PREFIX + concept.getId() + "\" - " + concept.getDescription()); } }
private void extractGroup(RuleSource ruleSource, AbstractBlock groupBlock, RuleSetBuilder ruleSetBuilder) throws RuleException { Attributes attributes = new Attributes(groupBlock.getAttributes()); Map<String, Severity> constraints = getGroupElements(attributes, INCLUDES_CONSTRAINTS); Map<String, Severity> concepts = getGroupElements(attributes, INCLUDES_CONCEPTS); Map<String, Severity> groups = getGroupElements(attributes, INCLUDES_GROUPS); Severity severity = getSeverity(attributes, getRuleConfiguration().getDefaultGroupSeverity()); Group group = Group.builder().id(groupBlock.id()).description(groupBlock.getTitle()).severity(severity).ruleSource(ruleSource).concepts(concepts) .constraints(constraints).groups(groups).build(); ruleSetBuilder.addGroup(group); }
@Override public void beforeGroup(Group group, Severity effectiveSeverity) throws RuleException { analyzerContext.getLogger().info("Executing group '" + group.getId() + "'"); analyzerContext.getStore().beginTransaction(); reportPlugin.beginGroup(group); analyzerContext.getStore().commitTransaction(); }