/** * Copyright 2004-2016 Riccardo Solmi. All rights reserved. * This file is part of the Whole Platform. * * The Whole Platform is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * The Whole Platform is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with the Whole Platform. If not, see <http://www.gnu.org/licenses/>. */ package org.whole.lang.models.codebase; import org.whole.lang.builders.IBuilderOperation; import org.whole.lang.templates.AbstractTemplateFactory; public class VisitorsModel extends AbstractTemplateFactory<org.whole.lang.models.model.Model> { public void apply(IBuilderOperation op) { org.whole.lang.models.builders.IModelsBuilder b0 = (org.whole.lang.models.builders.IModelsBuilder) op.wGetBuilder(org.whole.lang.models.reflect.ModelsLanguageKit.URI); b0.Model_(); b0.SimpleName("Visitors"); b0.TypeRelations_(0); b0._TypeRelations(); b0.ModelDeclarations_(37); b0.CompositeEntity_(); b0.EntityModifiers(); b0.SimpleName("Operations"); b0.Types(); b0.ComponentModifiers_(1); b0.ComponentModifier("ordered"); b0._ComponentModifiers(); b0.SimpleName("Operation"); b0._CompositeEntity(); b0.SimpleEntity_(); b0.EntityModifiers(); b0.SimpleName("RelationDeclaration"); b0.Types_(1); b0.SimpleName("Operation"); b0._Types(); b0.Features_(3); b0.Feature_(); b0.FeatureModifiers(); b0.SimpleName("SimpleName"); b0.SimpleName("name"); b0._Feature(); b0.Feature_(); b0.FeatureModifiers(); b0.SimpleName("PatternDeclarations"); b0.SimpleName("patterns"); b0._Feature(); b0.Feature_(); b0.FeatureModifiers(); b0.SimpleName("Statements"); b0.SimpleName("statements"); b0._Feature(); b0._Features(); b0._SimpleEntity(); b0.SimpleEntity_(); b0.EntityModifiers(); b0.SimpleName("VisitorDeclaration"); b0.Types_(1); b0.SimpleName("Operation"); b0._Types(); b0.Features_(3); b0.Feature_(); b0.FeatureModifiers(); b0.SimpleName("SimpleName"); b0.SimpleName("name"); b0._Feature(); b0.Feature_(); b0.FeatureModifiers(); b0.SimpleName("Templates"); b0.SimpleName("templates"); b0._Feature(); b0.Feature_(); b0.FeatureModifiers(); b0.SimpleName("Cases"); b0.SimpleName("cases"); b0._Feature(); b0._Features(); b0._SimpleEntity(); b0.CompositeEntity_(); b0.EntityModifiers(); b0.SimpleName("Cases"); b0.Types(); b0.ComponentModifiers_(1); b0.ComponentModifier("ordered"); b0._ComponentModifiers(); b0.SimpleName("ICase"); b0._CompositeEntity(); b0.SimpleEntity_(); b0.EntityModifiers(); b0.SimpleName("WhenCase"); b0.Types_(1); b0.SimpleName("ICase"); b0._Types(); b0.Features_(2); b0.Feature_(); b0.FeatureModifiers(); b0.SimpleName("PatternDeclaration"); b0.SimpleName("pattern"); b0._Feature(); b0.Feature_(); b0.FeatureModifiers(); b0.SimpleName("Statements"); b0.SimpleName("statements"); b0._Feature(); b0._Features(); b0._SimpleEntity(); b0.SimpleEntity_(); b0.EntityModifiers(); b0.SimpleName("OtherwiseCase"); b0.Types_(1); b0.SimpleName("ICase"); b0._Types(); b0.Features_(1); b0.Feature_(); b0.FeatureModifiers(); b0.SimpleName("Statements"); b0.SimpleName("statements"); b0._Feature(); b0._Features(); b0._SimpleEntity(); b0.CompositeEntity_(); b0.EntityModifiers(); b0.SimpleName("PatternDeclarations"); b0.Types(); b0.ComponentModifiers_(2); b0.ComponentModifier("unique"); b0.ComponentModifier("ordered"); b0._ComponentModifiers(); b0.SimpleName("PatternDeclaration"); b0._CompositeEntity(); b0.SimpleEntity_(); b0.EntityModifiers(); b0.SimpleName("PatternDeclaration"); b0.Types(); b0.Features_(2); b0.Feature_(); b0.FeatureModifiers(); b0.SimpleName("PatternExpression"); b0.SimpleName("pattern"); b0._Feature(); b0.Feature_(); b0.FeatureModifiers_(1); b0.FeatureModifier("id"); b0._FeatureModifiers(); b0.SimpleName("SimpleName"); b0.SimpleName("name"); b0._Feature(); b0._Features(); b0._SimpleEntity(); b0.CompositeEntity_(); b0.EntityModifiers(); b0.SimpleName("Statements"); b0.Types(); b0.ComponentModifiers_(1); b0.ComponentModifier("ordered"); b0._ComponentModifiers(); b0.SimpleName("Statement"); b0._CompositeEntity(); b0.CompositeEntity_(); b0.EntityModifiers(); b0.SimpleName("Templates"); b0.Types(); b0.ComponentModifiers_(1); b0.ComponentModifier("ordered"); b0._ComponentModifiers(); b0.SimpleName("TemplateDeclaration"); b0._CompositeEntity(); b0.SimpleEntity_(); b0.EntityModifiers(); b0.SimpleName("TemplateDeclaration"); b0.Types_(1); b0.SimpleName("Statement"); b0._Types(); b0.Features_(3); b0.Feature_(); b0.FeatureModifiers(); b0.SimpleName("SimpleName"); b0.SimpleName("name"); b0._Feature(); b0.Feature_(); b0.FeatureModifiers(); b0.SimpleName("PointcutDeclarations"); b0.SimpleName("pointcuts"); b0._Feature(); b0.Feature_(); b0.FeatureModifiers(); b0.SimpleName("PatternExpression"); b0.SimpleName("template"); b0._Feature(); b0._Features(); b0._SimpleEntity(); b0.CompositeEntity_(); b0.EntityModifiers(); b0.SimpleName("PointcutDeclarations"); b0.Types(); b0.ComponentModifiers_(2); b0.ComponentModifier("unique"); b0.ComponentModifier("ordered"); b0._ComponentModifiers(); b0.SimpleName("PointcutDeclaration"); b0._CompositeEntity(); b0.SimpleEntity_(); b0.EntityModifiers(); b0.SimpleName("PointcutDeclaration"); b0.Types_(1); b0.SimpleName("Statement"); b0._Types(); b0.Features_(2); b0.Feature_(); b0.FeatureModifiers(); b0.SimpleName("PathExpression"); b0.SimpleName("path"); b0._Feature(); b0.Feature_(); b0.FeatureModifiers_(1); b0.FeatureModifier("id"); b0._FeatureModifiers(); b0.SimpleName("SimpleName"); b0.SimpleName("name"); b0._Feature(); b0._Features(); b0._SimpleEntity(); b0.CompositeEntity_(); b0.EntityModifiers(); b0.SimpleName("PointcutAssignments"); b0.Types(); b0.ComponentModifiers_(1); b0.ComponentModifier("ordered"); b0._ComponentModifiers(); b0.SimpleName("PointcutAssignment"); b0._CompositeEntity(); b0.SimpleEntity_(); b0.EntityModifiers(); b0.SimpleName("PointcutAssignment"); b0.Types_(1); b0.SimpleName("Statement"); b0._Types(); b0.Features_(2); b0.Feature_(); b0.FeatureModifiers(); b0.SimpleName("PathExpression"); b0.SimpleName("path"); b0._Feature(); b0.Feature_(); b0.FeatureModifiers(); b0.SimpleName("Expression"); b0.SimpleName("value"); b0._Feature(); b0._Features(); b0._SimpleEntity(); b0.SimpleEntity_(); b0.EntityModifiers(); b0.SimpleName("RecursiveTraversal"); b0.Types_(1); b0.SimpleName("Statement"); b0._Types(); b0.Features_(1); b0.Feature_(); b0.FeatureModifiers(); b0.SimpleName("PathExpression"); b0.SimpleName("path"); b0._Feature(); b0._Features(); b0._SimpleEntity(); b0.SimpleEntity_(); b0.EntityModifiers(); b0.SimpleName("VisitorTraversal"); b0.Types_(1); b0.SimpleName("Statement"); b0._Types(); b0.Features_(2); b0.Feature_(); b0.FeatureModifiers(); b0.SimpleName("PathExpression"); b0.SimpleName("path"); b0._Feature(); b0.Feature_(); b0.FeatureModifiers(); b0.SimpleName("IName"); b0.SimpleName("visitor"); b0._Feature(); b0._Features(); b0._SimpleEntity(); b0.SimpleEntity_(); b0.EntityModifiers(); b0.SimpleName("NestedTraversal"); b0.Types_(1); b0.SimpleName("Statement"); b0._Types(); b0.Features_(2); b0.Feature_(); b0.FeatureModifiers(); b0.SimpleName("PathExpression"); b0.SimpleName("path"); b0._Feature(); b0.Feature_(); b0.FeatureModifiers(); b0.SimpleName("Cases"); b0.SimpleName("cases"); b0._Feature(); b0._Features(); b0._SimpleEntity(); b0.SimpleEntity_(); b0.EntityModifiers(); b0.SimpleName("RelationCall"); b0.Types_(1); b0.SimpleName("Statement"); b0._Types(); b0.Features_(2); b0.Feature_(); b0.FeatureModifiers(); b0.SimpleName("SimpleName"); b0.SimpleName("name"); b0._Feature(); b0.Feature_(); b0.FeatureModifiers(); b0.SimpleName("PathExpressions"); b0.SimpleName("args"); b0._Feature(); b0._Features(); b0._SimpleEntity(); b0.SimpleEntity_(); b0.EntityModifiers(); b0.SimpleName("JoinPointDeclaration"); b0.Types(); b0.Features_(2); b0.Feature_(); b0.FeatureModifiers(); b0.SimpleName("SimpleName"); b0.SimpleName("name"); b0._Feature(); b0.Feature_(); b0.FeatureModifiers_(1); b0.FeatureModifier("optional"); b0._FeatureModifiers(); b0.SimpleName("PatternExpression"); b0.SimpleName("defaultTemplate"); b0._Feature(); b0._Features(); b0._SimpleEntity(); b0.SimpleEntity_(); b0.EntityModifiers(); b0.SimpleName("TemplatePattern"); b0.Types_(1); b0.SimpleName("PatternExpression"); b0._Types(); b0.Features_(2); b0.Feature_(); b0.FeatureModifiers(); b0.SimpleName("IName"); b0.SimpleName("name"); b0._Feature(); b0.Feature_(); b0.FeatureModifiers(); b0.SimpleName("PointcutAssignments"); b0.SimpleName("bindings"); b0._Feature(); b0._Features(); b0._SimpleEntity(); b0.SimpleEntity_(); b0.EntityModifiers_(1); b0.EntityModifier("abstract"); b0._EntityModifiers(); b0.SimpleName("PathExpression"); b0.Types_(1); b0.SimpleName("Expression"); b0._Types(); b0.Features(); b0._SimpleEntity(); b0.SimpleEntity_(); b0.EntityModifiers_(1); b0.EntityModifier("abstract"); b0._EntityModifiers(); b0.SimpleName("PatternExpression"); b0.Types_(1); b0.SimpleName("Expression"); b0._Types(); b0.Features(); b0._SimpleEntity(); b0.DataEntity_(); b0.EntityModifiers(); b0.SimpleName("LiteralExpression"); b0.Types_(1); b0.SimpleName("Expression"); b0._Types(); b0.DataType("String"); b0._DataEntity(); b0.SimpleEntity_(); b0.EntityModifiers_(1); b0.EntityModifier("abstract"); b0._EntityModifiers(); b0.SimpleName("StepExpression"); b0.Types_(1); b0.SimpleName("PathExpression"); b0._Types(); b0.Features(); b0._SimpleEntity(); b0.DataEntity_(); b0.EntityModifiers(); b0.SimpleName("SimpleName"); b0.Types_(2); b0.SimpleName("IName"); b0.SimpleName("StepExpression"); b0._Types(); b0.DataType("String"); b0._DataEntity(); b0.SimpleEntity_(); b0.EntityModifiers(); b0.SimpleName("QualifiedName"); b0.Types_(2); b0.SimpleName("IName"); b0.SimpleName("StepExpression"); b0._Types(); b0.Features_(2); b0.Feature_(); b0.FeatureModifiers(); b0.SimpleName("SimpleName"); b0.SimpleName("language"); b0._Feature(); b0.Feature_(); b0.FeatureModifiers(); b0.SimpleName("SimpleName"); b0.SimpleName("name"); b0._Feature(); b0._Features(); b0._SimpleEntity(); b0.SimpleEntity_(); b0.EntityModifiers(); b0.SimpleName("AllFeatures"); b0.Types_(1); b0.SimpleName("StepExpression"); b0._Types(); b0.Features(); b0._SimpleEntity(); b0.DataEntity_(); b0.EntityModifiers(); b0.SimpleName("FeatureByIndex"); b0.Types_(1); b0.SimpleName("StepExpression"); b0._Types(); b0.DataType("int"); b0._DataEntity(); b0.DataEntity_(); b0.EntityModifiers(); b0.SimpleName("FeatureByName"); b0.Types_(1); b0.SimpleName("StepExpression"); b0._Types(); b0.DataType("String"); b0._DataEntity(); b0.DataEntity_(); b0.EntityModifiers(); b0.SimpleName("FeatureByType"); b0.Types_(1); b0.SimpleName("StepExpression"); b0._Types(); b0.DataType("String"); b0._DataEntity(); b0.SimpleEntity_(); b0.EntityModifiers(); b0.SimpleName("FeatureByNameByType"); b0.Types_(1); b0.SimpleName("StepExpression"); b0._Types(); b0.Features_(2); b0.Feature_(); b0.FeatureModifiers(); b0.SimpleName("FeatureByName"); b0.SimpleName("feature"); b0._Feature(); b0.Feature_(); b0.FeatureModifiers(); b0.SimpleName("FeatureByType"); b0.SimpleName("type"); b0._Feature(); b0._Features(); b0._SimpleEntity(); b0.CompositeEntity_(); b0.EntityModifiers(); b0.SimpleName("PathExpressions"); b0.Types(); b0.ComponentModifiers_(1); b0.ComponentModifier("ordered"); b0._ComponentModifiers(); b0.SimpleName("PathExpression"); b0._CompositeEntity(); b0.SimpleEntity_(); b0.EntityModifiers(); b0.SimpleName("ChildStep"); b0.Types_(1); b0.SimpleName("PathExpression"); b0._Types(); b0.Features_(2); b0.Feature_(); b0.FeatureModifiers(); b0.SimpleName("StepExpression"); b0.SimpleName("step"); b0._Feature(); b0.Feature_(); b0.FeatureModifiers(); b0.SimpleName("PathExpression"); b0.SimpleName("path"); b0._Feature(); b0._Features(); b0._SimpleEntity(); b0.SimpleEntity_(); b0.EntityModifiers(); b0.SimpleName("DescendantStep"); b0.Types_(1); b0.SimpleName("PathExpression"); b0._Types(); b0.Features_(2); b0.Feature_(); b0.FeatureModifiers(); b0.SimpleName("StepExpression"); b0.SimpleName("step"); b0._Feature(); b0.Feature_(); b0.FeatureModifiers(); b0.SimpleName("PathExpression"); b0.SimpleName("path"); b0._Feature(); b0._Features(); b0._SimpleEntity(); b0.SimpleEntity_(); b0.EntityModifiers(); b0.SimpleName("ParentStep"); b0.Types_(1); b0.SimpleName("PathExpression"); b0._Types(); b0.Features_(2); b0.Feature_(); b0.FeatureModifiers(); b0.SimpleName("StepExpression"); b0.SimpleName("step"); b0._Feature(); b0.Feature_(); b0.FeatureModifiers(); b0.SimpleName("PathExpression"); b0.SimpleName("path"); b0._Feature(); b0._Features(); b0._SimpleEntity(); b0.SimpleEntity_(); b0.EntityModifiers(); b0.SimpleName("AncestorStep"); b0.Types_(1); b0.SimpleName("PathExpression"); b0._Types(); b0.Features_(2); b0.Feature_(); b0.FeatureModifiers(); b0.SimpleName("StepExpression"); b0.SimpleName("step"); b0._Feature(); b0.Feature_(); b0.FeatureModifiers(); b0.SimpleName("PathExpression"); b0.SimpleName("path"); b0._Feature(); b0._Features(); b0._SimpleEntity(); b0._ModelDeclarations(); b0.Namespace("org.whole.lang.visitors"); org.whole.lang.commons.builders.ICommonsBuilder b1 = (org.whole.lang.commons.builders.ICommonsBuilder) op.wGetBuilder(org.whole.lang.commons.reflect.CommonsLanguageKit.URI); b1.Resolver(); b0.URI("http://lang.whole.org/Visitors"); b0._Model(); } }