/* * Copyright (c) 2016 RWTH Aachen. All rights reserved. * * http://www.se-rwth.de/ */ package de.monticore; import de.monticore.generating.templateengine.reporting.commons.ReportingRepository; import de.monticore.grammar.concepts.antlr.antlr._od.Antlr2OD; import de.monticore.grammar.grammar._ast.ASTGrammarNode; import de.monticore.grammar.grammar._od.Grammar2OD; import de.monticore.grammar.grammar_withconcepts._od.Grammar_WithConcepts2OD; import de.monticore.grammar.grammar_withconcepts._visitor.CommonGrammar_WithConceptsDelegatorVisitor; import de.monticore.grammar.grammar_withconcepts._visitor.Grammar_WithConceptsDelegatorVisitor; import de.monticore.grammar.grammar_withconcepts._visitor.Grammar_WithConceptsVisitor; import de.monticore.java.javadsl._od.JavaDSL2OD; import de.monticore.literals.literals._od.Literals2OD; import de.monticore.prettyprint.IndentPrinter; import de.monticore.types.types._od.Types2OD; public class GrammarWithConcepts2OD extends Grammar_WithConcepts2OD { private Grammar_WithConceptsVisitor realThis = this; private final Grammar_WithConceptsDelegatorVisitor visitor; private IndentPrinter printer; /** * Constructor for de.monticore.GrammarWithConcepts2OD. * @param symbol * @param identHelper */ public GrammarWithConcepts2OD(IndentPrinter printer, ReportingRepository reporting) { super(printer, reporting); visitor = new CommonGrammar_WithConceptsDelegatorVisitor(); visitor.set_de_monticore_grammar_grammar_withconcepts__visitor_Grammar_WithConceptsVisitor(this); visitor.set_de_monticore_grammar_concepts_antlr_antlr__visitor_AntlrVisitor(new Antlr2OD(printer, reporting)); visitor.set_de_monticore_grammar_grammar__visitor_GrammarVisitor(new Grammar2OD(printer, reporting)); visitor.set_de_monticore_java_javadsl__visitor_JavaDSLVisitor(new JavaDSL2OD(printer, reporting)); visitor.set_de_monticore_literals_literals__visitor_LiteralsVisitor(new Literals2OD(printer, reporting)); visitor.set_de_monticore_types_types__visitor_TypesVisitor(new Types2OD(printer, reporting)); this.printer = printer; } @Override public void setRealThis(Grammar_WithConceptsVisitor realThis) { if (this.realThis != realThis) { this.realThis = realThis; visitor.setRealThis(realThis); } } @Override public Grammar_WithConceptsVisitor getRealThis() { return realThis; } public String printObjectDiagram(String modelName, ASTGrammarNode a) { printer.clearBuffer(); printer.setIndentLength(2); printer.print("objectdiagram "); printer.print(modelName); printer.println(" {"); printer.indent(); a.accept(getRealThis()); printer.unindent(); printer.println("}"); return printer.getContent(); } }