/** * 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 writeConcepts(Collection<Concept> concepts, JqassistantRules rules) { for (Concept concept : concepts) { ConceptType conceptType = new ConceptType(); conceptType.setId(concept.getId()); conceptType.setDescription(concept.getDescription()); conceptType.setSeverity(getSeverity(concept.getSeverity(), ruleConfiguration.getDefaultConceptSeverity())); writeExecutable(conceptType, concept); writeRequiredConcepts(concept, conceptType); rules.getConceptOrConstraintOrGroup().add(conceptType); } }
@Override public boolean visitConcept(Concept concept, Severity effectiveSeverity) throws RuleException { try { analyzerContext.getStore().beginTransaction(); ConceptDescriptor conceptDescriptor = analyzerContext.getStore().find(ConceptDescriptor.class, concept.getId()); Result.Status status; if (conceptDescriptor == null || configuration.isExecuteAppliedConcepts()) { analyzerContext.getLogger() .info("Applying concept '" + concept.getId() + "' with severity: '" + concept.getSeverity().getInfo(effectiveSeverity) + "'."); reportPlugin.beginConcept(concept); Result<Concept> result = execute(concept, effectiveSeverity); reportPlugin.setResult(result); status = result.getStatus(); if (conceptDescriptor == null) { conceptDescriptor = analyzerContext.getStore().create(ConceptDescriptor.class); conceptDescriptor.setId(concept.getId()); conceptDescriptor.setStatus(status); } reportPlugin.endConcept(); } else { status = conceptDescriptor.getStatus(); } analyzerContext.getStore().commitTransaction(); return Result.Status.SUCCESS.equals(status); } catch (XOException e) { analyzerContext.getStore().rollbackTransaction(); throw new RuleException("Cannot apply concept " + concept.getId(), e); } }
for (Concept concept : ruleSet.getConceptBucket().getAll()) { JSONObject conceptObject = new JSONObject(); conceptObject.put(JSON_OBJECT_KEY_ID, concept.getId()); conceptObject.put(JSON_OBJECT_KEY_DESCRIPTION, concept.getDescription()); conceptObject.put(JSON_OBJECT_KEY_CYPHER, getCypher(concept));