diff --git a/Navigation.jrag b/Navigation.jrag index 4d9f923844949ab64985c914ff59f00a74d4a2b4..c481f772a7a7074891ca6fbb61889b8cb0aaf30a 100644 --- a/Navigation.jrag +++ b/Navigation.jrag @@ -1,6 +1,27 @@ aspect Navigation { - syn boolean Element.isComplex() = false; - eq ComplexElement.isComplex() = true; + syn boolean Element.isComplexElement() = false; + eq ComplexElement.isComplexElement() = true; + + syn ComplexElement Element.asComplexElement() = null; + eq ComplexElement.asComplexElement() = this; + + syn boolean Element.isMappingElement() = false; + eq MappingElement.isMappingElement() = true; + + syn MappingElement Element.asMappingElement() = null; + eq MappingElement.asMappingElement() = this; + + syn boolean Element.isListElement() = false; + eq ListElement.isListElement() = true; + + syn ListElement Element.asListElement() = null; + eq ListElement.asListElement() = this; + + syn boolean Element.isSimpleElement() = false; + eq SimpleElement.isSimpleElement() = true; + + syn SimpleElement Element.asSimpleElement() = null; + eq SimpleElement.asSimpleElement() = this; syn boolean Element.isEmpty() = false; eq MappingElement.isEmpty() = getNumKeyValuePair() == 0; diff --git a/Printing.jrag b/Printing.jrag index 856e42a9b927970c44a966a15dc9a2226e49f06c..2b93aa2b87162bef2766b5d5e263d774a86cf06c 100644 --- a/Printing.jrag +++ b/Printing.jrag @@ -60,7 +60,7 @@ aspect Printing { protected StringBuilder KeyValuePair.prettyPrint(StringBuilder sb, boolean printIndent, String indent) { if (printIndent) sb.append(indent); sb.append(getKey()).append(":"); - if (getValue().isComplex() && !getValue().isEmpty()) { + if (getValue().isComplexElement() && !getValue().isEmpty()) { sb.append("\n"); getValue().prettyPrint(sb, true, indent + PRINT_INDENT); } else {