private ArchetypeInstantiationRuleLine getArchetypeInstantiationRuleLine() { return (ArchetypeInstantiationRuleLine) getParentRuleLine(); }
public WithElementPredicateFunctionDefinitionRuleLine() { super(OpenEHRLanguageManager.getMessage("ElementPredicateFunction"), OpenEHRLanguageManager.getMessage("ElementPredicateFunctionDesc")); archetypeElementRuleLineDefinitionElement = new ArchetypeElementRuleLineDefinitionElement(this); functionRuleLineElement = new PredicateComparisonFunctionRuleLineElement(this); getRuleLineElements().add(new StaticTextRuleLineElement(this, "WithElementRLE")); getRuleLineElements().add(archetypeElementRuleLineDefinitionElement); getRuleLineElements().add(functionRuleLineElement); }
@Override public ExpressionItem toExpressionItem() { ArchetypeElementVO archetypeElementVO = getArchetypeElementRuleLineDefinitionElement().getValue(); String path = archetypeElementVO.getPath(); OperatorKind operatorKind = getFunctionRuleLineElement().getValue(); String name = getArchetypeManager().getArchetypeElements().getText(archetypeElementVO, getLanguage()); return new UnaryExpression( new Variable(null, name, path), operatorKind); }
@Override public String getPredicateDescription() { StringBuilder sb = new StringBuilder(); ArchetypeElementRuleLineDefinitionElement aerlde = getArchetypeElementRuleLineDefinitionElement(); if (aerlde != null) { ArchetypeElementVO archetypeElementVO = aerlde.getValue(); if (archetypeElementVO != null) { String name = aerlde.getArchetypeManager().getArchetypeElements().getText(archetypeElementVO, getLanguage()); sb.append(getFunctionRuleLineElement().getValue()).append("(").append(name).append(")"); } else { LoggerFactory.getLogger(ArchetypeReference.class).warn("Unknown predicate for AR '" + aerlde.toString() + "'"); sb.append("*UNKNOWN PREDICATE*"); } } return sb.toString(); } }
WithElementPredicateFunctionDefinitionRuleLine wefd = new WithElementPredicateFunctionDefinitionRuleLine(); Variable variable = (Variable) unaryExpression.getOperand(); airl.addChildRuleLine(wefd); + "' not found!"); wefd.getArchetypeElementRuleLineDefinitionElement().setValue(archetypeElementVO); wefd.getFunctionRuleLineElement().setValue(unaryExpression.getOperator());
@Override public ArchetypeReference getArchetypeReference() { return getArchetypeInstantiationRuleLine().getArchetypeReferenceRuleLineDefinitionElement().getValue(); }