public static Set<String> getGTCodesInWrites(Rule rule) { Set<String> gtCodes = new HashSet<>(); if (rule.getThenStatements() != null) { for (ExpressionItem expressionItem : rule.getThenStatements()) { addGTCodesInWrites(expressionItem, gtCodes); } } return gtCodes; }
public static Set<String> getGTCodesInReads(Rule rule) { Set<String> gtCodes = new HashSet<>(); if (rule.getWhenStatements() != null) { for (ExpressionItem expressionItem : rule.getWhenStatements()) { addGTCodesInReads(expressionItem, gtCodes); } } if (rule.getThenStatements() != null) { for (ExpressionItem expressionItem : rule.getThenStatements()) { addGTCodesInReads(expressionItem, gtCodes); } } return gtCodes; }
private Collection<BinaryExpression> getSimpleConditionsFromExpressionItems(Guide guide, Rule rule) { Collection<BinaryExpression> simpleConditionsExpressionItems = new ArrayList<>(); for (ExpressionItem expressionItem : guide.getDefinition().getPreConditionExpressions()) { addSimpleConditionsFromExpressionItems(expressionItem, simpleConditionsExpressionItems); } for (ExpressionItem expressionItem : rule.getWhenStatements()) { addSimpleConditionsFromExpressionItems(expressionItem, simpleConditionsExpressionItems); } for (ExpressionItem expressionItem : rule.getThenStatements()) { addSimpleConditionsFromExpressionItems(expressionItem, simpleConditionsExpressionItems); } return simpleConditionsExpressionItems; }
private Map<String, Collection<GuideAssignmentExpression>> generateAllAssignmentsByElementIdMap() { Map<String, Collection<GuideAssignmentExpression>> allAssignmentsByElementId = new HashMap<>(); for (Guide guide : guideMap.values()) { if (guide.getDefinition() != null) { for (Rule rule : guide.getDefinition().getRules().values()) { Collection<AssignmentExpression> simpleAssignmentsFromExpressionItems = getSimpleAssignmentsFromExpressionItems(rule.getThenStatements()); for (AssignmentExpression assignmentExpression : simpleAssignmentsFromExpressionItems) { Variable variable = assignmentExpression.getVariable(); RuleReference ruleReference = new RuleReference(guide.getId(), variable.getCode()); ElementInstance elementInstance = getElementInstanceByRuleReferenceMap().get(ruleReference); if (elementInstance == null) { logger.warn("ElementInstance not found for " + ruleReference); } else { Collection<GuideAssignmentExpression> guideAssignmentExpression = allAssignmentsByElementId.computeIfAbsent(elementInstance.getId(), k -> new ArrayList<>()); guideAssignmentExpression.add(new GuideAssignmentExpression(guide.getId(), assignmentExpression)); } } } } } return allAssignmentsByElementId; }
private void processRuleLines(Guide guide, Rule rule, GraphNode graphNode) throws InternalErrorException { for (ExpressionItem expressionItem : guide.getDefinition().getPreConditionExpressions()) { addExpressionNodes(guide.getId(), expressionItem, graphNode); } for (ExpressionItem expressionItem : rule.getWhenStatements()) { addExpressionNodes(guide.getId(), expressionItem, graphNode); } for (ExpressionItem expressionItem : rule.getThenStatements()) { addExpressionNodes(guide.getId(), expressionItem, graphNode); } }
if (rule.getThenStatements() != null) { for (ExpressionItem expressionItem : rule.getThenStatements()) { processExpressionItem(rr.getActionRuleLines(), null, expressionItem);