From c085995f4b554237ca98fb04686fdeb402a3cf70 Mon Sep 17 00:00:00 2001
From: Johannes Mey <johannes.mey@tu-dresden.de>
Date: Thu, 27 Aug 2020 23:12:50 +0200
Subject: [PATCH] add accessors

---
 Navigation.jrag | 25 +++++++++++++++++++++++--
 Printing.jrag   |  2 +-
 2 files changed, 24 insertions(+), 3 deletions(-)

diff --git a/Navigation.jrag b/Navigation.jrag
index 4d9f923..c481f77 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 856e42a..2b93aa2 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 {
-- 
GitLab