package org.whole.examples.datatypes;
import org.whole.lang.builders.IBuilderOperation;
import org.whole.lang.templates.AbstractTemplateFactory;
public class RedBlackTreeActions extends AbstractTemplateFactory<org.whole.lang.actions.model.LanguageActionFactory> {
public void apply(IBuilderOperation op) {
org.whole.lang.actions.builders.IActionsBuilder b0 = (org.whole.lang.actions.builders.IActionsBuilder) op.wGetBuilder(org.whole.lang.actions.reflect.ActionsLanguageKit.URI);
b0.LanguageActionFactory_();
b0.URI("whole:org.whole.examples.datatypes:RedBlackTreeActions");
b0.Namespace("org.whole.examples.datatypes");
b0.Name("RedBlackTreeActions");
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://datatypes.examples.whole.org/RedBlackTree");
b0.ToolbarActions_();
b0.SimpleAction_();
b0.Label("validator");
org.whole.lang.queries.builders.IQueriesBuilder b2 = (org.whole.lang.queries.builders.IQueriesBuilder) op.wGetBuilder(org.whole.lang.queries.reflect.QueriesLanguageKit.URI);
b2.Block_(7);
b2.QueryDeclaration_();
b2.Name("addError");
b2.Names_(2);
b2.Name("message");
b2.Name("location");
b2._Names();
b2.Sequence_(1);
b1.SameStageFragment_();
org.whole.lang.java.builders.IJavaBuilder b3 = (org.whole.lang.java.builders.IJavaBuilder) op.wGetBuilder(org.whole.lang.java.reflect.JavaLanguageKit.URI);
b3.ExpressionStatement_();
b3.MethodInvocation_();
b3.SimpleName("decorationManager");
b3.Types_(0);
b3._Types();
b3.SimpleName("addError");
b3.Arguments_(3);
b3.SimpleName("self");
b3.SimpleName("message");
b3.MethodInvocation_();
b3.SimpleName("location");
b3.Types_(0);
b3._Types();
b3.SimpleName("toString");
b3.Arguments_(0);
b3._Arguments();
b3._MethodInvocation();
b3._Arguments();
b3._MethodInvocation();
b3._ExpressionStatement();
b1._SameStageFragment();
b2._Sequence();
b2._QueryDeclaration();
b2.QueryDeclaration_();
b2.Name("addWarning");
b2.Names_(2);
b2.Name("message");
b2.Name("location");
b2._Names();
b2.Sequence_(1);
b1.SameStageFragment_();
b3.ExpressionStatement_();
b3.MethodInvocation_();
b3.SimpleName("decorationManager");
b3.Types_(0);
b3._Types();
b3.SimpleName("addWarning");
b3.Arguments_(3);
b3.SimpleName("node");
b3.SimpleName("message");
b3.MethodInvocation_();
b3.SimpleName("location");
b3.Types_(0);
b3._Types();
b3.SimpleName("toString");
b3.Arguments_(0);
b3._Arguments();
b3._MethodInvocation();
b3._Arguments();
b3._MethodInvocation();
b3._ExpressionStatement();
b1._SameStageFragment();
b2._Sequence();
b2._QueryDeclaration();
b2.QueryDeclaration_();
b2.Name("validateRootNode");
b1.Resolver();
b2.If_();
b2.ExpressionTest_();
b2.Filter_();
b2.FeatureStep("color");
b2.ExpressionTest_();
b1.StageUpFragment_();
org.whole.lang.reflect.EntityDescriptorEnum e4 = org.whole.lang.reflect.ReflectionFactory.getLanguageKit("http://datatypes.examples.whole.org/RedBlackTree").getEntityDescriptorEnum();
b1.wEntity(e4.valueOf("Color"), "RED");
b1._StageUpFragment();
b2._ExpressionTest();
b2._Filter();
b2._ExpressionTest();
b2.Call_();
b2.Name("addError");
b2.Expressions_(2);
b2.StringLiteral("The tree root must be black");
b2.Singleton_();
b2.FeatureStep("value");
b2._Singleton();
b2._Expressions();
b2._Call();
b2._If();
b2._QueryDeclaration();
b2.QueryDeclaration_();
b2.Name("validateRedNodes");
b1.Resolver();
b2.Path_(2);
b2.Filter_();
b2.DescendantStep();
b2.And_(2);
b2.ExpressionTest_();
b2.Filter_();
b2.FeatureStep("color");
b2.ExpressionTest_();
b1.StageUpFragment_();
b1.wEntity(e4.valueOf("Color"), "RED");
b1._StageUpFragment();
b2._ExpressionTest();
b2._Filter();
b2._ExpressionTest();
b2.ExpressionTest_();
b2.Path_(2);
b2.ParentStep();
b2.Filter_();
b2.FeatureStep("color");
b2.ExpressionTest_();
b1.StageUpFragment_();
b1.wEntity(e4.valueOf("Color"), "RED");
b1._StageUpFragment();
b2._ExpressionTest();
b2._Filter();
b2._Path();
b2._ExpressionTest();
b2._And();
b2._Filter();
b2.Call_();
b2.Name("addError");
b2.Expressions_(2);
b2.StringLiteral("The parent of a red node must be black");
b2.Singleton_();
b2.FeatureStep("value");
b2._Singleton();
b2._Expressions();
b2._Call();
b2._Path();
b2._QueryDeclaration();
b2.QueryDeclaration_();
b2.Name("validateOrder");
b2.Names_(1);
b2.Name("value");
b2._Names();
b2.Block_(2);
b2.QueryDeclaration_();
b2.Name("checkTreeValues");
b2.Names_(3);
b2.Name("minValue");
b2.Name("maxValue");
b2.Name("value");
b2._Names();
b2.Path_(2);
b2.Filter_();
b2.SelfStep();
b2.ExpressionTest_();
b2.Filter_();
b2.FeatureStep("value");
b2.VariableTest("value");
b2._Filter();
b2._ExpressionTest();
b2._Filter();
b2.Sequence_(3);
b2.If_();
b2.Or_(2);
b2.ExpressionTest_();
b2.LessThan_();
b2.VariableRefStep("value");
b2.VariableRefStep("minValue");
b2._LessThan();
b2._ExpressionTest();
b2.ExpressionTest_();
b2.GreaterThan_();
b2.VariableRefStep("value");
b2.VariableRefStep("maxValue");
b2._GreaterThan();
b2._ExpressionTest();
b2._Or();
b2.Call_();
b2.Name("addError");
b2.Expressions_(2);
b2.StringLiteral("The value is not in order");
b2.VariableRefStep("value");
b2._Expressions();
b2._Call();
b2._If();
b2.Path_(2);
b2.FeatureStep("left");
b2.Call_();
b2.Name("checkTreeValues");
b2.Expressions_(2);
b2.VariableRefStep("minValue");
b2.VariableRefStep("value");
b2._Expressions();
b2._Call();
b2._Path();
b2.Path_(2);
b2.FeatureStep("right");
b2.Call_();
b2.Name("checkTreeValues");
b2.Expressions_(2);
b2.VariableRefStep("value");
b2.VariableRefStep("maxValue");
b2._Expressions();
b2._Call();
b2._Path();
b2._Sequence();
b2._Path();
b2._QueryDeclaration();
b2.Path_(2);
b2.Filter_();
b2.SelfStep();
b2.ExpressionTest_();
b2.Filter_();
b2.FeatureStep("value");
b2.VariableTest("value");
b2._Filter();
b2._ExpressionTest();
b2._Filter();
b2.Sequence_(2);
b2.Path_(2);
b2.FeatureStep("left");
b2.Call_();
b2.Name("checkTreeValues");
b2.Expressions_(2);
b1.SameStageFragment_();
b3.FieldAccess_();
b3.SimpleName("Integer");
b3.SimpleName("MIN_VALUE");
b3._FieldAccess();
b1._SameStageFragment();
b2.VariableRefStep("value");
b2._Expressions();
b2._Call();
b2._Path();
b2.Path_(2);
b2.FeatureStep("right");
b2.Call_();
b2.Name("checkTreeValues");
b2.Expressions_(2);
b2.VariableRefStep("value");
b1.SameStageFragment_();
b3.FieldAccess_();
b3.SimpleName("Integer");
b3.SimpleName("MAX_VALUE");
b3._FieldAccess();
b1._SameStageFragment();
b2._Expressions();
b2._Call();
b2._Path();
b2._Sequence();
b2._Path();
b2._Block();
b2._QueryDeclaration();
b2.QueryDeclaration_();
b2.Name("validateBlackPaths");
b2.Names_(2);
b2.Name("size1");
b2.Name("size2");
b2._Names();
b2.Block_(4);
b2.Filter_();
b2.Choose_(2);
b2.Path_(2);
b2.FeatureStep("left");
b2.Call_();
b2.Name("validateBlackPaths");
b1.Resolver();
b2._Call();
b2._Path();
b2.IntLiteral(0);
b2._Choose();
b2.VariableTest("size1");
b2._Filter();
b2.Filter_();
b2.Choose_(2);
b2.Path_(2);
b2.FeatureStep("right");
b2.Call_();
b2.Name("validateBlackPaths");
b1.Resolver();
b2._Call();
b2._Path();
b2.IntLiteral(0);
b2._Choose();
b2.VariableTest("size2");
b2._Filter();
b2.If_();
b2.ExpressionTest_();
b2.NotEquals_();
b2.VariableRefStep("size1");
b2.VariableRefStep("size2");
b2._NotEquals();
b2._ExpressionTest();
b2.Call_();
b2.Name("addError");
b2.Expressions_(2);
b2.StringLiteral("Every simple path must have the same number of black nodes");
b2.Singleton_();
b2.FeatureStep("value");
b2._Singleton();
b2._Expressions();
b2._Call();
b2._If();
b2.Choose_(2);
b2.If_();
b2.ExpressionTest_();
b2.Filter_();
b2.FeatureStep("color");
b2.ExpressionTest_();
b1.StageUpFragment_();
b1.wEntity(e4.valueOf("Color"), "BLACK");
b1._StageUpFragment();
b2._ExpressionTest();
b2._Filter();
b2._ExpressionTest();
b2.Addition_();
b2.VariableRefStep("size1");
b2.IntLiteral(1);
b2._Addition();
b2._If();
b2.Do_();
b2.VariableRefStep("size1");
b2._Do();
b2._Choose();
b2._Block();
b2._QueryDeclaration();
b2.Sequence_(4);
b2.Call_();
b2.Name("validateRootNode");
b1.Resolver();
b2._Call();
b2.Call_();
b2.Name("validateRedNodes");
b1.Resolver();
b2._Call();
b2.Call_();
b2.Name("validateOrder");
b1.Resolver();
b2._Call();
b2.Call_();
b2.Name("validateBlackPaths");
b1.Resolver();
b2._Call();
b2._Sequence();
b2._Block();
b0._SimpleAction();
b1.Resolver();
b1.Resolver();
b1.Resolver();
b1.Resolver();
b0._ToolbarActions();
b0.ContextMenuActions_();
b0.MenuActions_(3);
b0.GuardedAction_();
b0.Label("insert random value");
b2.Block_(3);
b2.QueryDeclaration_();
b2.Name("insert");
b2.Names_(2);
b2.Name("value");
b2.Name("nodeValue");
b2._Names();
b2.Choose_(3);
b2.Path_(2);
b2.Sequence_(1);
b2.PointwiseUpdate_();
b2.Filter_();
b2.SelfStep();
b2.KindTest("RESOLVER");
b2._Filter();
b1.StageUpFragment_();
b1.wEntity_(e4.valueOf("RBNode"));
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#Value");
b1.VarName("value");
b1.Quantifier("!");
b1._Variable();
b1.wEntity(e4.valueOf("Color"), "RED");
b1.Resolver();
b1.Resolver();
b1._wEntity(e4.valueOf("RBNode"));
b1._StageUpFragment();
b2._PointwiseUpdate();
b2._Sequence();
b2.Call_();
b2.Name("balance");
b1.Resolver();
b2._Call();
b2._Path();
b2.If_();
b2.ExpressionTest_();
b2.LessThan_();
b2.VariableRefStep("value");
b2.Singleton_();
b2.FeatureStep("value");
b2._Singleton();
b2._LessThan();
b2._ExpressionTest();
b2.Path_(2);
b2.FeatureStep("left");
b2.Call_();
b2.Name("insert");
b2.Expressions_(1);
b2.VariableRefStep("value");
b2._Expressions();
b2._Call();
b2._Path();
b2._If();
b2.Path_(2);
b2.FeatureStep("right");
b2.Call_();
b2.Name("insert");
b2.Expressions_(1);
b2.VariableRefStep("value");
b2._Expressions();
b2._Call();
b2._Path();
b2._Choose();
b2._QueryDeclaration();
b2.QueryDeclaration_();
b2.Name("balance");
b2.Names_(7);
b2.Name("x");
b2.Name("y");
b2.Name("z");
b2.Name("a");
b2.Name("b");
b2.Name("c");
b2.Name("d");
b2._Names();
b2.Choose_(2);
b2.PointwiseUpdate_();
b2.Path_(2);
b2.Filter_();
b2.SelfStep();
b2.ExpressionTest_();
b2.Filter_();
b2.ParentStep();
b2.SubtypeTest("http://lang.whole.org/Commons#Fragment");//WAS KindTest("FRAGMENT")
b2._Filter();
b2._ExpressionTest();
b2._Filter();
b2.FeatureStep("color");
b2._Path();
b1.StageUpFragment_();
b1.wEntity(e4.valueOf("Color"), "BLACK");
b1._StageUpFragment();
b2._PointwiseUpdate();
b2.Path_(2);
b2.ParentStep();
b2.Choose_(2);
b2.If_();
b2.ExpressionTest_();
b2.Filter_();
b2.FeatureStep("color");
b2.ExpressionTest_();
b1.StageUpFragment_();
b1.wEntity(e4.valueOf("Color"), "BLACK");
b1._StageUpFragment();
b2._ExpressionTest();
b2._Filter();
b2._ExpressionTest();
b2.SelfStep();
b2._If();
b2.Path_(2);
b2.ParentStep();
b2.Choose_(2);
b2.Path_(2);
b2.Sequence_(1);
b2.CartesianUpdate_();
b2.Filter_();
b2.SelfStep();
b2.ExpressionTest_();
b1.StageUpFragment_();
b1.wEntity_(e4.valueOf("RBNode"));
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#Value");
b1.VarName("y");
b1.Quantifier("!");
b1._Variable();
b1.wEntity(e4.valueOf("Color"), "BLACK");
b1.wEntity_(e4.valueOf("RBNode"));
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#Value");
b1.VarName("x");
b1.Quantifier("!");
b1._Variable();
b1.wEntity(e4.valueOf("Color"), "RED");
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#RBNode");
b1.VarName("a");
b1.Quantifier("!");
b1._Variable();
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#RBNode");
b1.VarName("b");
b1.Quantifier("!");
b1._Variable();
b1._wEntity(e4.valueOf("RBNode"));
b1.wEntity_(e4.valueOf("RBNode"));
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#Value");
b1.VarName("z");
b1.Quantifier("!");
b1._Variable();
b1.wEntity(e4.valueOf("Color"), "RED");
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#RBNode");
b1.VarName("c");
b1.Quantifier("!");
b1._Variable();
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#RBNode");
b1.VarName("d");
b1.Quantifier("!");
b1._Variable();
b1._wEntity(e4.valueOf("RBNode"));
b1._wEntity(e4.valueOf("RBNode"));
b1._StageUpFragment();
b2._ExpressionTest();
b2._Filter();
b1.StageUpFragment_();
b1.wEntity_(e4.valueOf("RBNode"));
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#Value");
b1.VarName("y");
b1.Quantifier("!");
b1._Variable();
b1.wEntity(e4.valueOf("Color"), "RED");
b1.wEntity_(e4.valueOf("RBNode"));
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#Value");
b1.VarName("x");
b1.Quantifier("!");
b1._Variable();
b1.wEntity(e4.valueOf("Color"), "BLACK");
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#RBNode");
b1.VarName("a");
b1.Quantifier("!");
b1._Variable();
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#RBNode");
b1.VarName("b");
b1.Quantifier("!");
b1._Variable();
b1._wEntity(e4.valueOf("RBNode"));
b1.wEntity_(e4.valueOf("RBNode"));
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#Value");
b1.VarName("z");
b1.Quantifier("!");
b1._Variable();
b1.wEntity(e4.valueOf("Color"), "BLACK");
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#RBNode");
b1.VarName("c");
b1.Quantifier("!");
b1._Variable();
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#RBNode");
b1.VarName("d");
b1.Quantifier("!");
b1._Variable();
b1._wEntity(e4.valueOf("RBNode"));
b1._wEntity(e4.valueOf("RBNode"));
b1._StageUpFragment();
b2._CartesianUpdate();
b2._Sequence();
b2.Call_();
b2.Name("balance");
b1.Resolver();
b2._Call();
b2._Path();
b2.CartesianUpdate_();
b2.Filter_();
b2.SelfStep();
b2.Or_(2);
b2.Or_(2);
b2.ExpressionTest_();
b1.StageUpFragment_();
b1.wEntity_(e4.valueOf("RBNode"));
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#Value");
b1.VarName("z");
b1.Quantifier("!");
b1._Variable();
b1.wEntity(e4.valueOf("Color"), "BLACK");
b1.wEntity_(e4.valueOf("RBNode"));
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#Value");
b1.VarName("y");
b1.Quantifier("!");
b1._Variable();
b1.wEntity(e4.valueOf("Color"), "RED");
b1.wEntity_(e4.valueOf("RBNode"));
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#Value");
b1.VarName("x");
b1.Quantifier("!");
b1._Variable();
b1.wEntity(e4.valueOf("Color"), "RED");
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#RBNode");
b1.VarName("a");
b1.Quantifier("!");
b1._Variable();
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#RBNode");
b1.VarName("b");
b1.Quantifier("!");
b1._Variable();
b1._wEntity(e4.valueOf("RBNode"));
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#RBNode");
b1.VarName("c");
b1.Quantifier("!");
b1._Variable();
b1._wEntity(e4.valueOf("RBNode"));
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#RBNode");
b1.VarName("d");
b1.Quantifier("!");
b1._Variable();
b1._wEntity(e4.valueOf("RBNode"));
b1._StageUpFragment();
b2._ExpressionTest();
b2.ExpressionTest_();
b1.StageUpFragment_();
b1.wEntity_(e4.valueOf("RBNode"));
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#Value");
b1.VarName("z");
b1.Quantifier("!");
b1._Variable();
b1.wEntity(e4.valueOf("Color"), "BLACK");
b1.wEntity_(e4.valueOf("RBNode"));
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#Value");
b1.VarName("x");
b1.Quantifier("!");
b1._Variable();
b1.wEntity(e4.valueOf("Color"), "RED");
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#RBNode");
b1.VarName("a");
b1.Quantifier("!");
b1._Variable();
b1.wEntity_(e4.valueOf("RBNode"));
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#Value");
b1.VarName("y");
b1.Quantifier("!");
b1._Variable();
b1.wEntity(e4.valueOf("Color"), "RED");
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#RBNode");
b1.VarName("b");
b1.Quantifier("!");
b1._Variable();
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#RBNode");
b1.VarName("c");
b1.Quantifier("!");
b1._Variable();
b1._wEntity(e4.valueOf("RBNode"));
b1._wEntity(e4.valueOf("RBNode"));
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#RBNode");
b1.VarName("d");
b1.Quantifier("!");
b1._Variable();
b1._wEntity(e4.valueOf("RBNode"));
b1._StageUpFragment();
b2._ExpressionTest();
b2._Or();
b2.Or_(2);
b2.ExpressionTest_();
b1.StageUpFragment_();
b1.wEntity_(e4.valueOf("RBNode"));
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#Value");
b1.VarName("x");
b1.Quantifier("!");
b1._Variable();
b1.wEntity(e4.valueOf("Color"), "BLACK");
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#RBNode");
b1.VarName("a");
b1.Quantifier("!");
b1._Variable();
b1.wEntity_(e4.valueOf("RBNode"));
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#Value");
b1.VarName("z");
b1.Quantifier("!");
b1._Variable();
b1.wEntity(e4.valueOf("Color"), "RED");
b1.wEntity_(e4.valueOf("RBNode"));
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#Value");
b1.VarName("y");
b1.Quantifier("!");
b1._Variable();
b1.wEntity(e4.valueOf("Color"), "RED");
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#RBNode");
b1.VarName("b");
b1.Quantifier("!");
b1._Variable();
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#RBNode");
b1.VarName("c");
b1.Quantifier("!");
b1._Variable();
b1._wEntity(e4.valueOf("RBNode"));
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#RBNode");
b1.VarName("d");
b1.Quantifier("!");
b1._Variable();
b1._wEntity(e4.valueOf("RBNode"));
b1._wEntity(e4.valueOf("RBNode"));
b1._StageUpFragment();
b2._ExpressionTest();
b2.ExpressionTest_();
b1.StageUpFragment_();
b1.wEntity_(e4.valueOf("RBNode"));
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#Value");
b1.VarName("x");
b1.Quantifier("!");
b1._Variable();
b1.wEntity(e4.valueOf("Color"), "BLACK");
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#RBNode");
b1.VarName("a");
b1.Quantifier("!");
b1._Variable();
b1.wEntity_(e4.valueOf("RBNode"));
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#Value");
b1.VarName("y");
b1.Quantifier("!");
b1._Variable();
b1.wEntity(e4.valueOf("Color"), "RED");
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#RBNode");
b1.VarName("b");
b1.Quantifier("!");
b1._Variable();
b1.wEntity_(e4.valueOf("RBNode"));
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#Value");
b1.VarName("z");
b1.Quantifier("!");
b1._Variable();
b1.wEntity(e4.valueOf("Color"), "RED");
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#RBNode");
b1.VarName("c");
b1.Quantifier("!");
b1._Variable();
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#RBNode");
b1.VarName("d");
b1.Quantifier("!");
b1._Variable();
b1._wEntity(e4.valueOf("RBNode"));
b1._wEntity(e4.valueOf("RBNode"));
b1._wEntity(e4.valueOf("RBNode"));
b1._StageUpFragment();
b2._ExpressionTest();
b2._Or();
b2._Or();
b2._Filter();
b1.StageUpFragment_();
b1.wEntity_(e4.valueOf("RBNode"));
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#Value");
b1.VarName("y");
b1.Quantifier("!");
b1._Variable();
b1.wEntity(e4.valueOf("Color"), "BLACK");
b1.wEntity_(e4.valueOf("RBNode"));
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#Value");
b1.VarName("x");
b1.Quantifier("!");
b1._Variable();
b1.wEntity(e4.valueOf("Color"), "RED");
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#RBNode");
b1.VarName("a");
b1.Quantifier("!");
b1._Variable();
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#RBNode");
b1.VarName("b");
b1.Quantifier("!");
b1._Variable();
b1._wEntity(e4.valueOf("RBNode"));
b1.wEntity_(e4.valueOf("RBNode"));
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#Value");
b1.VarName("z");
b1.Quantifier("!");
b1._Variable();
b1.wEntity(e4.valueOf("Color"), "RED");
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#RBNode");
b1.VarName("c");
b1.Quantifier("!");
b1._Variable();
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#RBNode");
b1.VarName("d");
b1.Quantifier("!");
b1._Variable();
b1._wEntity(e4.valueOf("RBNode"));
b1._wEntity(e4.valueOf("RBNode"));
b1._StageUpFragment();
b2._CartesianUpdate();
b2._Choose();
b2._Path();
b2._Choose();
b2._Path();
b2._Choose();
b2._QueryDeclaration();
b2.Call_();
b2.Name("insert");
b2.Expressions_(1);
b1.SameStageFragment_();
b3.MethodInvocation_();
b3.ClassInstanceCreation_();
b1.Resolver();
b1.Resolver();
b3.SimpleType("Random");
b1.Resolver();
b1.Resolver();
b3._ClassInstanceCreation();
b3.Types_(0);
b3._Types();
b3.SimpleName("nextInt");
b3.Arguments_(1);
b3.ShortLiteral((short) 99);
b3._Arguments();
b3._MethodInvocation();
b1._SameStageFragment();
b2._Expressions();
b2._Call();
b2._Block();
b2.ExpressionTest_();
b2.Path_(1);
b2.Filter_();
b2.SelfStep();
b2.TypeTest("RBNode");
b2._Filter();
b2._Path();
b2._ExpressionTest();
b0._GuardedAction();
b0.GuardedAction_();
b0.Label("insert random value (unbalanced)");
b2.Block_(2);
b2.QueryDeclaration_();
b2.Name("insert");
b2.Names_(2);
b2.Name("value");
b2.Name("nodeValue");
b2._Names();
b2.Choose_(3);
b2.PointwiseUpdate_();
b2.Filter_();
b2.SelfStep();
b2.KindTest("RESOLVER");
b2._Filter();
b1.StageUpFragment_();
b1.wEntity_(e4.valueOf("RBNode"));
b1.Variable_();
b1.VarType("http://datatypes.examples.whole.org/RedBlackTree#Value");
b1.VarName("value");
b1.Quantifier("!");
b1._Variable();
b1.wEntity(e4.valueOf("Color"), "RED");
b1.Resolver();
b1.Resolver();
b1._wEntity(e4.valueOf("RBNode"));
b1._StageUpFragment();
b2._PointwiseUpdate();
b2.If_();
b2.ExpressionTest_();
b2.LessThan_();
b2.VariableRefStep("value");
b2.Singleton_();
b2.FeatureStep("value");
b2._Singleton();
b2._LessThan();
b2._ExpressionTest();
b2.Path_(2);
b2.FeatureStep("left");
b2.Call_();
b2.Name("insert");
b2.Expressions_(1);
b2.VariableRefStep("value");
b2._Expressions();
b2._Call();
b2._Path();
b2._If();
b2.Path_(2);
b2.FeatureStep("right");
b2.Call_();
b2.Name("insert");
b2.Expressions_(1);
b2.VariableRefStep("value");
b2._Expressions();
b2._Call();
b2._Path();
b2._Choose();
b2._QueryDeclaration();
b2.Call_();
b2.Name("insert");
b2.Expressions_(1);
b1.SameStageFragment_();
b3.MethodInvocation_();
b3.ClassInstanceCreation_();
b1.Resolver();
b1.Resolver();
b3.SimpleType("Random");
b1.Resolver();
b1.Resolver();
b3._ClassInstanceCreation();
b3.Types_(0);
b3._Types();
b3.SimpleName("nextInt");
b3.Arguments_(1);
b3.ShortLiteral((short) 99);
b3._Arguments();
b3._MethodInvocation();
b1._SameStageFragment();
b2._Expressions();
b2._Call();
b2._Block();
b2.ExpressionTest_();
b2.Path_(1);
b2.Filter_();
b2.SelfStep();
b2.TypeTest("RBNode");
b2._Filter();
b2._Path();
b2._ExpressionTest();
b0._GuardedAction();
b0.GuardedAction_();
b0.Label("delete root value (unbalanced)");
b2.Block_(3);
b2.QueryDeclaration_();
b2.Name("deleteRBNode");
b2.Names_(1);
b2.Name("succValue");
b2._Names();
b2.Choose_(3);
b2.PointwiseUpdate_();
b2.Filter_();
b2.SelfStep();
b2.ExpressionTest_();
b2.Filter_();
b2.FeatureStep("left");
b2.KindTest("RESOLVER");
b2._Filter();
b2._ExpressionTest();
b2._Filter();
b2.Delete_();
b2.FeatureStep("right");
b2._Delete();
b2._PointwiseUpdate();
b2.PointwiseUpdate_();
b2.Filter_();
b2.SelfStep();
b2.ExpressionTest_();
b2.Filter_();
b2.FeatureStep("right");
b2.KindTest("RESOLVER");
b2._Filter();
b2._ExpressionTest();
b2._Filter();
b2.Delete_();
b2.FeatureStep("left");
b2._Delete();
b2._PointwiseUpdate();
b2.Block_(2);
b2.Path_(3);
b2.FeatureStep("right");
b2.Filter_();
b2.Call_();
b2.Name("leftmostRBNode");
b1.Resolver();
b2._Call();
b2.ExpressionTest_();
b2.Filter_();
b2.FeatureStep("value");
b2.VariableTest("succValue");
b2._Filter();
b2._ExpressionTest();
b2._Filter();
b2.Call_();
b2.Name("deleteRBNode");
b1.Resolver();
b2._Call();
b2._Path();
b2.PointwiseUpdate_();
b2.FeatureStep("value");
b2.VariableRefStep("succValue");
b2._PointwiseUpdate();
b2._Block();
b2._Choose();
b2._QueryDeclaration();
b2.QueryDeclaration_();
b2.Name("leftmostRBNode");
b1.Resolver();
b2.Choose_(2);
b2.Path_(2);
b2.Filter_();
b2.FeatureStep("left");
b2.KindTest("IMPL");
b2._Filter();
b2.Call_();
b2.Name("leftmostRBNode");
b1.Resolver();
b2._Call();
b2._Path();
b2.SelfStep();
b2._Choose();
b2._QueryDeclaration();
b2.Call_();
b2.Name("deleteRBNode");
b1.Resolver();
b2._Call();
b2._Block();
b2.ExpressionTest_();
b2.Path_(1);
b2.Filter_();
b2.SelfStep();
b2.TypeTest("RBNode");
b2._Filter();
b2._Path();
b2._ExpressionTest();
b0._GuardedAction();
b0._MenuActions();
b0.MenuActions_(0);
b0._MenuActions();
b0.MenuActions_(0);
b0._MenuActions();
b0.MenuActions_(1);
b0.GuardedAction_();
b0.Label("print values in order");
b2.Block_(2);
b2.QueryDeclaration_();
b2.Name("printRBNode");
b1.Resolver();
b2.Sequence_(3);
b2.Path_(2);
b2.FeatureStep("left");
b2.Call_();
b2.Name("printRBNode");
b1.Resolver();
b2._Call();
b2._Path();
b2.FeatureStep("value");
b2.Path_(2);
b2.FeatureStep("right");
b2.Call_();
b2.Name("printRBNode");
b1.Resolver();
b2._Call();
b2._Path();
b2._Sequence();
b2._QueryDeclaration();
b2.Call_();
b2.Name("printRBNode");
b1.Resolver();
b2._Call();
b2._Block();
b2.ExpressionTest_();
b2.Path_(1);
b2.Filter_();
b2.SelfStep();
b2.TypeTest("RBNode");
b2._Filter();
b2._Path();
b2._ExpressionTest();
b0._GuardedAction();
b0._MenuActions();
b0.MenuActions_(0);
b0._MenuActions();
b1.Resolver();
b0._ContextMenuActions();
b0._LanguageActionFactory();
}
}