in ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/formatter/RutaFormattedPrinter.java [618:719]
private void appendRuleElement(RutaRuleElement ruleEl) throws Exception {
// if (ruleEl instanceof ComposedRuleElement) {
// ComposedRuleElement cre = (ComposedRuleElement) ruleEl;
// List<Expression> elements = cre.getElements();
// append(PAR_OPEN);
// for (Expression expression : elements) {
//
// if (expression instanceof RutaRuleElement) {
// RutaRuleElement re = (RutaRuleElement) expression;
// appendRuleElement(re);
// }
// if (elements.indexOf(expression) < elements.size() - 1) {
// append(" ");
// }
//
// }
// append(PAR_CLOSE);
// } else
if (ruleEl.getHead() != null) {
append(ruleEl.getHead());
}
if (ruleEl.isWildcard()) {
append("#");
}
List<RutaCondition> conditions = ruleEl.getConditions();
List<RutaAction> actions = ruleEl.getActions();
// don't print {->} for empty rule elements
// print Quantifiers
List<? extends ASTNode> quantifierExpressions = ruleEl.getQuantifierExpressions();
if (quantifierExpressions != null && !quantifierExpressions.isEmpty()) {
if (quantifierExpressions.size() == 1) {
ASTNode astNode = quantifierExpressions.get(0);
if (astNode instanceof RutaQuantifierLiteralExpression) {
append(astNode);
} else {
append(BRACK_OPEN);
append(astNode);
append(BRACK_CLOSE);
}
} else if (quantifierExpressions.size() == 2) {
if (quantifierExpressions.get(1) instanceof RutaQuantifierLiteralExpression) {
append(BRACK_OPEN);
append(quantifierExpressions.get(0));
append(BRACK_CLOSE);
append(quantifierExpressions.get(1));
} else {
append(BRACK_OPEN);
append(quantifierExpressions.get(0));
append(COMMA + " ");
append(quantifierExpressions.get(1));
append(BRACK_CLOSE);
}
} else if (quantifierExpressions.size() == 3) {
append(BRACK_OPEN);
append(quantifierExpressions.get(0));
append(COMMA + " ");
append(quantifierExpressions.get(1));
append(BRACK_CLOSE);
append(quantifierExpressions.get(2));
}
}
if (!inBlockDeclaration && conditions == null && actions == null) {
return;
}
if (!inBlockDeclaration && ((conditions == null && actions.isEmpty())
|| actions == null && (conditions != null) && conditions.isEmpty())) {
return;
}
append(CURLY_OPEN);
// print Conditions
if (conditions != null && !conditions.isEmpty()) {
traverseAstNodes(conditions);
}
if (conditions != null && !conditions.isEmpty()) {
}
// print Actions
if (actions != null && !actions.isEmpty()) {
if (conditions != null && !conditions.isEmpty()) {
append(" " + THEN + " ");
} else {
append(THEN + " ");
}
traverseAstNodes(actions);
}
append(CURLY_CLOSE);
if (ruleEl.getInlinedRuleBlocks() != null && !ruleEl.getInlinedRuleBlocks().isEmpty()) {
String inlineMode = ruleEl.getInlineMode();
append(inlineMode);
append(CURLY_OPEN);
indentLevel++;
List<List<RutaRule>> inlinedRuleBlocks = ruleEl.getInlinedRuleBlocks();
for (List<RutaRule> inlinedRules : inlinedRuleBlocks) {
for (RutaRule rutaRule : inlinedRules) {
visit(rutaRule);
}
}
indentLevel--;
appendIntoNewLine(CURLY_CLOSE);
}
}