private void addSimpleAssignmentFromExpressionItems( AssignmentExpression assignmentExpression, Collection<AssignmentExpression> simpleAssignmentsFromExpressionItems) { if (assignmentExpression instanceof CreateInstanceExpression) { CreateInstanceExpression createInstanceExpression = (CreateInstanceExpression) assignmentExpression; simpleAssignmentsFromExpressionItems.addAll(createInstanceExpression.getAssignment().getAssignmentExpressions()); } else { simpleAssignmentsFromExpressionItems.add(assignmentExpression); } }
@Override public AssignmentExpression toAssignmentExpression() throws IllegalStateException { ArchetypeReference archetypeReference = getArchetypeReference(); if (archetypeReference != null) { String name = archetypeReference.getIdArchetype(); Variable var = new Variable( cdsEntryRuleLineElement.getValue().getValue(), null, name, CreateInstanceExpression.FUNCTION_CREATE_NAME); List<AssignmentExpression> assignmentExpressions = new ArrayList<>(); if (!getChildrenRuleLines().getRuleLines().isEmpty()) { for (RuleLine childRuleLine : getChildrenRuleLines().getRuleLines()) { AssignmentExpressionRuleLine assignmentExpressionRuleLine = (AssignmentExpressionRuleLine) childRuleLine; assignmentExpressions.add(assignmentExpressionRuleLine.toAssignmentExpression()); } } else { log.debug("No assignment rules on create instance action rule"); return null; } return new CreateInstanceExpression( var, assignmentExpressions); } else { log.debug("No archetype reference set on create instance action rule"); return null; } }
case SYM_L_PARENTHESIS: assignmentExpressions = assignmentExpressions(); {if (true) return new CreateInstanceExpression((Variable) item, assignmentExpressions);} break; default:
private static void addGTCodesInWrites(ExpressionItem expressionItem, Set<String> gtCodes) { if (expressionItem instanceof CreateInstanceExpression) { MultipleAssignmentExpression multipleAssignmentExpression = ((CreateInstanceExpression) expressionItem).getAssignment(); for (AssignmentExpression assignmentExpression : multipleAssignmentExpression.getAssignmentExpressions()) { addGTCodesInWrites(assignmentExpression, gtCodes); } } else if (expressionItem instanceof AssignmentExpression) { gtCodes.add(((AssignmentExpression) expressionItem).getVariable().getCode()); } else { throw new RuntimeException("Unknown expression '" + expressionItem.getClass().getName() + "'"); } }