/** * 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); } }