package org.whole.lang.xsd.codebase;
import org.whole.lang.builders.IBuilderOperation;
import org.whole.lang.templates.AbstractTemplateFactory;
public class AnnotateXmlSchemaQuery extends AbstractTemplateFactory<org.whole.lang.queries.model.Block> {
public void apply(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.Block_(61);
b0.Filter_();
org.whole.lang.commons.builders.ICommonsBuilder b1 = (org.whole.lang.commons.builders.ICommonsBuilder) op.wGetBuilder(org.whole.lang.commons.reflect.CommonsLanguageKit.URI);
b1.SameStageFragment_();
org.whole.lang.workflows.builders.IWorkflowsBuilder b2 = (org.whole.lang.workflows.builders.IWorkflowsBuilder) op.wGetBuilder(org.whole.lang.workflows.reflect.WorkflowsLanguageKit.URI);
b2.InvokeJavaClassMethod_();
b2.Text("get any type entity name");
b1.Resolver();
b1.Resolver();
b2.StringLiteral("org.whole.lang.xsd.util.SchemaUtils");
b2.StringLiteral("getAnyTypeEntityName()");
b1.Resolver();
b2._InvokeJavaClassMethod();
b1._SameStageFragment();
b0.VariableTest("ANY_TYPE_ENTITY_NAME");
b0._Filter();
b0.Filter_();
b0.StringLiteral("http://www.w3.org/2001/XMLSchema");
b0.VariableTest("XML_SCHEMA_NS_URI");
b0._Filter();
b0.Filter_();
b0.FeatureStep("targetNamespace");
b0.VariableTest("TARGET_NS_URI");
b0._Filter();
b0.PointwiseInsert_();
b0.Placement("INTO");
b0.FeatureStep("namespaces");
b1.StageUpFragment_();
org.whole.lang.xsd.builders.IXsdBuilder b3 = (org.whole.lang.xsd.builders.IXsdBuilder) op.wGetBuilder(org.whole.lang.xsd.reflect.XsdLanguageKit.URI);
b3.NamespaceDecl_();
b3.Name("xml");
b3.AnyURI("http://www.w3.org/XML/1998/namespace");
b3._NamespaceDecl();
b1._StageUpFragment();
b0._PointwiseInsert();
b0.QueryDeclaration_();
b0.Name("resolveNamespace");
b0.Names_(3);
b0.Name("qname");
b0.Name("prefix");
b0.Name("uri");
b0._Names();
b0.Block_(3);
b0.If_();
b0.Not_();
b0.ExpressionTest_();
b0.Equals_();
b1.SameStageFragment_();
b2.InvokeJavaInstanceMethod_();
b2.Text("index of \":\" in reference");
b1.Resolver();
b2.Variable("self");
b1.Resolver();
b2.StringLiteral("java.lang.String");
b2.StringLiteral("indexOf(java.lang.String)");
b2.Expressions_(1);
b2.StringLiteral(":");
b2._Expressions();
b2._InvokeJavaInstanceMethod();
b1._SameStageFragment();
b0.IntLiteral(-1);
b0._Equals();
b0._ExpressionTest();
b0._Not();
b0.Filter_();
b1.SameStageFragment_();
b2.InvokeJavaInstanceMethod_();
b2.Text("get target prefix");
b1.Resolver();
b2.Variable("self");
b1.Resolver();
b2.StringLiteral("java.lang.String");
b2.StringLiteral("replaceFirst(java.lang.String, java.lang.String)");
b2.Expressions_(2);
b2.StringLiteral(":.+");
b2.StringLiteral("");
b2._Expressions();
b2._InvokeJavaInstanceMethod();
b1._SameStageFragment();
b0.VariableTest("prefix");
b0._Filter();
b0._If();
b0.Path_(4);
b0.RootStep();
b0.FeatureStep("namespaces");
b0.Choose_(2);
b0.If_();
b0.ExpressionTest_();
b0.Path_(1);
b0.VariableRefStep("prefix");
b0._Path();
b0._ExpressionTest();
b0.Filter_();
b0.ChildStep();
b0.ExpressionTest_();
b0.Equals_();
b0.VariableRefStep("prefix");
b0.Singleton_();
b0.FeatureStep("prefix");
b0._Singleton();
b0._Equals();
b0._ExpressionTest();
b0._Filter();
b0._If();
b0.Do_();
b0.Filter_();
b0.ChildStep();
b0.ExpressionTest_();
b0.Filter_();
b0.FeatureStep("prefix");
b0.KindTest("RESOLVER");
b0._Filter();
b0._ExpressionTest();
b0._Filter();
b0._Do();
b0._Choose();
b0.Filter_();
b0.FeatureStep("uri");
b0.VariableTest("uri");
b0._Filter();
b0._Path();
b0.PointwiseUpdate_();
b0.SelfStep();
b0.Addition_();
b0.VariableRefStep("uri");
b0.Addition_();
b0.StringLiteral(":");
b1.SameStageFragment_();
b2.InvokeJavaInstanceMethod_();
b2.Text("get base name");
b1.Resolver();
b2.Variable("self");
b1.Resolver();
b2.StringLiteral("java.lang.String");
b2.StringLiteral("replaceFirst(java.lang.String, java.lang.String)");
b2.Expressions_(2);
b2.StringLiteral(".+:");
b2.StringLiteral("");
b2._Expressions();
b2._InvokeJavaInstanceMethod();
b1._SameStageFragment();
b0._Addition();
b0._Addition();
b0._PointwiseUpdate();
b0._Block();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("matchesUriInQName");
b0.Names_(1);
b0.Name("uri");
b0._Names();
b0.Filter_();
b0.SelfStep();
b0.ExpressionTest_();
b0.Equals_();
b0.VariableRefStep("uri");
b0.Singleton_();
b1.SameStageFragment_();
b2.InvokeJavaInstanceMethod_();
b2.Text("get uri part");
b1.Resolver();
b2.Variable("self");
b1.Resolver();
b2.StringLiteral("java.lang.String");
b2.StringLiteral("replaceFirst(java.lang.String, java.lang.String)");
b2.Expressions_(2);
b2.StringLiteral(":[^:]+$");
b2.StringLiteral("");
b2._Expressions();
b2._InvokeJavaInstanceMethod();
b1._SameStageFragment();
b0._Singleton();
b0._Equals();
b0._ExpressionTest();
b0._Filter();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("isLocalQName");
b1.Resolver();
b0.Call_();
b0.Name("matchesUriInQName");
b0.Expressions_(1);
b0.VariableRefStep("TARGET_NS_URI");
b0._Expressions();
b0._Call();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("isSchemaQName");
b0.Names_(3);
b0.Name("qname");
b0.Name("prefix");
b0.Name("uri");
b0._Names();
b0.Call_();
b0.Name("matchesUriInQName");
b0.Expressions_(1);
b0.VariableRefStep("XML_SCHEMA_NS_URI");
b0._Expressions();
b0._Call();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("isImportedQName");
b0.Names_(3);
b0.Name("qname");
b0.Name("prefix");
b0.Name("uri");
b0._Names();
b0.Filter_();
b0.SelfStep();
b0.Not_();
b0.Or_(2);
b0.ExpressionTest_();
b0.Call_();
b0.Name("isLocalQName");
b1.Resolver();
b0._Call();
b0._ExpressionTest();
b0.ExpressionTest_();
b0.Call_();
b0.Name("isSchemaQName");
b1.Resolver();
b0._Call();
b0._ExpressionTest();
b0._Or();
b0._Not();
b0._Filter();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("toType");
b0.Names_(3);
b0.Name("entity");
b0.Name("type");
b0.Name("ed");
b0._Names();
b1.SameStageFragment_();
b2.Sequence_();
b2.Text("sequence");
b2.FlowObjects_(2);
b2.InvokeJavaClassMethod_();
b2.Text("convert type to entity descriptor");
b2.Variable("ed");
b1.Resolver();
b2.StringLiteral("org.whole.lang.commons.parsers.CommonsDataTypePersistenceParser");
b2.StringLiteral("getEntityDescriptor(java.lang.String)");
b2.Expressions_(1);
b2.Variable("type");
b2._Expressions();
b2._InvokeJavaClassMethod();
b2.InvokeJavaClassMethod_();
b2.Text("convert entity");
b1.Resolver();
b1.Resolver();
b2.StringLiteral("org.whole.lang.util.EntityUtils");
b2.StringLiteral("convertCloneIfParented(org.whole.lang.model.IEntity, org.whole.lang.reflect.EntityDescriptor)");
b2.Expressions_(2);
b2.Variable("entity");
b2.Variable("ed");
b2._Expressions();
b2._InvokeJavaClassMethod();
b2._FlowObjects();
b2._Sequence();
b1._SameStageFragment();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("getComponent");
b0.Names_(2);
b0.Name("components");
b0.Name("name");
b0._Names();
b0.Block_(3);
b0.Filter_();
b0.Call_();
b0.Name("toType");
b0.Expressions_(2);
b1.SameStageFragment_();
b2.InvokeJavaInstanceMethod_();
b2.Text("get base name");
b1.Resolver();
b2.Variable("self");
b1.Resolver();
b2.StringLiteral("java.lang.String");
b2.StringLiteral("replaceFirst(java.lang.String, java.lang.String)");
b2.Expressions_(2);
b2.StringLiteral(".+:");
b2.StringLiteral("");
b2._Expressions();
b2._InvokeJavaInstanceMethod();
b1._SameStageFragment();
b0.Addition_();
b0.VariableRefStep("XML_SCHEMA_NS_URI");
b0.StringLiteral("#Name");
b0._Addition();
b0._Expressions();
b0._Call();
b0.VariableTest("name");
b0._Filter();
b0.Path_(2);
b0.RootStep();
b0.Filter_();
b0.FeatureStep("components");
b0.VariableTest("components");
b0._Filter();
b0._Path();
b0.Choose_(5);
b0.Path_(3);
b0.Filter_();
b0.ParentStep();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#ElementRef");
b0._Filter();
b0.VariableRefStep("components");
b0.Filter_();
b0.ChildStep();
b0.And_(2);
b0.ExpressionTest_();
b0.Filter_();
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#name");
b0.VariableTest("name");
b0._Filter();
b0._ExpressionTest();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#ElementDecl");
b0._And();
b0._Filter();
b0._Path();
b0.Path_(3);
b0.Filter_();
b0.ParentStep();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#AttributeUseRef");
b0._Filter();
b0.VariableRefStep("components");
b0.Filter_();
b0.ChildStep();
b0.And_(2);
b0.ExpressionTest_();
b0.Filter_();
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#name");
b0.VariableTest("name");
b0._Filter();
b0._ExpressionTest();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#AttributeDecl");
b0._And();
b0._Filter();
b0._Path();
b0.Path_(3);
b0.Filter_();
b0.ParentStep();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#AttributeGroupRef");
b0._Filter();
b0.VariableRefStep("components");
b0.Filter_();
b0.ChildStep();
b0.And_(2);
b0.ExpressionTest_();
b0.Filter_();
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#name");
b0.VariableTest("name");
b0._Filter();
b0._ExpressionTest();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#AttributeGroupDef");
b0._And();
b0._Filter();
b0._Path();
b0.Path_(3);
b0.Filter_();
b0.ParentStep();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#ModelGroupRef");
b0._Filter();
b0.VariableRefStep("components");
b0.Filter_();
b0.ChildStep();
b0.And_(2);
b0.ExpressionTest_();
b0.Filter_();
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#name");
b0.VariableTest("name");
b0._Filter();
b0._ExpressionTest();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#ModelGroupDef");
b0._And();
b0._Filter();
b0._Path();
b0.Path_(2);
b0.VariableRefStep("components");
b0.Filter_();
b0.ChildStep();
b0.And_(2);
b0.ExpressionTest_();
b0.Filter_();
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#name");
b0.VariableTest("name");
b0._Filter();
b0._ExpressionTest();
b0.SubtypeTest("http://www.w3.org/2001/XMLSchema#TypeDef");
b0._And();
b0._Filter();
b0._Path();
b0._Choose();
b0._Block();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("getSimpleBaseType");
b1.Resolver();
b0.Path_(2);
b0.FeatureStep("content");
b0.Choose_(2);
b0.Path_(3);
b0.Filter_();
b0.SelfStep();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#SimpleContent");
b0._Filter();
b0.FeatureStep("derivation");
b0.FeatureStep("base");
b0._Path();
b0.FeatureStep("base");
b0._Choose();
b0._Path();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("getComplexBaseType");
b1.Resolver();
b0.Path_(3);
b0.Filter_();
b0.FeatureStep("content");
b0.TypeTest("http://www.w3.org/2001/XMLSchema#ComplexContent");
b0._Filter();
b0.FeatureStep("derivation");
b0.FeatureStep("base");
b0._Path();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("getBaseType");
b1.Resolver();
b0.Choose_(2);
b0.Call_();
b0.Name("getComplexBaseType");
b1.Resolver();
b0._Call();
b0.Call_();
b0.Name("getSimpleBaseType");
b1.Resolver();
b0._Call();
b0._Choose();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("getAppInfo");
b0.Names_(1);
b0.Name("annotated");
b0._Names();
b0.Block_(2);
b0.Filter_();
b0.SelfStep();
b0.VariableTest("annotated");
b0._Filter();
b0.Path_(7);
b0.VariableRefStep("annotated");
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#annotation");
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#list");
b0.Filter_();
b0.ChildStep();
b0.And_(2);
b0.TypeTest("http://www.w3.org/2001/XMLSchema#Appinfo");
b0.ExpressionTest_();
b0.Filter_();
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#source");
b0.ExpressionTest_();
b1.StageUpFragment_();
b3.AnyURI("http://lang.whole.org/Models");
b1._StageUpFragment();
b0._ExpressionTest();
b0._Filter();
b0._ExpressionTest();
b0._And();
b0._Filter();
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#content");
b0.Filter_();
b0.ChildStep();
b0.SubtypeTest("http://lang.whole.org/Commons#Fragment");//WAS KindTest("FRAGMENT")
b0._Filter();
b0.Filter_();
b0.FeatureStep("http://lang.whole.org/Commons#rootEntity");
b0.LanguageTest("http://lang.whole.org/Models");
b0._Filter();
b0._Path();
b0._Block();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("findAppInfo");
b1.Resolver();
b0.Path_(2);
b0.Choose_(4);
b0.Path_(4);
b0.Filter_();
b0.SelfStep();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#ModelGroupRef");
b0._Filter();
b0.FeatureStep("ref");
b0.Call_();
b0.Name("getComponent");
b1.Resolver();
b0._Call();
b0.FeatureStep("modelGroup");
b0._Path();
b0.Path_(2);
b0.FeatureStep("ref");
b0.Call_();
b0.Name("getComponent");
b1.Resolver();
b0._Call();
b0._Path();
b0.Path_(2);
b0.Filter_();
b0.SelfStep();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#ModelGroupDef");
b0._Filter();
b0.FeatureStep("modelGroup");
b0._Path();
b0.SelfStep();
b0._Choose();
b0.Call_();
b0.Name("getAppInfo");
b1.Resolver();
b0._Call();
b0._Path();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("findAppInfoType");
b1.Resolver();
b0.Path_(2);
b0.Call_();
b0.Name("findAppInfo");
b1.Resolver();
b0._Call();
b0.Choose_(2);
b0.FeatureStep("type");
b0.SelfStep();
b0._Choose();
b0._Path();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("findAppInfoFeature");
b1.Resolver();
b0.Path_(2);
b0.Call_();
b0.Name("findAppInfo");
b1.Resolver();
b0._Call();
b0.FeatureStep("name");
b0._Path();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("addAppInfo");
b0.Names_(1);
b0.Name("contents");
b0._Names();
b0.Block_(2);
b0.If_();
b0.ExpressionTest_();
b0.Path_(1);
b0.VariableRefStep("contents");
b0._Path();
b0._ExpressionTest();
b0.PointwiseInsert_();
b0.Placement("INTO");
b0.Path_(2);
b0.Choose_(2);
b0.PointwiseUpdate_();
b0.Filter_();
b0.FeatureStep("annotation");
b0.KindTest("RESOLVER");
b0._Filter();
b1.StageUpFragment_();
b3.Annotation_();
b1.Resolver();
b1.Resolver();
b1.Resolver();
b3.AnnotationList_(0);
b3._AnnotationList();
b3._Annotation();
b1._StageUpFragment();
b0._PointwiseUpdate();
b0.FeatureStep("annotation");
b0._Choose();
b0.FeatureStep("list");
b0._Path();
b1.StageUpFragment_();
b3.Appinfo_();
b1.Resolver();
b1.Resolver();
b1.Resolver();
b3.AnyURI("http://lang.whole.org/Models");
b3.AnnotationContents_(1);
b1.SameStageFragment_();
b1.Variable_();
b1.VarType("http://lang.whole.org/Commons#Any");
b1.VarName("contents");
b1.Quantifier("!");
b1._Variable();
b1._SameStageFragment();
b3._AnnotationContents();
b3._Appinfo();
b1._StageUpFragment();
b0._PointwiseInsert();
b0._If();
b0.SelfStep();
b0._Block();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("getBuiltInEntityName");
b0.Names_(2);
b0.Name("qname");
b0.Name("baseName");
b0._Names();
b0.Block_(3);
b0.Filter_();
b0.SelfStep();
b0.VariableTest("qname");
b0._Filter();
b0.Path_(1);
b0.Filter_();
b1.SameStageFragment_();
b2.InvokeJavaInstanceMethod_();
b2.Text("get schema builtIn base name");
b1.Resolver();
b2.Variable("self");
b1.Resolver();
b2.StringLiteral("java.lang.String");
b2.StringLiteral("replaceFirst(java.lang.String, java.lang.String)");
b2.Expressions_(2);
b2.StringLiteral(".+:");
b2.StringLiteral("");
b2._Expressions();
b2._InvokeJavaInstanceMethod();
b1._SameStageFragment();
b0.VariableTest("baseName");
b0._Filter();
b0._Path();
b0.If_();
b0.ExpressionTest_();
b0.Singleton_();
b1.SameStageFragment_();
b2.InvokeJavaClassMethod_();
b2.Text("is builtIn type?");
b1.Resolver();
b1.Resolver();
b2.StringLiteral("org.whole.lang.xsd.parsers.SchemaDataTypes");
b2.StringLiteral("isBuiltIn(java.lang.String)");
b2.Expressions_(1);
b2.Variable("baseName");
b2._Expressions();
b2._InvokeJavaClassMethod();
b1._SameStageFragment();
b0._Singleton();
b0._ExpressionTest();
b1.SameStageFragment_();
b2.InvokeJavaInstanceMethod_();
b2.Text("get all builtIn entity names");
b1.Resolver();
b2.Variable("builtInToEntityNameMap");
b1.Resolver();
b2.StringLiteral("java.util.Map");
b2.StringLiteral("get(java.lang.Object)");
b2.Expressions_(1);
b2.Variable("baseName");
b2._Expressions();
b2._InvokeJavaInstanceMethod();
b1._SameStageFragment();
b0._If();
b0._Block();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("getType");
b1.Resolver();
b0.Choose_(3);
b0.Filter_();
b0.FeatureStep("simpleType");
b0.KindTest("IMPL");
b0._Filter();
b0.Filter_();
b0.FeatureStep("type");
b0.KindTest("IMPL");
b0._Filter();
b0.Filter_();
b0.FeatureStep("base");
b0.KindTest("IMPL");
b0._Filter();
b0._Choose();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("getTypeDef");
b1.Resolver();
b0.Choose_(4);
b0.Path_(2);
b0.Call_();
b0.Name("getType");
b1.Resolver();
b0._Call();
b0.Call_();
b0.Name("getComponent");
b1.Resolver();
b0._Call();
b0._Path();
b0.Filter_();
b0.FeatureStep("simpleTypeDef");
b0.KindTest("IMPL");
b0._Filter();
b0.Filter_();
b0.FeatureStep("typeDef");
b0.KindTest("IMPL");
b0._Filter();
b0.Filter_();
b0.FeatureStep("baseDef");
b0.KindTest("IMPL");
b0._Filter();
b0._Choose();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("getModelGroupDef");
b1.Resolver();
b0.Path_(3);
b0.Filter_();
b0.SelfStep();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#ModelGroupRef");
b0._Filter();
b0.Filter_();
b0.FeatureStep("ref");
b0.KindTest("IMPL");
b0._Filter();
b0.Call_();
b0.Name("getComponent");
b1.Resolver();
b0._Call();
b0._Path();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("toFeatureName");
b0.Names_(4);
b0.Name("freshFeatureNameGen");
b0.Name("featureNameMap");
b0.Name("baseName");
b0.Name("freshName");
b0._Names();
b0.Block_(2);
b1.SameStageFragment_();
b2.Sequence_();
b2.Text("sequence");
b2.FlowObjects_(3);
b2.InvokeJavaInstanceMethod_();
b2.Text("remove possible prefix from baseName");
b2.Variable("freshName");
b2.Variable("baseName");
b1.Resolver();
b2.StringLiteral("java.lang.String");
b2.StringLiteral("replaceFirst(java.lang.String, java.lang.String)");
b2.Expressions_(2);
b2.StringLiteral(".+:");
b2.StringLiteral("");
b2._Expressions();
b2._InvokeJavaInstanceMethod();
b2.InvokeJavaClassMethod_();
b2.Text("calculate feature name");
b2.Variable("freshName");
b1.Resolver();
b2.StringLiteral("org.whole.lang.xsd.util.SchemaHelpers");
b2.StringLiteral("toFreshFeatureName(org.whole.lang.util.FreshNameGenerator, java.lang.String)");
b2.Expressions_(2);
b2.Variable("freshFeatureNameGen");
b2.Variable("freshName");
b2._Expressions();
b2._InvokeJavaClassMethod();
b2.InvokeJavaInstanceMethod_();
b2.Text("update feature name map");
b1.Resolver();
b2.Variable("featureNameMap");
b1.Resolver();
b2.StringLiteral("java.util.Map");
b2.StringLiteral("put(java.lang.Object, java.lang.Object)");
b2.Expressions_(2);
b2.Variable("baseName");
b2.Variable("freshName");
b2._Expressions();
b2._InvokeJavaInstanceMethod();
b2._FlowObjects();
b2._Sequence();
b1._SameStageFragment();
b0.VariableRefStep("freshName");
b0._Block();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("toMappedType");
b1.Resolver();
b0.Choose_(5);
b0.Path_(2);
b0.Filter_();
b0.Call_();
b0.Name("getType");
b1.Resolver();
b0._Call();
b0.ExpressionTest_();
b0.Call_();
b0.Name("isSchemaQName");
b1.Resolver();
b0._Call();
b0._ExpressionTest();
b0._Filter();
b0.Call_();
b0.Name("getBuiltInEntityName");
b1.Resolver();
b0._Call();
b0._Path();
b0.Path_(3);
b0.Call_();
b0.Name("getTypeDef");
b1.Resolver();
b0._Call();
b0.Call_();
b0.Name("getAppInfo");
b1.Resolver();
b0._Call();
b0.Choose_(2);
b0.FeatureStep("name");
b0.SelfStep();
b0._Choose();
b0._Path();
b0.Path_(2);
b0.Call_();
b0.Name("getModelGroupDef");
b1.Resolver();
b0._Call();
b0.Call_();
b0.Name("getAppInfo");
b1.Resolver();
b0._Call();
b0._Path();
b0.Path_(2);
b0.Filter_();
b0.SelfStep();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#Any");
b0._Filter();
b0.VariableRefStep("ANY_TYPE_ENTITY_NAME");
b0._Path();
b0.StringLiteral("??? Unknown feature type name");
b0._Choose();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("setEntityNameAnnotation");
b0.Names_(2);
b0.Name("freshEntityNameGen");
b0.Name("entityNameMap");
b0._Names();
b0.Block_(4);
b0.QueryDeclaration_();
b0.Name("fromName");
b1.Resolver();
b0.Choose_(2);
b0.Path_(2);
b0.Filter_();
b0.SelfStep();
b0.ExpressionTest_();
b0.Filter_();
b0.FeatureStep("name");
b0.KindTest("IMPL");
b0._Filter();
b0._ExpressionTest();
b0._Filter();
b0.FeatureStep("name");
b0._Path();
b0.Path_(2);
b0.ParentStep();
b0.Call_();
b0.Name("fromName");
b1.Resolver();
b0._Call();
b0._Path();
b0._Choose();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("toEntityName");
b0.Names_(2);
b0.Name("baseName");
b0.Name("freshName");
b0._Names();
b0.Block_(3);
b0.Filter_();
b0.Choose_(5);
b0.If_();
b0.ExpressionTest_();
b0.Filter_();
b0.ParentStep();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#ModelGroupDef");
b0._Filter();
b0._ExpressionTest();
b0.VariableRefStep("baseName");
b0._If();
b0.If_();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#Choice");
b0.Addition_();
b0.VariableRefStep("baseName");
b0.StringLiteral("Type");
b0._Addition();
b0._If();
b0.If_();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#Sequence");
b0.Choose_(2);
b0.If_();
b0.Not_();
b0.ExpressionTest_();
b0.Filter_();
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#maxOccurs");
b0.ExpressionTest_();
b1.StageUpFragment_();
b3.Bounded(1);
b1._StageUpFragment();
b0._ExpressionTest();
b0._Filter();
b0._ExpressionTest();
b0._Not();
b0.Addition_();
b0.VariableRefStep("baseName");
b0.StringLiteral("List");
b0._Addition();
b0._If();
b0.Do_();
b0.Addition_();
b0.VariableRefStep("baseName");
b0.StringLiteral("Seq");
b0._Addition();
b0._Do();
b0._Choose();
b0._If();
b0.If_();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#All");
b0.Addition_();
b0.VariableRefStep("baseName");
b0.StringLiteral("Set");
b0._Addition();
b0._If();
b0.Do_();
b0.VariableRefStep("baseName");
b0._Do();
b0._Choose();
b0.VariableTest("freshName");
b0._Filter();
b1.SameStageFragment_();
b2.Sequence_();
b2.Text("sequence");
b2.FlowObjects_(2);
b2.InvokeJavaClassMethod_();
b2.Text("calculate entity name");
b2.Variable("freshName");
b1.Resolver();
b2.StringLiteral("org.whole.lang.xsd.util.SchemaHelpers");
b2.StringLiteral("toFreshEntityName(org.whole.lang.util.FreshNameGenerator, java.lang.String)");
b2.Expressions_(2);
b2.Variable("freshEntityNameGen");
b2.Variable("freshName");
b2._Expressions();
b2._InvokeJavaClassMethod();
b2.InvokeJavaInstanceMethod_();
b2.Text("update entity name map");
b1.Resolver();
b2.Variable("entityNameMap");
b1.Resolver();
b2.StringLiteral("java.util.Map");
b2.StringLiteral("put(java.lang.Object, java.lang.Object)");
b2.Expressions_(2);
b2.Variable("baseName");
b2.Variable("freshName");
b2._Expressions();
b2._InvokeJavaInstanceMethod();
b2._FlowObjects();
b2._Sequence();
b1._SameStageFragment();
b0.VariableRefStep("freshName");
b0._Block();
b0._QueryDeclaration();
b0.Call_();
b0.Name("addAppInfo");
b0.Expressions_(1);
b0.Call_();
b0.Name("toType");
b0.Expressions_(2);
b0.Call_();
b0.Name("toEntityName");
b0.Expressions_(1);
b0.Call_();
b0.Name("fromName");
b1.Resolver();
b0._Call();
b0._Expressions();
b0._Call();
b0.StringLiteral("http://lang.whole.org/Models#SimpleName");
b0._Expressions();
b0._Call();
b0._Expressions();
b0._Call();
b0.SelfStep();
b0._Block();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("setImportedEntityNameAnnotation");
b0.Names_(3);
b0.Name("baseName");
b0.Name("freshEntityNameGen");
b0.Name("importedRefToEntityNameMap");
b0._Names();
b0.Block_(3);
b0.QueryDeclaration_();
b0.Name("toImportedEntityName");
b0.Names_(1);
b0.Name("freshName");
b0._Names();
b0.Choose_(2);
b0.If_();
b0.ExpressionTest_();
b0.Singleton_();
b1.SameStageFragment_();
b2.InvokeJavaInstanceMethod_();
b2.Text("get mapped type");
b1.Resolver();
b2.Variable("importedRefToEntityNameMap");
b1.Resolver();
b2.StringLiteral("java.util.Map");
b2.StringLiteral("containsKey(java.lang.Object)");
b2.Expressions_(1);
b2.Variable("baseName");
b2._Expressions();
b2._InvokeJavaInstanceMethod();
b1._SameStageFragment();
b0._Singleton();
b0._ExpressionTest();
b1.SameStageFragment_();
b2.InvokeJavaInstanceMethod_();
b2.Text("get mapped type");
b1.Resolver();
b2.Variable("importedRefToEntityNameMap");
b1.Resolver();
b2.StringLiteral("java.util.Map");
b2.StringLiteral("get(java.lang.Object)");
b2.Expressions_(1);
b2.Variable("baseName");
b2._Expressions();
b2._InvokeJavaInstanceMethod();
b1._SameStageFragment();
b0._If();
b0.Do_();
b0.Block_(2);
b1.SameStageFragment_();
b2.Sequence_();
b2.Text("sequence");
b2.FlowObjects_(3);
b2.InvokeJavaInstanceMethod_();
b2.Text("remove possible prefix from baseName");
b2.Variable("freshName");
b2.Variable("freshName");
b1.Resolver();
b2.StringLiteral("java.lang.String");
b2.StringLiteral("replaceFirst(java.lang.String, java.lang.String)");
b2.Expressions_(2);
b2.StringLiteral(".+:");
b2.StringLiteral("");
b2._Expressions();
b2._InvokeJavaInstanceMethod();
b2.InvokeJavaClassMethod_();
b2.Text("calculate entity name");
b2.Variable("freshName");
b1.Resolver();
b2.StringLiteral("org.whole.lang.xsd.util.SchemaHelpers");
b2.StringLiteral("toFreshEntityName(org.whole.lang.util.FreshNameGenerator, java.lang.String)");
b2.Expressions_(2);
b2.Variable("freshEntityNameGen");
b2.Variable("freshName");
b2._Expressions();
b2._InvokeJavaClassMethod();
b2.InvokeJavaInstanceMethod_();
b2.Text("update entity name map");
b1.Resolver();
b2.Variable("importedRefToEntityNameMap");
b1.Resolver();
b2.StringLiteral("java.util.Map");
b2.StringLiteral("put(java.lang.Object, java.lang.Object)");
b2.Expressions_(2);
b2.Variable("baseName");
b2.Variable("freshName");
b2._Expressions();
b2._InvokeJavaInstanceMethod();
b2._FlowObjects();
b2._Sequence();
b1._SameStageFragment();
b0.VariableRefStep("freshName");
b0._Block();
b0._Do();
b0._Choose();
b0._QueryDeclaration();
b0.Call_();
b0.Name("addAppInfo");
b0.Expressions_(1);
b0.Call_();
b0.Name("toType");
b0.Expressions_(2);
b0.Call_();
b0.Name("toImportedEntityName");
b0.Expressions_(1);
b0.Addition_();
b0.VariableRefStep("baseName");
b0.StringLiteral("Imported");
b0._Addition();
b0._Expressions();
b0._Call();
b0.StringLiteral("http://lang.whole.org/Models#SimpleName");
b0._Expressions();
b0._Call();
b0._Expressions();
b0._Call();
b0.SelfStep();
b0._Block();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("setFeatureAnnotation");
b0.Names_(7);
b0.Name("freshFeatureNameGen");
b0.Name("featureNameMap");
b0.Name("baseName");
b0.Name("name");
b0.Name("type");
b0.Name("baseType");
b0.Name("optional");
b0._Names();
b0.Block_(2);
b0.Choose_(2);
b0.Call_();
b0.Name("updateWithFeatureAnnotation");
b0.Expressions_(2);
b0.VariableRefStep("freshFeatureNameGen");
b0.VariableRefStep("featureNameMap");
b0._Expressions();
b0._Call();
b0.Call_();
b0.Name("addAppInfo");
b0.Expressions_(1);
b0.Select_();
b1.StageUpFragment_();
org.whole.lang.models.builders.IModelsBuilder b4 = (org.whole.lang.models.builders.IModelsBuilder) op.wGetBuilder(org.whole.lang.models.reflect.ModelsLanguageKit.URI);
b4.Feature_();
b4.FeatureModifiers_(1);
b1.Variable_();
b1.VarType("http://lang.whole.org/Models#FeatureModifier");
b1.VarName("optional");
b1.Quantifier("?");
b1._Variable();
b4._FeatureModifiers();
b1.Variable_();
b1.VarType("http://lang.whole.org/Models#SimpleName");
b1.VarName("type");
b1.Quantifier("!");
b1._Variable();
b1.Variable_();
b1.VarType("http://lang.whole.org/Models#SimpleName");
b1.VarName("name");
b1.Quantifier("!");
b1._Variable();
b1.Resolver();
b4._Feature();
b1._StageUpFragment();
b0.SelfStep();
b0.Sequence_(3);
b0.Filter_();
b0.Call_();
b0.Name("toFeatureName");
b0.Expressions_(3);
b0.VariableRefStep("freshFeatureNameGen");
b0.VariableRefStep("featureNameMap");
b0.VariableRefStep("baseName");
b0._Expressions();
b0._Call();
b0.VariableTest("name");
b0._Filter();
b0.Filter_();
b0.Call_();
b0.Name("toMappedType");
b1.Resolver();
b0._Call();
b0.VariableTest("type");
b0._Filter();
b0.If_();
b0.ExpressionTest_();
b0.Choose_(2);
b0.Filter_();
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#minOccurs");
b0.ExpressionTest_();
b1.StageUpFragment_();
b3.Bounded(0);
b1._StageUpFragment();
b0._ExpressionTest();
b0._Filter();
b0.Filter_();
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#use");
b0.ExpressionTest_();
b1.StageUpFragment_();
b3.Use("optional");
b1._StageUpFragment();
b0._ExpressionTest();
b0._Filter();
b0._Choose();
b0._ExpressionTest();
b0.Filter_();
b1.StageUpFragment_();
b4.FeatureModifier("optional");
b1._StageUpFragment();
b0.VariableTest("optional");
b0._Filter();
b0._If();
b0._Sequence();
b0._Select();
b0._Expressions();
b0._Call();
b0._Choose();
b0.SelfStep();
b0._Block();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("updateWithEntityNameAnnotation");
b1.Resolver();
b0.If_();
b0.Not_();
b0.ExpressionTest_();
b0.Filter_();
b0.Call_();
b0.Name("getAppInfo");
b1.Resolver();
b0._Call();
b0.TypeTest("http://lang.whole.org/Models#SimpleName");
b0._Filter();
b0._ExpressionTest();
b0._Not();
b0.Call_();
b0.Name("addAppInfo");
b0.Expressions_(1);
b0.Call_();
b0.Name("toType");
b0.Expressions_(2);
b0.Call_();
b0.Name("toMappedType");
b1.Resolver();
b0._Call();
b0.StringLiteral("http://lang.whole.org/Models#SimpleName");
b0._Expressions();
b0._Call();
b0._Expressions();
b0._Call();
b0._If();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("updateWithFeatureAnnotation");
b0.Names_(6);
b0.Name("freshFeatureNameGen");
b0.Name("featureNameMap");
b0.Name("baseName");
b0.Name("name");
b0.Name("type");
b0.Name("optional");
b0._Names();
b0.Block_(3);
b0.Filter_();
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#name");
b0.VariableTest("baseName");
b0._Filter();
b0.If_();
b0.ExpressionTest_();
b0.Choose_(2);
b0.Filter_();
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#minOccurs");
b0.ExpressionTest_();
b1.StageUpFragment_();
b3.Bounded(0);
b1._StageUpFragment();
b0._ExpressionTest();
b0._Filter();
b0.Filter_();
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#use");
b0.ExpressionTest_();
b1.StageUpFragment_();
b3.Use("optional");
b1._StageUpFragment();
b0._ExpressionTest();
b0._Filter();
b0._Choose();
b0._ExpressionTest();
b0.Filter_();
b1.StageUpFragment_();
b4.FeatureModifier("optional");
b1._StageUpFragment();
b0.VariableTest("optional");
b0._Filter();
b0._If();
b0.CartesianUpdate_();
b0.Filter_();
b0.Call_();
b0.Name("getAppInfo");
b1.Resolver();
b0._Call();
b0.TypeTest("http://lang.whole.org/Models#SimpleName");
b0._Filter();
b0.Select_();
b1.StageUpFragment_();
b4.Feature_();
b4.FeatureModifiers_(1);
b1.Variable_();
b1.VarType("http://lang.whole.org/Models#FeatureModifier");
b1.VarName("modifiers");
b1.Quantifier("*");
b1._Variable();
b4._FeatureModifiers();
b1.Variable_();
b1.VarType("http://lang.whole.org/Models#SimpleName");
b1.VarName("type");
b1.Quantifier("!");
b1._Variable();
b1.Variable_();
b1.VarType("http://lang.whole.org/Models#SimpleName");
b1.VarName("name");
b1.Quantifier("!");
b1._Variable();
b1.Resolver();
b4._Feature();
b1._StageUpFragment();
b0.SelfStep();
b0.Sequence_(3);
b0.Filter_();
b0.Call_();
b0.Name("toFeatureName");
b0.Expressions_(3);
b0.VariableRefStep("freshFeatureNameGen");
b0.VariableRefStep("featureNameMap");
b0.Choose_(2);
b0.VariableRefStep("baseName");
b0.SelfStep();
b0._Choose();
b0._Expressions();
b0._Call();
b0.VariableTest("name");
b0._Filter();
b0.Filter_();
b0.SelfStep();
b0.VariableTest("type");
b0._Filter();
b0.Filter_();
b0.VariableRefStep("optional");
b0.VariableTest("modifiers");
b0._Filter();
b0._Sequence();
b0._Select();
b0._CartesianUpdate();
b0._Block();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("updateWithDeclarationAnnotation");
b0.Names_(4);
b0.Name("name");
b0.Name("fnGen");
b0.Name("enumValue");
b0.Name("dataType");
b0._Names();
b0.Block_(3);
b0.QueryDeclaration_();
b0.Name("toDataType");
b0.Names_(1);
b0.Name("baseName");
b0._Names();
b0.Block_(2);
b0.QueryDeclaration_();
b0.Name("getBaseSimpleExtension");
b1.Resolver();
b0.Choose_(2);
b0.If_();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#SimpleExtension");
b0.SelfStep();
b0._If();
b0.Path_(5);
b0.Filter_();
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#base");
b0.KindTest("IMPL");
b0._Filter();
b0.Call_();
b0.Name("getComponent");
b1.Resolver();
b0._Call();
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#content");
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#derivation");
b0.Call_();
b0.Name("getBaseSimpleExtension");
b1.Resolver();
b0._Call();
b0._Path();
b0._Choose();
b0._QueryDeclaration();
b0.Choose_(2);
b0.Path_(2);
b0.Choose_(2);
b0.If_();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#SimpleRestriction");
b0.Path_(1);
b0.Call_();
b0.Name("getBaseSimpleExtension");
b1.Resolver();
b0._Call();
b0._Path();
b0._If();
b0.If_();
b0.ExpressionTest_();
b0.Filter_();
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#content");
b0.TypeTest("http://www.w3.org/2001/XMLSchema#SimpleTypeRestriction");
b0._Filter();
b0._ExpressionTest();
b0.Path_(1);
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#content");
b0._Path();
b0._If();
b0._Choose();
b0.Choose_(3);
b0.Path_(2);
b0.Filter_();
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#base");
b0.And_(2);
b0.KindTest("IMPL");
b0.ExpressionTest_();
b0.Call_();
b0.Name("isSchemaQName");
b1.Resolver();
b0._Call();
b0._ExpressionTest();
b0._And();
b0._Filter();
b1.SameStageFragment_();
b2.Sequence_();
b2.Text("sequence");
b2.FlowObjects_(2);
b1.SameStageFragment_();
b2.InvokeJavaInstanceMethod_();
b2.Text("get schema builtIn base name");
b2.Variable("baseName");
b2.Variable("self");
b1.Resolver();
b2.StringLiteral("java.lang.String");
b2.StringLiteral("replaceFirst(java.lang.String, java.lang.String)");
b2.Expressions_(2);
b2.StringLiteral(".+:");
b2.StringLiteral("");
b2._Expressions();
b2._InvokeJavaInstanceMethod();
b1._SameStageFragment();
b2.InvokeJavaClassMethod_();
b2.Text("get data type");
b1.Resolver();
b1.Resolver();
b2.StringLiteral("org.whole.lang.xsd.parsers.SchemaDataTypes");
b2.StringLiteral("getDataType(java.lang.String)");
b2.Expressions_(1);
b2.Variable("baseName");
b2._Expressions();
b2._InvokeJavaClassMethod();
b2._FlowObjects();
b2._Sequence();
b1._SameStageFragment();
b0._Path();
b0.Path_(3);
b0.Filter_();
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#base");
b0.KindTest("IMPL");
b0._Filter();
b0.Call_();
b0.Name("getComponent");
b1.Resolver();
b0._Call();
b0.Call_();
b0.Name("toDataType");
b1.Resolver();
b0._Call();
b0._Path();
b0.Path_(2);
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#baseDef");
b0.Call_();
b0.Name("toDataType");
b1.Resolver();
b0._Call();
b0._Path();
b0._Choose();
b0._Path();
b0.Do_();
b1.StageUpFragment_();
b4.DataType("Unknown");
b1._StageUpFragment();
b0._Do();
b0._Choose();
b0._Block();
b0._QueryDeclaration();
b0.Filter_();
b0.Call_();
b0.Name("getAppInfo");
b1.Resolver();
b0._Call();
b0.And_(2);
b0.TypeTest("http://lang.whole.org/Models#SimpleName");
b0.VariableTest("name");
b0._And();
b0._Filter();
b0.PointwiseUpdate_();
b0.VariableRefStep("name");
b0.Choose_(2);
b0.Select_();
b1.StageUpFragment_();
b4.EnumEntity_();
b4.EntityModifiers_(0);
b4._EntityModifiers();
b1.Variable_();
b1.VarType("http://lang.whole.org/Models#SimpleName");
b1.VarName("name");
b1.Quantifier("!");
b1._Variable();
b4.Types_(0);
b4._Types();
b4.EnumValues_(1);
b1.Variable_();
b1.VarType("http://lang.whole.org/Models#EnumValue");
b1.VarName("enumValue");
b1.Quantifier("+");
b1._Variable();
b4._EnumValues();
b4._EnumEntity();
b1._StageUpFragment();
b0.Filter_();
b0.SelfStep();
b0.Or_(2);
b0.And_(2);
b0.TypeTest("http://www.w3.org/2001/XMLSchema#SimpleTypeDef");
b0.ExpressionTest_();
b0.Path_(3);
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#content");
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#facets");
b0.Filter_();
b0.ChildStep();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#Enumeration");
b0._Filter();
b0._Path();
b0._ExpressionTest();
b0._And();
b0.And_(2);
b0.TypeTest("http://www.w3.org/2001/XMLSchema#SimpleRestriction");
b0.ExpressionTest_();
b0.Path_(2);
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#facets");
b0.Filter_();
b0.ChildStep();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#Enumeration");
b0._Filter();
b0._Path();
b0._ExpressionTest();
b0._And();
b0._Or();
b0._Filter();
b0.Sequence_(2);
b0.Filter_();
b1.SameStageFragment_();
b2.CreateJavaClassInstance_();
b2.Text("create an enum value fresh name generator");
b1.Resolver();
b1.Resolver();
b2.StringLiteral("org.whole.lang.util.FreshNameGenerator");
b2.StringLiteral("FreshNameGenerator()");
b1.Resolver();
b2._CreateJavaClassInstance();
b1._SameStageFragment();
b0.VariableTest("fnGen");
b0._Filter();
b0.Path_(5);
b0.Choose_(2);
b0.Path_(2);
b0.Filter_();
b0.SelfStep();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#SimpleTypeDef");
b0._Filter();
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#content");
b0._Path();
b0.Filter_();
b0.SelfStep();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#SimpleRestriction");
b0._Filter();
b0._Choose();
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#facets");
b0.Filter_();
b0.ChildStep();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#Enumeration");
b0._Filter();
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#value");
b0.Filter_();
b1.SameStageFragment_();
b2.InvokeJavaClassMethod_();
b2.Text("create a fresh enum value");
b1.Resolver();
b1.Resolver();
b2.StringLiteral("org.whole.lang.xsd.util.SchemaHelpers");
b2.StringLiteral("toFreshEnumLiteralName(org.whole.lang.util.FreshNameGenerator, java.lang.String)");
b2.Expressions_(2);
b2.Variable("fnGen");
b2.Variable("self");
b2._Expressions();
b2._InvokeJavaClassMethod();
b1._SameStageFragment();
b0.VariableTest("enumValue");
b0._Filter();
b0._Path();
b0._Sequence();
b0._Select();
b0.Select_();
b1.StageUpFragment_();
b4.DataEntity_();
b4.EntityModifiers_(0);
b4._EntityModifiers();
b1.Variable_();
b1.VarType("http://lang.whole.org/Models#SimpleName");
b1.VarName("name");
b1.Quantifier("!");
b1._Variable();
b4.Types_(0);
b4._Types();
b1.Variable_();
b1.VarType("http://lang.whole.org/Models#DataType");
b1.VarName("dataType");
b1.Quantifier("!");
b1._Variable();
b4._DataEntity();
b1._StageUpFragment();
b0.SelfStep();
b0.Filter_();
b0.Call_();
b0.Name("toDataType");
b1.Resolver();
b0._Call();
b0.VariableTest("dataType");
b0._Filter();
b0._Select();
b0._Choose();
b0._PointwiseUpdate();
b0._Block();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("getParticlesContainer");
b1.Resolver();
b0.Choose_(2);
b0.Path_(2);
b0.FeatureStep("content");
b0.Choose_(2);
b0.Path_(3);
b0.Filter_();
b0.SelfStep();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#ComplexContent");
b0._Filter();
b0.FeatureStep("derivation");
b0.FeatureStep("content");
b0._Path();
b0.Filter_();
b0.SelfStep();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#DeclaredContent");
b0._Filter();
b0._Choose();
b0._Path();
b0.Filter_();
b0.SelfStep();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#ModelGroupDef");
b0._Filter();
b0._Choose();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("getDescendantParticles");
b1.Resolver();
b0.Path_(1);
b0.Sequence_(2);
b0.SelfStep();
b0.If_();
b0.SubtypeTest("http://www.w3.org/2001/XMLSchema#ModelGroupWithParticles");
b0.Path_(3);
b0.FeatureStep("particles");
b0.ChildStep();
b0.Call_();
b0.Name("getDescendantParticles");
b1.Resolver();
b0._Call();
b0._Path();
b0._If();
b0._Sequence();
b0._Path();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("getParticles");
b1.Resolver();
b0.Path_(3);
b0.Call_();
b0.Name("getParticlesContainer");
b1.Resolver();
b0._Call();
b0.FeatureStep("modelGroup");
b0.Call_();
b0.Name("getDescendantParticles");
b1.Resolver();
b0._Call();
b0._Path();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("getLocalParticles");
b1.Resolver();
b0.Path_(2);
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#particles");
b0.Filter_();
b0.ChildStep();
b0.Not_();
b0.SubtypeTest("http://www.w3.org/2001/XMLSchema#Reference");
b0._Not();
b0._Filter();
b0._Path();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("getReferencedParticles");
b1.Resolver();
b0.Path_(2);
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#particles");
b0.Filter_();
b0.ChildStep();
b0.SubtypeTest("http://www.w3.org/2001/XMLSchema#Reference");
b0._Filter();
b0._Path();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("getModelGroupWithParticles");
b1.Resolver();
b0.Filter_();
b0.Call_();
b0.Name("getParticles");
b1.Resolver();
b0._Call();
b0.And_(2);
b0.SubtypeTest("http://www.w3.org/2001/XMLSchema#ModelGroupWithParticles");
b0.KindTest("IMPL");
b0._And();
b0._Filter();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("getAttributesContainer");
b1.Resolver();
b0.Path_(2);
b0.FeatureStep("content");
b0.Choose_(3);
b0.Path_(3);
b0.Filter_();
b0.SelfStep();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#ComplexContent");
b0._Filter();
b0.FeatureStep("derivation");
b0.FeatureStep("content");
b0._Path();
b0.Path_(2);
b0.Filter_();
b0.SelfStep();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#SimpleContent");
b0._Filter();
b0.FeatureStep("derivation");
b0._Path();
b0.Filter_();
b0.SelfStep();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#DeclaredContent");
b0._Filter();
b0._Choose();
b0._Path();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("getAttributesGroupChildren");
b1.Resolver();
b0.Path_(5);
b0.FeatureStep("ref");
b0.Call_();
b0.Name("getComponent");
b1.Resolver();
b0._Call();
b0.FeatureStep("attributeUses");
b0.ChildStep();
b0.Choose_(2);
b0.Path_(2);
b0.Filter_();
b0.SelfStep();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#AttributeGroupRef");
b0._Filter();
b0.Call_();
b0.Name("getAttributesGroupChildren");
b1.Resolver();
b0._Call();
b0._Path();
b0.Filter_();
b0.SelfStep();
b0.Not_();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#AttributeGroupRef");
b0._Not();
b0._Filter();
b0._Choose();
b0._Path();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("getLocalAttributes");
b1.Resolver();
b0.Path_(3);
b0.Call_();
b0.Name("getAttributesContainer");
b1.Resolver();
b0._Call();
b0.FeatureStep("attributeUses");
b0.Filter_();
b0.ChildStep();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#AttributeUseDecl");
b0._Filter();
b0._Path();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("getReferencedAttributes");
b1.Resolver();
b0.Path_(4);
b0.Call_();
b0.Name("getAttributesContainer");
b1.Resolver();
b0._Call();
b0.FeatureStep("attributeUses");
b0.Filter_();
b0.ChildStep();
b0.Not_();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#AttributeUseDecl");
b0._Not();
b0._Filter();
b0.Choose_(2);
b0.Filter_();
b0.SelfStep();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#AttributeUseRef");
b0._Filter();
b0.Call_();
b0.Name("getAttributesGroupChildren");
b1.Resolver();
b0._Call();
b0._Choose();
b0._Path();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("getDeclaredAttributes");
b1.Resolver();
b0.Sequence_(2);
b0.Call_();
b0.Name("getReferencedAttributes");
b1.Resolver();
b0._Call();
b0.Call_();
b0.Name("getLocalAttributes");
b1.Resolver();
b0._Call();
b0._Sequence();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("getInheritedAttributes");
b0.Names_(1);
b0.Name("excluded");
b0._Names();
b0.Path_(3);
b0.Call_();
b0.Name("getComplexBaseType");
b1.Resolver();
b0._Call();
b0.Call_();
b0.Name("getComponent");
b1.Resolver();
b0._Call();
b0.Call_();
b0.Name("getAttributes");
b0.Expressions_(1);
b0.VariableRefStep("excluded");
b0._Expressions();
b0._Call();
b0._Path();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("getAttributes");
b0.Names_(2);
b0.Name("excluded");
b0.Name("declared");
b0._Names();
b0.Block_(3);
b0.Filter_();
b0.Union_();
b0.Expressions_(0);
b0._Expressions();
b1.Resolver();
b0._Union();
b0.VariableTest("excluded");
b0._Filter();
b0.Filter_();
b0.Except_();
b0.Expressions_(2);
b0.Call_();
b0.Name("getDeclaredAttributes");
b1.Resolver();
b0._Call();
b0.Path_(2);
b0.VariableRefStep("excluded");
b0.ChildStep();
b0._Path();
b0._Expressions();
b0.IdentityComparator_();
b0.FeatureStep("name");
b0._IdentityComparator();
b0._Except();
b0.VariableTest("declared");
b0._Filter();
b0.Sequence_(2);
b0.CartesianInsert_();
b0.Placement("INTO");
b0.VariableRefStep("excluded");
b0.Path_(2);
b0.VariableRefStep("declared");
b0.ChildStep();
b0._Path();
b0._CartesianInsert();
b0.Call_();
b0.Name("getInheritedAttributes");
b0.Expressions_(1);
b0.VariableRefStep("excluded");
b0._Expressions();
b0._Call();
b0._Sequence();
b0._Block();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("getAttributesGroupWildcards");
b1.Resolver();
b0.Path_(3);
b0.FeatureStep("ref");
b0.Call_();
b0.Name("getComponent");
b1.Resolver();
b0._Call();
b0.Sequence_(2);
b0.Filter_();
b0.FeatureStep("anyAttribute");
b0.KindTest("IMPL");
b0._Filter();
b0.Path_(3);
b0.FeatureStep("attributeUses");
b0.Filter_();
b0.ChildStep();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#AttributeGroupRef");
b0._Filter();
b0.Call_();
b0.Name("getAttributesGroupWildcards");
b1.Resolver();
b0._Call();
b0._Path();
b0._Sequence();
b0._Path();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("getLocalWildcardAttribute");
b1.Resolver();
b0.Path_(2);
b0.Call_();
b0.Name("getAttributesContainer");
b1.Resolver();
b0._Call();
b0.Filter_();
b0.FeatureStep("anyAttribute");
b0.KindTest("IMPL");
b0._Filter();
b0._Path();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("getDeclaredWildcardAttribute");
b1.Resolver();
b0.Path_(2);
b0.Call_();
b0.Name("getAttributesContainer");
b1.Resolver();
b0._Call();
b0.Sequence_(2);
b0.Filter_();
b0.FeatureStep("anyAttribute");
b0.KindTest("IMPL");
b0._Filter();
b0.Path_(3);
b0.FeatureStep("attributeUses");
b0.Filter_();
b0.ChildStep();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#AttributeGroupRef");
b0._Filter();
b0.Call_();
b0.Name("getAttributesGroupWildcards");
b1.Resolver();
b0._Call();
b0._Path();
b0._Sequence();
b0._Path();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("getInheritedWildcardAttribute");
b1.Resolver();
b0.Path_(3);
b0.Call_();
b0.Name("getComplexBaseType");
b1.Resolver();
b0._Call();
b0.Call_();
b0.Name("getComponent");
b1.Resolver();
b0._Call();
b0.Call_();
b0.Name("getWildcardAttribute");
b1.Resolver();
b0._Call();
b0._Path();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("getWildcardAttribute");
b1.Resolver();
b0.Block_(2);
b1.StageUpFragment_();
org.whole.lang.text.builders.ITextBuilder b5 = (org.whole.lang.text.builders.ITextBuilder) op.wGetBuilder(org.whole.lang.text.reflect.TextLanguageKit.URI);
b5.Document_(2);
b5.Row_(1);
b5.Text("1. Implement wildcard namespaceSpecs intersection/union algorithms");
b5._Row();
b5.Row_(1);
b5.Text("(currently the first anyAttribute in hierarchy is returned)");
b5._Row();
b5._Document();
b1._StageUpFragment();
b0.Filter_();
b0.Sequence_(2);
b0.Call_();
b0.Name("getDeclaredWildcardAttribute");
b1.Resolver();
b0._Call();
b0.Call_();
b0.Name("getInheritedWildcardAttribute");
b1.Resolver();
b0._Call();
b0._Sequence();
b0.IndexTest_();
b0.IntLiteral(0);
b0._IndexTest();
b0._Filter();
b0._Block();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("hasAttributes");
b1.Resolver();
b0.Filter_();
b0.Sequence_(2);
b0.Call_();
b0.Name("getAttributes");
b1.Resolver();
b0._Call();
b0.Call_();
b0.Name("getWildcardAttribute");
b1.Resolver();
b0._Call();
b0._Sequence();
b0.IndexTest_();
b0.IntLiteral(0);
b0._IndexTest();
b0._Filter();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("hasRestriction");
b1.Resolver();
b0.Choose_(2);
b0.Path_(2);
b0.Filter_();
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#content");
b0.TypeTest("http://www.w3.org/2001/XMLSchema#SimpleContent");
b0._Filter();
b0.Filter_();
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#derivation");
b0.TypeTest("http://www.w3.org/2001/XMLSchema#SimpleRestriction");
b0._Filter();
b0._Path();
b0.Path_(2);
b0.Filter_();
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#content");
b0.TypeTest("http://www.w3.org/2001/XMLSchema#ComplexContent");
b0._Filter();
b0.Filter_();
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#derivation");
b0.TypeTest("http://www.w3.org/2001/XMLSchema#ComplexRestriction");
b0._Filter();
b0._Path();
b0._Choose();
b0._QueryDeclaration();
b0.QueryDeclaration_();
b0.Name("hasRestrictionWithFacets");
b1.Resolver();
b0.Path_(2);
b0.Filter_();
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#content");
b0.TypeTest("http://www.w3.org/2001/XMLSchema#SimpleContent");
b0._Filter();
b0.Filter_();
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#derivation");
b0.And_(2);
b0.TypeTest("http://www.w3.org/2001/XMLSchema#SimpleRestriction");
b0.ExpressionTest_();
b0.Path_(2);
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#facets");
b0.ChildStep();
b0._Path();
b0._ExpressionTest();
b0._And();
b0._Filter();
b0._Path();
b0._QueryDeclaration();
b1.SameStageFragment_();
b2.Sequence_();
b2.Text("normalize schema and create a new fresh name generators");
b2.FlowObjects_(13);
b2.InvokeOperation_();
b2.Text("normalize schema");
b2.Variable("self");
b2.Operation("NORMALIZER");
b1.Resolver();
b2._InvokeOperation();
b2.InvokeJavaClassMethod_();
b2.Text("get builtIn to entity name map");
b2.Variable("builtInToEntityNameMap");
b1.Resolver();
b2.StringLiteral("org.whole.lang.xsd.parsers.SchemaDataTypes");
b2.StringLiteral("getBuiltInToEntityNameMap()");
b1.Resolver();
b2._InvokeJavaClassMethod();
b2.InvokeJavaClassMethod_();
b2.Text("get builtIn to entity name map");
b2.Variable("reservedEntityNames");
b1.Resolver();
b2.StringLiteral("org.whole.lang.xsd.util.SchemaHelpers");
b2.StringLiteral("getReservedEntityNames()");
b1.Resolver();
b2._InvokeJavaClassMethod();
b2.CreateJavaClassInstance_();
b2.Text("create a fresh entity name generator");
b2.Variable("freshEntityNameGen");
b1.Resolver();
b2.StringLiteral("org.whole.lang.util.FreshNameGenerator");
b2.StringLiteral("FreshNameGenerator(java.util.Collection)");
b2.Expressions_(1);
b2.Variable("reservedEntityNames");
b2._Expressions();
b2._CreateJavaClassInstance();
b2.CreateJavaClassInstance_();
b2.Text("create an imported type to entity name map");
b2.Variable("importedTypeToEntityNameMap");
b1.Resolver();
b2.StringLiteral("java.util.HashMap");
b2.StringLiteral("HashMap()");
b1.Resolver();
b2._CreateJavaClassInstance();
b2.CreateJavaClassInstance_();
b2.Text("create an imported attribute to entity name map");
b2.Variable("importedAttributeToEntityNameMap");
b1.Resolver();
b2.StringLiteral("java.util.HashMap");
b2.StringLiteral("HashMap()");
b1.Resolver();
b2._CreateJavaClassInstance();
b2.CreateJavaClassInstance_();
b2.Text("create an imported element to entity name map");
b2.Variable("importedElementToEntityNameMap");
b1.Resolver();
b2.StringLiteral("java.util.HashMap");
b2.StringLiteral("HashMap()");
b1.Resolver();
b2._CreateJavaClassInstance();
b2.CreateJavaClassInstance_();
b2.Text("create an imported group to entity name map");
b2.Variable("importedGroupToEntityNameMap");
b1.Resolver();
b2.StringLiteral("java.util.HashMap");
b2.StringLiteral("HashMap()");
b1.Resolver();
b2._CreateJavaClassInstance();
b2.CreateJavaClassInstance_();
b2.Text("create a typeDef to entity name map");
b2.Variable("typeDefToEntityNameMap");
b1.Resolver();
b2.StringLiteral("java.util.HashMap");
b2.StringLiteral("HashMap()");
b1.Resolver();
b2._CreateJavaClassInstance();
b2.CreateJavaClassInstance_();
b2.Text("create a fresh feature name generator");
b2.Variable("freshFeatureNameGen");
b1.Resolver();
b2.StringLiteral("org.whole.lang.util.FreshNameGenerator");
b2.StringLiteral("FreshNameGenerator()");
b1.Resolver();
b2._CreateJavaClassInstance();
b2.CreateJavaClassInstance_();
b2.Text("create an attribute to feature name map");
b2.Variable("attributeToFeatureNameMap");
b1.Resolver();
b2.StringLiteral("java.util.HashMap");
b2.StringLiteral("HashMap()");
b1.Resolver();
b2._CreateJavaClassInstance();
b2.CreateJavaClassInstance_();
b2.Text("create an element to feature name map");
b2.Variable("elementToFeatureNameMap");
b1.Resolver();
b2.StringLiteral("java.util.HashMap");
b2.StringLiteral("HashMap()");
b1.Resolver();
b2._CreateJavaClassInstance();
b2.CreateJavaClassInstance_();
b2.Text("create model group to feature name map");
b2.Variable("modelGroupToFeatureNameMap");
b1.Resolver();
b2.StringLiteral("java.util.HashMap");
b2.StringLiteral("HashMap()");
b1.Resolver();
b2._CreateJavaClassInstance();
b2._FlowObjects();
b2._Sequence();
b1._SameStageFragment();
b0.Path_(2);
b0.Filter_();
b0.DescendantStep();
b0.And_(2);
b0.TypeTest("http://www.w3.org/2001/XMLSchema#QName");
b0.KindTest("IMPL");
b0._And();
b0._Filter();
b0.Call_();
b0.Name("resolveNamespace");
b1.Resolver();
b0._Call();
b0._Path();
b0.Path_(3);
b0.FeatureStep("components");
b0.Sequence_(3);
b0.Filter_();
b0.ChildStep();
b0.And_(2);
b0.SubtypeTest("http://www.w3.org/2001/XMLSchema#TypeDef");
b0.KindTest("IMPL");
b0._And();
b0._Filter();
b0.Path_(2);
b0.ChildStep();
b0.Filter_();
b0.DescendantStep();
b0.Or_(2);
b0.And_(2);
b0.SubtypeTest("http://www.w3.org/2001/XMLSchema#TypeDef");
b0.KindTest("IMPL");
b0._And();
b0.And_(2);
b0.TypeTest("http://www.w3.org/2001/XMLSchema#SimpleRestriction");
b0.ExpressionTest_();
b0.Path_(2);
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#facets");
b0.ChildStep();
b0._Path();
b0._ExpressionTest();
b0._And();
b0._Or();
b0._Filter();
b0._Path();
b0.Path_(2);
b0.Sequence_(2);
b0.Filter_();
b0.ChildStep();
b0.And_(2);
b0.TypeTest("http://www.w3.org/2001/XMLSchema#ModelGroupDef");
b0.KindTest("IMPL");
b0._And();
b0._Filter();
b0.Filter_();
b0.DescendantStep();
b0.And_(2);
b0.TypeTest("http://www.w3.org/2001/XMLSchema#ComplexTypeDef");
b0.KindTest("IMPL");
b0._And();
b0._Filter();
b0._Sequence();
b0.Call_();
b0.Name("getModelGroupWithParticles");
b1.Resolver();
b0._Call();
b0._Path();
b0._Sequence();
b0.Call_();
b0.Name("setEntityNameAnnotation");
b0.Expressions_(2);
b0.VariableRefStep("freshEntityNameGen");
b0.VariableRefStep("typeDefToEntityNameMap");
b0._Expressions();
b0._Call();
b0._Path();
b0.Path_(3);
b0.FeatureStep("components");
b0.Filter_();
b0.DescendantStep();
b0.And_(2);
b0.TypeTest("http://www.w3.org/2001/XMLSchema#SimpleTypeDef");
b0.KindTest("IMPL");
b0._And();
b0._Filter();
b0.Call_();
b0.Name("updateWithDeclarationAnnotation");
b1.Resolver();
b0._Call();
b0._Path();
b0.Path_(3);
b0.FeatureStep("components");
b0.DescendantStep();
b0.Choose_(3);
b0.If_();
b0.And_(3);
b0.SubtypeTest("http://www.w3.org/2001/XMLSchema#Reference");
b0.Not_();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#AttributeGroupRef");
b0._Not();
b0.ExpressionTest_();
b0.Filter_();
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#ref");
b0.Not_();
b0.ExpressionTest_();
b0.Call_();
b0.Name("isLocalQName");
b1.Resolver();
b0._Call();
b0._ExpressionTest();
b0._Not();
b0._Filter();
b0._ExpressionTest();
b0._And();
b0.Call_();
b0.Name("setImportedEntityNameAnnotation");
b0.Expressions_(3);
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#ref");
b0.VariableRefStep("freshEntityNameGen");
b0.Choose_(3);
b0.If_();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#AttributeUseRef");
b0.VariableRefStep("importedAttributeToEntityNameMap");
b0._If();
b0.If_();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#ElementRef");
b0.VariableRefStep("importedElementToEntityNameMap");
b0._If();
b0.If_();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#ModelGroupRef");
b0.VariableRefStep("importedGroupToEntityNameMap");
b0._If();
b0._Choose();
b0._Expressions();
b0._Call();
b0._If();
b0.If_();
b0.And_(2);
b0.TypeTest("http://www.w3.org/2001/XMLSchema#ElementDecl");
b0.ExpressionTest_();
b0.Filter_();
b0.FeatureStep("type");
b0.And_(2);
b0.KindTest("IMPL");
b0.ExpressionTest_();
b0.Call_();
b0.Name("isImportedQName");
b1.Resolver();
b0._Call();
b0._ExpressionTest();
b0._And();
b0._Filter();
b0._ExpressionTest();
b0._And();
b0.Call_();
b0.Name("setImportedEntityNameAnnotation");
b0.Expressions_(3);
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#type");
b0.VariableRefStep("freshEntityNameGen");
b0.VariableRefStep("importedTypeToEntityNameMap");
b0._Expressions();
b0._Call();
b0._If();
b0.If_();
b0.And_(2);
b0.SubtypeTest("http://www.w3.org/2001/XMLSchema#AttributeDecl");
b0.ExpressionTest_();
b0.Filter_();
b0.FeatureStep("simpleType");
b0.And_(2);
b0.KindTest("IMPL");
b0.ExpressionTest_();
b0.Call_();
b0.Name("isImportedQName");
b1.Resolver();
b0._Call();
b0._ExpressionTest();
b0._And();
b0._Filter();
b0._ExpressionTest();
b0._And();
b0.Call_();
b0.Name("setImportedEntityNameAnnotation");
b0.Expressions_(3);
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#simpleType");
b0.VariableRefStep("freshEntityNameGen");
b0.VariableRefStep("importedTypeToEntityNameMap");
b0._Expressions();
b0._Call();
b0._If();
b0._Choose();
b0._Path();
b0.Path_(3);
b0.FeatureStep("components");
b0.Sequence_(2);
b0.Filter_();
b0.ChildStep();
b0.And_(2);
b0.Or_(2);
b0.TypeTest("http://www.w3.org/2001/XMLSchema#AttributeDecl");
b0.TypeTest("http://www.w3.org/2001/XMLSchema#ElementDecl");
b0._Or();
b0.KindTest("IMPL");
b0._And();
b0._Filter();
b0.Path_(3);
b0.Filter_();
b0.ChildStep();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#AttributeGroupDef");
b0._Filter();
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#attributeUses");
b0.Filter_();
b0.ChildStep();
b0.Not_();
b0.SubtypeTest("http://www.w3.org/2001/XMLSchema#Reference");
b0._Not();
b0._Filter();
b0._Path();
b0._Sequence();
b0.Call_();
b0.Name("setFeatureAnnotation");
b0.Expressions_(3);
b0.VariableRefStep("freshFeatureNameGen");
b0.Choose_(2);
b0.If_();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#ElementDecl");
b0.VariableRefStep("elementToFeatureNameMap");
b0._If();
b0.Do_();
b0.VariableRefStep("attributeToFeatureNameMap");
b0._Do();
b0._Choose();
b0.Choose_(2);
b0.FeatureStep("name");
b0.FeatureStep("ref");
b0._Choose();
b0._Expressions();
b0._Call();
b0._Path();
b0.Path_(2);
b0.FeatureStep("components");
b0.Sequence_(1);
b0.Path_(3);
b0.Sequence_(2);
b0.Filter_();
b0.ChildStep();
b0.And_(2);
b0.TypeTest("http://www.w3.org/2001/XMLSchema#ModelGroupDef");
b0.KindTest("IMPL");
b0._And();
b0._Filter();
b0.Filter_();
b0.DescendantStep();
b0.And_(2);
b0.TypeTest("http://www.w3.org/2001/XMLSchema#ComplexTypeDef");
b0.KindTest("IMPL");
b0._And();
b0._Filter();
b0._Sequence();
b0.Call_();
b0.Name("getModelGroupWithParticles");
b1.Resolver();
b0._Call();
b0.Sequence_(6);
b0.Filter_();
b1.SameStageFragment_();
b2.CreateJavaClassInstance_();
b2.Text("create a local fresh feature name generator");
b1.Resolver();
b1.Resolver();
b2.StringLiteral("org.whole.lang.util.FreshNameGenerator");
b2.StringLiteral("FreshNameGenerator()");
b1.Resolver();
b2._CreateJavaClassInstance();
b1._SameStageFragment();
b0.VariableTest("localFreshFeatureNameGen");
b0._Filter();
b0.Filter_();
b1.SameStageFragment_();
b2.CreateJavaClassInstance_();
b2.Text("create a local element to feature name map");
b1.Resolver();
b1.Resolver();
b2.StringLiteral("java.util.HashMap");
b2.StringLiteral("HashMap()");
b1.Resolver();
b2._CreateJavaClassInstance();
b1._SameStageFragment();
b0.VariableTest("localElementToFeatureNameMap");
b0._Filter();
b0.Path_(2);
b0.Call_();
b0.Name("getReferencedParticles");
b1.Resolver();
b0._Call();
b0.Choose_(2);
b0.Path_(4);
b0.FeatureStep("ref");
b0.Call_();
b0.Name("getComponent");
b1.Resolver();
b0._Call();
b0.Call_();
b0.Name("getAppInfo");
b1.Resolver();
b0._Call();
b1.SameStageFragment_();
b2.InvokeJavaInstanceMethod_();
b2.Text("bind feature name to local fresh name generator");
b1.Resolver();
b2.Variable("localFreshFeatureNameGen");
b1.Resolver();
b2.StringLiteral("org.whole.lang.util.FreshNameGenerator");
b2.StringLiteral("addBoundName(java.lang.String)");
b2.Expressions_(1);
b1.SameStageFragment_();
b0.FeatureStep("name");
b1._SameStageFragment();
b2._Expressions();
b2._InvokeJavaInstanceMethod();
b1._SameStageFragment();
b0._Path();
b0.Call_();
b0.Name("updateWithFeatureAnnotation");
b0.Expressions_(2);
b0.VariableRefStep("localFreshFeatureNameGen");
b0.VariableRefStep("localElementToFeatureNameMap");
b0._Expressions();
b0._Call();
b0._Choose();
b0._Path();
b0.Choose_(2);
b0.If_();
b0.Or_(2);
b0.TypeTest("http://www.w3.org/2001/XMLSchema#Choice");
b0.And_(2);
b0.Not_();
b0.ExpressionTest_();
b0.Filter_();
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#maxOccurs");
b0.ExpressionTest_();
b1.StageUpFragment_();
b3.Bounded(1);
b1._StageUpFragment();
b0._ExpressionTest();
b0._Filter();
b0._ExpressionTest();
b0._Not();
b0.Not_();
b0.ExpressionTest_();
b0.Filter_();
b0.ParentStep();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#ModelGroupDef");
b0._Filter();
b0._ExpressionTest();
b0._Not();
b0._And();
b0._Or();
b0.Path_(2);
b0.Call_();
b0.Name("getLocalParticles");
b1.Resolver();
b0._Call();
b0.Call_();
b0.Name("updateWithEntityNameAnnotation");
b1.Resolver();
b0._Call();
b0._Path();
b0._If();
b0.Do_();
b0.Path_(2);
b0.Call_();
b0.Name("getLocalParticles");
b1.Resolver();
b0._Call();
b0.Call_();
b0.Name("setFeatureAnnotation");
b0.Expressions_(3);
b0.VariableRefStep("localFreshFeatureNameGen");
b0.VariableRefStep("localElementToFeatureNameMap");
b0.Choose_(3);
b0.FeatureStep("name");
b0.FeatureStep("ref");
b0.StringLiteral("any");
b0._Choose();
b0._Expressions();
b0._Call();
b0._Path();
b0._Do();
b0._Choose();
b0.If_();
b0.Or_(2);
b0.ExpressionTest_();
b0.Filter_();
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#maxOccurs");
b0.ExpressionTest_();
b1.StageUpFragment_();
b3.Bounded(1);
b1._StageUpFragment();
b0._ExpressionTest();
b0._Filter();
b0._ExpressionTest();
b0.ExpressionTest_();
b0.Filter_();
b0.ParentStep();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#ModelGroupDef");
b0._Filter();
b0._ExpressionTest();
b0._Or();
b0.Path_(2);
b0.Filter_();
b0.Call_();
b0.Name("getReferencedParticles");
b1.Resolver();
b0._Call();
b0.ExpressionTest_();
b0.Filter_();
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#ref");
b0.Not_();
b0.ExpressionTest_();
b0.Call_();
b0.Name("isLocalQName");
b1.Resolver();
b0._Call();
b0._ExpressionTest();
b0._Not();
b0._Filter();
b0._ExpressionTest();
b0._Filter();
b0.Call_();
b0.Name("updateWithFeatureAnnotation");
b0.Expressions_(2);
b0.VariableRefStep("localFreshFeatureNameGen");
b0.VariableRefStep("localElementToFeatureNameMap");
b0._Expressions();
b0._Call();
b0._Path();
b0._If();
b0.If_();
b0.Not_();
b0.ExpressionTest_();
b0.Filter_();
b0.ParentStep();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#Particles");
b0._Filter();
b0._ExpressionTest();
b0._Not();
b0.Call_();
b0.Name("updateWithFeatureAnnotation");
b0.Expressions_(2);
b1.SameStageFragment_();
b2.CreateJavaClassInstance_();
b2.Text("create a local fresh feature name generator");
b1.Resolver();
b1.Resolver();
b2.StringLiteral("org.whole.lang.util.FreshNameGenerator");
b2.StringLiteral("FreshNameGenerator()");
b1.Resolver();
b2._CreateJavaClassInstance();
b1._SameStageFragment();
b1.SameStageFragment_();
b2.CreateJavaClassInstance_();
b2.Text("create a local element to feature name map");
b1.Resolver();
b1.Resolver();
b2.StringLiteral("java.util.HashMap");
b2.StringLiteral("HashMap()");
b1.Resolver();
b2._CreateJavaClassInstance();
b1._SameStageFragment();
b0._Expressions();
b0._Call();
b0._If();
b0._Sequence();
b0._Path();
b0._Sequence();
b0._Path();
b0.Path_(3);
b0.FeatureStep("components");
b0.Sequence_(2);
b0.Filter_();
b0.DescendantStep();
b0.And_(2);
b0.TypeTest("http://www.w3.org/2001/XMLSchema#ComplexTypeDef");
b0.Not_();
b0.ExpressionTest_();
b0.Call_();
b0.Name("hasRestriction");
b1.Resolver();
b0._Call();
b0._ExpressionTest();
b0._Not();
b0._And();
b0._Filter();
b0.Filter_();
b0.DescendantStep();
b0.And_(2);
b0.TypeTest("http://www.w3.org/2001/XMLSchema#ComplexTypeDef");
b0.ExpressionTest_();
b0.Call_();
b0.Name("hasRestrictionWithFacets");
b1.Resolver();
b0._Call();
b0._ExpressionTest();
b0._And();
b0._Filter();
b0._Sequence();
b0.Sequence_(6);
b0.Filter_();
b1.SameStageFragment_();
b2.CreateJavaClassInstance_();
b2.Text("create a local fresh feature name generator");
b1.Resolver();
b1.Resolver();
b2.StringLiteral("org.whole.lang.util.FreshNameGenerator");
b2.StringLiteral("FreshNameGenerator()");
b1.Resolver();
b2._CreateJavaClassInstance();
b1._SameStageFragment();
b0.VariableTest("localFreshFeatureNameGen");
b0._Filter();
b0.Filter_();
b1.SameStageFragment_();
b2.CreateJavaClassInstance_();
b2.Text("create a local attribute to feature name map");
b1.Resolver();
b1.Resolver();
b2.StringLiteral("java.util.HashMap");
b2.StringLiteral("HashMap()");
b1.Resolver();
b2._CreateJavaClassInstance();
b1._SameStageFragment();
b0.VariableTest("localAttributeToFeatureNameMap");
b0._Filter();
b0.Choose_(2);
b0.Path_(3);
b0.Filter_();
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#content");
b0.TypeTest("http://www.w3.org/2001/XMLSchema#SimpleContent");
b0._Filter();
b0.FeatureStep("http://www.w3.org/2001/XMLSchema#derivation");
b0.Choose_(2);
b0.If_();
b0.TypeTest("http://www.w3.org/2001/XMLSchema#SimpleRestriction");
b0.Call_();
b0.Name("updateWithDeclarationAnnotation");
b1.Resolver();
b0._Call();
b0._If();
b0.Do_();
b0.Call_();
b0.Name("setFeatureAnnotation");
b0.Expressions_(3);
b0.VariableRefStep("localFreshFeatureNameGen");
b0.VariableRefStep("localAttributeToFeatureNameMap");
b0.StringLiteral("content");
b0._Expressions();
b0._Call();
b0._Do();
b0._Choose();
b0._Path();
b0.Path_(3);
b0.Call_();
b0.Name("getParticlesContainer");
b1.Resolver();
b0._Call();
b0.Call_();
b0.Name("findAppInfoFeature");
b1.Resolver();
b0._Call();
b1.SameStageFragment_();
b2.InvokeJavaInstanceMethod_();
b2.Text("bind feature name to local fresh name generator");
b1.Resolver();
b2.Variable("localFreshFeatureNameGen");
b1.Resolver();
b2.StringLiteral("org.whole.lang.util.FreshNameGenerator");
b2.StringLiteral("addBoundName(java.lang.String)");
b2.Expressions_(1);
b2.Variable("self");
b2._Expressions();
b2._InvokeJavaInstanceMethod();
b1._SameStageFragment();
b0._Path();
b0._Choose();
b0.Path_(3);
b0.Call_();
b0.Name("getReferencedAttributes");
b1.Resolver();
b0._Call();
b0.Filter_();
b0.FeatureStep("ref");
b0.ExpressionTest_();
b0.Call_();
b0.Name("isLocalQName");
b1.Resolver();
b0._Call();
b0._ExpressionTest();
b0._Filter();
b1.SameStageFragment_();
b2.Sequence_();
b2.Text("bind all referenced attribute names");
b2.FlowObjects_(3);
b2.InvokeJavaInstanceMethod_();
b2.Text("get base name from reference");
b2.Variable("attributeName");
b2.Variable("self");
b1.Resolver();
b2.StringLiteral("java.lang.String");
b2.StringLiteral("replaceFirst(java.lang.String, java.lang.String)");
b2.Expressions_(2);
b2.StringLiteral(".+:");
b2.StringLiteral("");
b2._Expressions();
b2._InvokeJavaInstanceMethod();
b2.InvokeJavaInstanceMethod_();
b2.Text("get mapped feature name");
b2.Variable("boundName");
b2.Variable("attributeToFeatureNameMap");
b1.Resolver();
b2.StringLiteral("java.util.Map");
b2.StringLiteral("get(java.lang.Object)");
b2.Expressions_(1);
b2.Variable("attributeName");
b2._Expressions();
b2._InvokeJavaInstanceMethod();
b2.InvokeJavaInstanceMethod_();
b2.Text("bind feature name to local fresh name generator");
b1.Resolver();
b2.Variable("localFreshFeatureNameGen");
b1.Resolver();
b2.StringLiteral("org.whole.lang.util.FreshNameGenerator");
b2.StringLiteral("addBoundName(java.lang.String)");
b2.Expressions_(1);
b2.Variable("boundName");
b2._Expressions();
b2._InvokeJavaInstanceMethod();
b2._FlowObjects();
b2._Sequence();
b1._SameStageFragment();
b0._Path();
b0.Path_(2);
b0.Call_();
b0.Name("getLocalAttributes");
b1.Resolver();
b0._Call();
b0.Call_();
b0.Name("setFeatureAnnotation");
b0.Expressions_(3);
b0.VariableRefStep("localFreshFeatureNameGen");
b0.VariableRefStep("localAttributeToFeatureNameMap");
b0.FeatureStep("name");
b0._Expressions();
b0._Call();
b0._Path();
b0.Path_(2);
b0.Filter_();
b0.Call_();
b0.Name("getReferencedAttributes");
b1.Resolver();
b0._Call();
b0.ExpressionTest_();
b0.Filter_();
b0.FeatureStep("ref");
b0.Not_();
b0.ExpressionTest_();
b0.Call_();
b0.Name("isLocalQName");
b1.Resolver();
b0._Call();
b0._ExpressionTest();
b0._Not();
b0._Filter();
b0._ExpressionTest();
b0._Filter();
b0.Call_();
b0.Name("setFeatureAnnotation");
b0.Expressions_(3);
b0.VariableRefStep("localFreshFeatureNameGen");
b0.VariableRefStep("localAttributeToFeatureNameMap");
b0.FeatureStep("ref");
b0._Expressions();
b0._Call();
b0._Path();
b0._Sequence();
b0._Path();
b0.SelfStep();
b0._Block();
}
}