package org.whole.lang.queries.util; import org.whole.lang.model.IEntity; import org.whole.lang.templates.AbstractTemplateFactory; import org.whole.lang.templates.AbstractTemplateManager; import org.whole.lang.templates.ITemplateFactory; public class BindVariablesInPathTemplateManager extends AbstractTemplateManager { private static class SingletonHolder { private static final BindVariablesInPathTemplateManager instance = new BindVariablesInPathTemplateManager(); } public static BindVariablesInPathTemplateManager instance() { return SingletonHolder.instance; } private BindVariablesInPathTemplateManager() { put("findClassDeclarationsBAD2", newFindClassDeclarationsBAD2()); put("findClassDeclarationsOK1", newFindClassDeclarationsOK1()); put("findClassDeclarationsBAD1", newFindClassDeclarationsBAD1()); put("findClassDeclarationsOK2", newFindClassDeclarationsOK2()); put("compilationUnit", newCompilationUnit()); } public ITemplateFactory<IEntity> newFindClassDeclarationsBAD2() { return new AbstractTemplateFactory<IEntity>() { public void apply(org.whole.lang.builders.IBuilderOperation op) { org.whole.lang.queries.builders.IQueriesBuilder b0 = (org.whole.lang.queries.builders.IQueriesBuilder) op.wGetBuilder(org.whole.lang.queries.reflect.QueriesLanguageKit.URI); b0.Path_(2); b0.Filter_(); b0.DescendantStep(); b0.And_(); b0.TypeTest("MethodDeclaration"); b0.VariableTest("methodDeclaration"); b0._And(); b0._Filter(); b0.Filter_(); b0.SelfStep(); b0.ExpressionTest_(); b0.Path_(2); b0.FeatureStep("modifiers"); b0.Filter_(); b0.ChildStep(); b0.ExpressionTest_(); org.whole.lang.commons.builders.ICommonsBuilder b1 = (org.whole.lang.commons.builders.ICommonsBuilder) op.wGetBuilder(org.whole.lang.commons.reflect.CommonsLanguageKit.URI); b1.StageUpFragment_(); org.whole.lang.java.builders.IJavaBuilder b2 = (org.whole.lang.java.builders.IJavaBuilder) op.wGetBuilder(org.whole.lang.java.reflect.JavaLanguageKit.URI); b2.Modifier("public"); b1._StageUpFragment(); b0._ExpressionTest(); b0._Filter(); b0._Path(); b0._ExpressionTest(); b0._Filter(); b0._Path(); } }; } public ITemplateFactory<IEntity> newFindClassDeclarationsOK1() { return new AbstractTemplateFactory<IEntity>() { public void apply(org.whole.lang.builders.IBuilderOperation op) { org.whole.lang.queries.builders.IQueriesBuilder b0 = (org.whole.lang.queries.builders.IQueriesBuilder) op.wGetBuilder(org.whole.lang.queries.reflect.QueriesLanguageKit.URI); b0.Path_(2); b0.Filter_(); b0.DescendantStep(); b0.And_(); b0.TypeTest("MethodDeclaration"); b0.VariableTest("methodDeclaration"); b0._And(); b0._Filter(); b0.Filter_(); b0.SelfStep(); b0.ExpressionTest_(); b0.Path_(1); b0.Filter_(); b0.FeatureStep("modifiers"); b0.ExpressionTest_(); b0.Filter_(); b0.ChildStep(); b0.ExpressionTest_(); org.whole.lang.commons.builders.ICommonsBuilder b1 = (org.whole.lang.commons.builders.ICommonsBuilder) op.wGetBuilder(org.whole.lang.commons.reflect.CommonsLanguageKit.URI); b1.StageUpFragment_(); org.whole.lang.java.builders.IJavaBuilder b2 = (org.whole.lang.java.builders.IJavaBuilder) op.wGetBuilder(org.whole.lang.java.reflect.JavaLanguageKit.URI); b2.Modifier("public"); b1._StageUpFragment(); b0._ExpressionTest(); b0._Filter(); b0._ExpressionTest(); b0._Filter(); b0._Path(); b0._ExpressionTest(); b0._Filter(); b0._Path(); } }; } public ITemplateFactory<IEntity> newFindClassDeclarationsBAD1() { return new AbstractTemplateFactory<IEntity>() { public void apply(org.whole.lang.builders.IBuilderOperation op) { org.whole.lang.queries.builders.IQueriesBuilder b0 = (org.whole.lang.queries.builders.IQueriesBuilder) op.wGetBuilder(org.whole.lang.queries.reflect.QueriesLanguageKit.URI); b0.Path_(2); b0.Filter_(); b0.DescendantStep(); b0.And_(); b0.TypeTest("MethodDeclaration"); b0.VariableTest("methodDeclaration"); b0._And(); b0._Filter(); b0.Filter_(); b0.FeatureStep("modifiers"); b0.ExpressionTest_(); b0.Filter_(); b0.ChildStep(); b0.ExpressionTest_(); org.whole.lang.commons.builders.ICommonsBuilder b1 = (org.whole.lang.commons.builders.ICommonsBuilder) op.wGetBuilder(org.whole.lang.commons.reflect.CommonsLanguageKit.URI); b1.StageUpFragment_(); org.whole.lang.java.builders.IJavaBuilder b2 = (org.whole.lang.java.builders.IJavaBuilder) op.wGetBuilder(org.whole.lang.java.reflect.JavaLanguageKit.URI); b2.Modifier("public"); b1._StageUpFragment(); b0._ExpressionTest(); b0._Filter(); b0._ExpressionTest(); b0._Filter(); b0._Path(); } }; } public ITemplateFactory<IEntity> newFindClassDeclarationsOK2() { return new AbstractTemplateFactory<IEntity>() { public void apply(org.whole.lang.builders.IBuilderOperation op) { org.whole.lang.queries.builders.IQueriesBuilder b0 = (org.whole.lang.queries.builders.IQueriesBuilder) op.wGetBuilder(org.whole.lang.queries.reflect.QueriesLanguageKit.URI); b0.Path_(2); b0.Filter_(); b0.DescendantStep(); b0.And_(); b0.TypeTest("MethodDeclaration"); b0.VariableTest("methodDeclaration"); b0._And(); b0._Filter(); b0.Filter_(); b0.DescendantStep(); b0.ExpressionTest_(); org.whole.lang.commons.builders.ICommonsBuilder b1 = (org.whole.lang.commons.builders.ICommonsBuilder) op.wGetBuilder(org.whole.lang.commons.reflect.CommonsLanguageKit.URI); b1.StageUpFragment_(); org.whole.lang.java.builders.IJavaBuilder b2 = (org.whole.lang.java.builders.IJavaBuilder) op.wGetBuilder(org.whole.lang.java.reflect.JavaLanguageKit.URI); b2.Modifier("public"); b1._StageUpFragment(); b0._ExpressionTest(); b0._Filter(); b0._Path(); } }; } public ITemplateFactory<IEntity> newCompilationUnit() { return new AbstractTemplateFactory<IEntity>() { public void apply(org.whole.lang.builders.IBuilderOperation op) { org.whole.lang.java.builders.IJavaBuilder b0 = (org.whole.lang.java.builders.IJavaBuilder) op.wGetBuilder(org.whole.lang.java.reflect.JavaLanguageKit.URI); b0.CompilationUnit_(); b0.PackageDeclaration_(); org.whole.lang.commons.builders.ICommonsBuilder b1 = (org.whole.lang.commons.builders.ICommonsBuilder) op.wGetBuilder(org.whole.lang.commons.reflect.CommonsLanguageKit.URI); b1.Resolver(); b1.Resolver(); b0.QualifiedName("org.whole.lang"); b0._PackageDeclaration(); b0.ImportDeclarations_(6); b0.ImportDeclaration_(); b0.QualifiedName("org.whole.lang.bindings.BindingManagerFactory"); b0.ImportModifier(false); b0.ImportModifier(false); b0._ImportDeclaration(); b0.ImportDeclaration_(); b0.QualifiedName("org.whole.lang.bindings.IBindingManager"); b0.ImportModifier(false); b0.ImportModifier(false); b0._ImportDeclaration(); b0.ImportDeclaration_(); b0.QualifiedName("org.whole.lang.model.IEntity"); b0.ImportModifier(false); b0.ImportModifier(false); b0._ImportDeclaration(); b0.ImportDeclaration_(); b0.QualifiedName("org.whole.lang.visitors.GenericIdentityVisitor"); b0.ImportModifier(false); b0.ImportModifier(false); b0._ImportDeclaration(); b0.ImportDeclaration_(); b0.QualifiedName("org.whole.lang.visitors.GenericTraversalFactory"); b0.ImportModifier(false); b0.ImportModifier(false); b0._ImportDeclaration(); b0.ImportDeclaration_(); b0.QualifiedName("org.whole.lang.visitors.VisitException"); b0.ImportModifier(false); b0.ImportModifier(false); b0._ImportDeclaration(); b0._ImportDeclarations(); b0.TypeDeclarations_(1); b0.ClassDeclaration_(); b1.Resolver(); b0.ExtendedModifiers_(1); b0.Modifier("public"); b0._ExtendedModifiers(); b0.SimpleName("CheckPaternityVisitor"); b1.Resolver(); b0.SimpleType("GenericIdentityVisitor"); b1.Resolver(); b0.BodyDeclarations_(4); b0.FieldDeclaration_(); b1.Resolver(); b0.ExtendedModifiers_(1); b0.Modifier("private"); b0._ExtendedModifiers(); b0.SimpleType("IBindingManager"); b0.VariableDeclarationFragments_(1); b0.VariableDeclarationFragment_(); b0.SimpleName("bm"); b0.ExtraDimensions(0); b1.Resolver(); b0._VariableDeclarationFragment(); b0._VariableDeclarationFragments(); b0._FieldDeclaration(); b0.ConstructorDeclaration_(); b1.Resolver(); b0.ExtendedModifiers_(1); b0.Modifier("public"); b0._ExtendedModifiers(); b1.Resolver(); b0.SimpleName("CheckPaternityVisitor"); b0.Parameters(); b1.Resolver(); b1.Resolver(); b0.Block_(1); b0.ExpressionStatement_(); b0.Assignment_(); b0.SimpleName("bm"); b0.AssignmentOperator("="); b0.MethodInvocation_(); b0.QualifiedName("BindingManagerFactory.instance"); b0.Types(); b0.SimpleName("createBindingManager"); b0.Arguments(); b0._MethodInvocation(); b0._Assignment(); b0._ExpressionStatement(); b0._Block(); b0._ConstructorDeclaration(); b0.MethodDeclaration_(); b1.Resolver(); b0.ExtendedModifiers_(2); b0.MarkerAnnotation_(); b0.SimpleName("Override"); b0._MarkerAnnotation(); b0.Modifier("public"); b0._ExtendedModifiers(); b1.Resolver(); b0.PrimitiveType("void"); b0.SimpleName("visit"); b0.Parameters_(1); b0.SingleVariableDeclaration_(); b1.Resolver(); b0.SimpleType("IEntity"); b0.Varargs(false); b0.SimpleName("entity"); b0.ExtraDimensions(0); b1.Resolver(); b0._SingleVariableDeclaration(); b0._Parameters(); b1.Resolver(); b1.Resolver(); b0.Block_(2); b0.ExpressionStatement_(); b0.MethodInvocation_(); b0.SimpleName("bm"); b0.Types(); b0.SimpleName("wDef"); b0.Arguments_(2); b0.StringLiteral("parent"); b0.MethodInvocation_(); b0.SimpleName("entity"); b0.Types(); b0.SimpleName("wGetParent"); b0.Arguments(); b0._MethodInvocation(); b0._Arguments(); b0._MethodInvocation(); b0._ExpressionStatement(); b0.ExpressionStatement_(); b0.MethodInvocation_(); b0.MethodInvocation_(); b0.QualifiedName("GenericTraversalFactory.instance"); b0.Types(); b0.SimpleName("downUp"); b0.Arguments_(2); b0.ClassInstanceCreation_(); b1.Resolver(); b1.Resolver(); b0.SimpleType("GenericIdentityVisitor"); b1.Resolver(); b0.AnonymousClassDeclaration_(1); b0.MethodDeclaration_(); b1.Resolver(); b0.ExtendedModifiers_(1); b0.Modifier("public"); b0._ExtendedModifiers(); b1.Resolver(); b0.PrimitiveType("void"); b0.SimpleName("visit"); b0.Parameters_(1); b0.SingleVariableDeclaration_(); b1.Resolver(); b0.SimpleType("IEntity"); b0.Varargs(false); b0.SimpleName("entity"); b0.ExtraDimensions(0); b1.Resolver(); b0._SingleVariableDeclaration(); b0._Parameters(); b1.Resolver(); b1.Resolver(); b0.Block_(2); b0.ExpressionStatement_(); b0.MethodInvocation_(); b0.SimpleName("bm"); b0.Types(); b0.SimpleName("wEnterScope"); b0.Arguments(); b0._MethodInvocation(); b0._ExpressionStatement(); b0.ExpressionStatement_(); b0.MethodInvocation_(); b0.SimpleName("bm"); b0.Types(); b0.SimpleName("wDef"); b0.Arguments_(2); b0.StringLiteral("parent"); b0.SimpleName("entity"); b0._Arguments(); b0._MethodInvocation(); b0._ExpressionStatement(); b0._Block(); b0._MethodDeclaration(); b0._AnonymousClassDeclaration(); b0._ClassInstanceCreation(); b0.ClassInstanceCreation_(); b1.Resolver(); b1.Resolver(); b0.SimpleType("GenericIdentityVisitor"); b1.Resolver(); b0.AnonymousClassDeclaration_(1); b0.MethodDeclaration_(); b1.Resolver(); b0.ExtendedModifiers_(1); b0.Modifier("public"); b0._ExtendedModifiers(); b1.Resolver(); b0.PrimitiveType("void"); b0.SimpleName("visit"); b0.Parameters_(1); b0.SingleVariableDeclaration_(); b1.Resolver(); b0.SimpleType("IEntity"); b0.Varargs(false); b0.SimpleName("entity"); b0.ExtraDimensions(0); b1.Resolver(); b0._SingleVariableDeclaration(); b0._Parameters(); b1.Resolver(); b1.Resolver(); b0.Block_(2); b0.ExpressionStatement_(); b0.MethodInvocation_(); b0.SimpleName("bm"); b0.Types(); b0.SimpleName("wExitScope"); b0.Arguments(); b0._MethodInvocation(); b0._ExpressionStatement(); b0.IfStatement_(); b0.InfixExpression_(); b0.MethodInvocation_(); b0.SimpleName("bm"); b0.Types(); b0.SimpleName("wGet"); b0.Arguments_(1); b0.StringLiteral("parent"); b0._Arguments(); b0._MethodInvocation(); b0.InfixOperator("!="); b0.MethodInvocation_(); b0.SimpleName("entity"); b0.Types(); b0.SimpleName("wGetParent"); b0.Arguments(); b0._MethodInvocation(); b0.Expressions(); b0._InfixExpression(); b0.ThrowStatement_(); b0.ClassInstanceCreation_(); b1.Resolver(); b1.Resolver(); b0.SimpleType("VisitException"); b1.Resolver(); b1.Resolver(); b0._ClassInstanceCreation(); b0._ThrowStatement(); b1.Resolver(); b0._IfStatement(); b0._Block(); b0._MethodDeclaration(); b0._AnonymousClassDeclaration(); b0._ClassInstanceCreation(); b0._Arguments(); b0._MethodInvocation(); b0.Types(); b0.SimpleName("visit"); b0.Arguments_(1); b0.SimpleName("entity"); b0._Arguments(); b0._MethodInvocation(); b0._ExpressionStatement(); b0._Block(); b0._MethodDeclaration(); b0.MethodDeclaration_(); b1.Resolver(); b0.ExtendedModifiers_(2); b0.Modifier("public"); b0.Modifier("static"); b0._ExtendedModifiers(); b1.Resolver(); b0.PrimitiveType("boolean"); b0.SimpleName("check"); b0.Parameters_(1); b0.SingleVariableDeclaration_(); b1.Resolver(); b0.SimpleType("IEntity"); b0.Varargs(false); b0.SimpleName("entity"); b0.ExtraDimensions(0); b1.Resolver(); b0._SingleVariableDeclaration(); b0._Parameters(); b1.Resolver(); b1.Resolver(); b0.Block_(1); b0.TryStatement_(); b0.Block_(2); b0.ExpressionStatement_(); b0.MethodInvocation_(); b0.ClassInstanceCreation_(); b1.Resolver(); b1.Resolver(); b0.SimpleType("CheckPaternityVisitor"); b1.Resolver(); b1.Resolver(); b0._ClassInstanceCreation(); b0.Types(); b0.SimpleName("visit"); b0.Arguments_(1); b0.SimpleName("entity"); b0._Arguments(); b0._MethodInvocation(); b0._ExpressionStatement(); b0.ReturnStatement_(); b0.BooleanLiteral(true); b0._ReturnStatement(); b0._Block(); b0.CatchClauses_(1); b0.CatchClause_(); b0.SingleVariableDeclaration_(); b1.Resolver(); b0.SimpleType("VisitException"); b0.Varargs(false); b0.SimpleName("e"); b0.ExtraDimensions(0); b1.Resolver(); b0._SingleVariableDeclaration(); b0.Block_(1); b0.ReturnStatement_(); b0.BooleanLiteral(false); b0._ReturnStatement(); b0._Block(); b0._CatchClause(); b0._CatchClauses(); b0.Block(); b0._TryStatement(); b0._Block(); b0._MethodDeclaration(); b0._BodyDeclarations(); b0._ClassDeclaration(); b0._TypeDeclarations(); b0._CompilationUnit(); } }; } }