package org.whole.lang.models.codebase;
import org.whole.lang.builders.IBuilderOperation;
import org.whole.lang.templates.AbstractTemplateFactory;
public class FeatureModelModel extends AbstractTemplateFactory<org.whole.lang.models.model.Model> {
public void apply(IBuilderOperation op) {
org.whole.lang.models.builders.IModelsBuilder b0 = (org.whole.lang.models.builders.IModelsBuilder) op.wGetBuilder(org.whole.lang.models.reflect.ModelsLanguageKit.URI);
b0.Model_();
b0.SimpleName("FeatureModel");
b0.TypeRelations_(0);
b0._TypeRelations();
b0.ModelDeclarations_(47);
b0.SimpleEntity_();
b0.EntityModifiers_(0);
b0._EntityModifiers();
b0.SimpleName("FeatureModel");
b0.Types_(0);
b0._Types();
b0.Features_(7);
b0.Feature_();
b0.FeatureModifiers_(0);
b0._FeatureModifiers();
b0.SimpleName("Name");
b0.SimpleName("name");
b0._Feature();
b0.Feature_();
b0.FeatureModifiers_(0);
b0._FeatureModifiers();
b0.SimpleName("Version");
b0.SimpleName("version");
b0._Feature();
b0.Feature_();
b0.FeatureModifiers_(0);
b0._FeatureModifiers();
b0.SimpleName("URI");
b0.SimpleName("uri");
b0._Feature();
b0.Feature_();
b0.FeatureModifiers_(0);
b0._FeatureModifiers();
b0.SimpleName("Stage");
b0.SimpleName("stage");
b0._Feature();
b0.Feature_();
b0.FeatureModifiers_(1);
b0.FeatureModifier("optional");
b0._FeatureModifiers();
b0.SimpleName("URI");
b0.SimpleName("specialize");
b0._Feature();
b0.Feature_();
b0.FeatureModifiers_(0);
b0._FeatureModifiers();
b0.SimpleName("Features");
b0.SimpleName("features");
b0._Feature();
b0.Feature_();
b0.FeatureModifiers_(1);
b0.FeatureModifier("optional");
b0._FeatureModifiers();
b0.SimpleName("Constraints");
b0.SimpleName("constraints");
b0._Feature();
b0._Features();
b0._SimpleEntity();
b0.EnumEntity_();
b0.EntityModifiers_(0);
b0._EntityModifiers();
b0.SimpleName("Stage");
b0.Types_(0);
b0._Types();
b0.EnumValues_(3);
b0.EnumValue("DEFINITION");
b0.EnumValue("SPECIALIZATION");
b0.EnumValue("CONFIGURATION");
b0._EnumValues();
b0._EnumEntity();
b0.CompositeEntity_();
b0.EntityModifiers_(0);
b0._EntityModifiers();
b0.SimpleName("Features");
b0.Types_(0);
b0._Types();
b0.ComponentModifiers_(1);
b0.ComponentModifier("ordered");
b0._ComponentModifiers();
b0.SimpleName("Feature");
b0._CompositeEntity();
b0.CompositeEntity_();
b0.EntityModifiers_(0);
b0._EntityModifiers();
b0.SimpleName("Subfeatures");
b0.Types_(0);
b0._Types();
b0.ComponentModifiers_(1);
b0.ComponentModifier("ordered");
b0._ComponentModifiers();
b0.SimpleName("Subfeature");
b0._CompositeEntity();
b0.CompositeEntity_();
b0.EntityModifiers_(0);
b0._EntityModifiers();
b0.SimpleName("VariableFeatures");
b0.Types_(0);
b0._Types();
b0.ComponentModifiers_(1);
b0.ComponentModifier("ordered");
b0._ComponentModifiers();
b0.SimpleName("VariableFeature");
b0._CompositeEntity();
b0.CompositeEntity_();
b0.EntityModifiers_(0);
b0._EntityModifiers();
b0.SimpleName("SolitaryFeatures");
b0.Types_(0);
b0._Types();
b0.ComponentModifiers_(1);
b0.ComponentModifier("ordered");
b0._ComponentModifiers();
b0.SimpleName("SolitaryFeature");
b0._CompositeEntity();
b0.SimpleEntity_();
b0.EntityModifiers_(1);
b0.EntityModifier("abstract");
b0._EntityModifiers();
b0.SimpleName("Subfeature");
b0.Types_(0);
b0._Types();
b0.Features_(0);
b0._Features();
b0._SimpleEntity();
b0.SimpleEntity_();
b0.EntityModifiers_(0);
b0._EntityModifiers();
b0.SimpleName("SubsetGroup");
b0.Types_(1);
b0.SimpleName("Subfeature");
b0._Types();
b0.Features_(2);
b0.Feature_();
b0.FeatureModifiers_(1);
b0.FeatureModifier("optional");
b0._FeatureModifiers();
b0.SimpleName("Cardinality");
b0.SimpleName("cardinality");
b0._Feature();
b0.Feature_();
b0.FeatureModifiers_(0);
b0._FeatureModifiers();
b0.SimpleName("VariableFeatures");
b0.SimpleName("features");
b0._Feature();
b0._Features();
b0._SimpleEntity();
b0.SimpleEntity_();
b0.EntityModifiers_(0);
b0._EntityModifiers();
b0.SimpleName("CloneGroup");
b0.Types_(1);
b0.SimpleName("Subfeature");
b0._Types();
b0.Features_(2);
b0.Feature_();
b0.FeatureModifiers_(1);
b0.FeatureModifier("optional");
b0._FeatureModifiers();
b0.SimpleName("Cardinality");
b0.SimpleName("cardinality");
b0._Feature();
b0.Feature_();
b0.FeatureModifiers_(0);
b0._FeatureModifiers();
b0.SimpleName("SolitaryFeatures");
b0.SimpleName("features");
b0._Feature();
b0._Features();
b0._SimpleEntity();
b0.SimpleEntity_();
b0.EntityModifiers_(0);
b0._EntityModifiers();
b0.SimpleName("VariableFeature");
b0.Types_(1);
b0.SimpleName("Subfeature");
b0._Types();
b0.Features_(2);
b0.Feature_();
b0.FeatureModifiers_(0);
b0._FeatureModifiers();
b0.SimpleName("SolitaryFeature");
b0.SimpleName("feature");
b0._Feature();
b0.Feature_();
b0.FeatureModifiers_(0);
b0._FeatureModifiers();
b0.SimpleName("VariableValue");
b0.SimpleName("value");
b0._Feature();
b0._Features();
b0._SimpleEntity();
b0.SimpleEntity_();
b0.EntityModifiers_(1);
b0.EntityModifier("abstract");
b0._EntityModifiers();
b0.SimpleName("SolitaryFeature");
b0.Types_(1);
b0.SimpleName("Subfeature");
b0._Types();
b0.Features_(1);
b0.Feature_();
b0.FeatureModifiers_(0);
b0._FeatureModifiers();
b0.SimpleName("Name");
b0.SimpleName("name");
b0._Feature();
b0._Features();
b0._SimpleEntity();
b0.SimpleEntity_();
b0.EntityModifiers_(0);
b0._EntityModifiers();
b0.SimpleName("FeatureReference");
b0.Types_(1);
b0.SimpleName("SolitaryFeature");
b0._Types();
b0.Features_(0);
b0._Features();
b0._SimpleEntity();
b0.SimpleEntity_();
b0.EntityModifiers_(0);
b0._EntityModifiers();
b0.SimpleName("Feature");
b0.Types_(1);
b0.SimpleName("SolitaryFeature");
b0._Types();
b0.Features_(2);
b0.Feature_();
b0.FeatureModifiers_(1);
b0.FeatureModifier("optional");
b0._FeatureModifiers();
b0.SimpleName("Annotations");
b0.SimpleName("annotations");
b0._Feature();
b0.Feature_();
b0.FeatureModifiers_(1);
b0.FeatureModifier("optional");
b0._FeatureModifiers();
b0.SimpleName("Subfeatures");
b0.SimpleName("features");
b0._Feature();
b0._Features();
b0._SimpleEntity();
b0.SimpleEntity_();
b0.EntityModifiers_(0);
b0._EntityModifiers();
b0.SimpleName("Attribute");
b0.Types_(1);
b0.SimpleName("SolitaryFeature");
b0._Types();
b0.Features_(2);
b0.Feature_();
b0.FeatureModifiers_(0);
b0._FeatureModifiers();
b0.SimpleName("Domain");
b0.SimpleName("domain");
b0._Feature();
b0.Feature_();
b0.FeatureModifiers_(1);
b0.FeatureModifier("optional");
b0._FeatureModifiers();
b0.SimpleName("Value");
b0.SimpleName("value");
b0._Feature();
b0._Features();
b0._SimpleEntity();
b0.EnumEntity_();
b0.EntityModifiers_(0);
b0._EntityModifiers();
b0.SimpleName("Domain");
b0.Types_(0);
b0._Types();
b0.EnumValues_(9);
b0.EnumValue("BOOLEAN");
b0.EnumValue("BYTE");
b0.EnumValue("SHORT");
b0.EnumValue("INT");
b0.EnumValue("LONG");
b0.EnumValue("FLOAT");
b0.EnumValue("DOUBLE");
b0.EnumValue("CHAR");
b0.EnumValue("STRING");
b0._EnumValues();
b0._EnumEntity();
b0.EnumEntity_();
b0.EntityModifiers_(0);
b0._EntityModifiers();
b0.SimpleName("VariableValue");
b0.Types_(0);
b0._Types();
b0.EnumValues_(4);
b0.EnumValue("NOT_SELECTED");
b0.EnumValue("SELECTED");
b0.EnumValue("EXCLUDED");
b0.EnumValue("REQUIRED");
b0._EnumValues();
b0._EnumEntity();
b0.SimpleEntity_();
b0.EntityModifiers_(1);
b0.EntityModifier("abstract");
b0._EntityModifiers();
b0.SimpleName("Value");
b0.Types_(0);
b0._Types();
b0.Features_(0);
b0._Features();
b0._SimpleEntity();
b0.DataEntity_();
b0.EntityModifiers_(0);
b0._EntityModifiers();
b0.SimpleName("BooleanValue");
b0.Types_(1);
b0.SimpleName("Value");
b0._Types();
b0.DataType("boolean");
b0._DataEntity();
b0.DataEntity_();
b0.EntityModifiers_(0);
b0._EntityModifiers();
b0.SimpleName("ByteValue");
b0.Types_(1);
b0.SimpleName("Value");
b0._Types();
b0.DataType("byte");
b0._DataEntity();
b0.DataEntity_();
b0.EntityModifiers_(0);
b0._EntityModifiers();
b0.SimpleName("ShortValue");
b0.Types_(1);
b0.SimpleName("Value");
b0._Types();
b0.DataType("short");
b0._DataEntity();
b0.DataEntity_();
b0.EntityModifiers_(0);
b0._EntityModifiers();
b0.SimpleName("IntValue");
b0.Types_(1);
b0.SimpleName("Value");
b0._Types();
b0.DataType("int");
b0._DataEntity();
b0.DataEntity_();
b0.EntityModifiers_(0);
b0._EntityModifiers();
b0.SimpleName("LongValue");
b0.Types_(1);
b0.SimpleName("Value");
b0._Types();
b0.DataType("long");
b0._DataEntity();
b0.DataEntity_();
b0.EntityModifiers_(0);
b0._EntityModifiers();
b0.SimpleName("FloatValue");
b0.Types_(1);
b0.SimpleName("Value");
b0._Types();
b0.DataType("float");
b0._DataEntity();
b0.DataEntity_();
b0.EntityModifiers_(0);
b0._EntityModifiers();
b0.SimpleName("DoubleValue");
b0.Types_(1);
b0.SimpleName("Value");
b0._Types();
b0.DataType("double");
b0._DataEntity();
b0.DataEntity_();
b0.EntityModifiers_(0);
b0._EntityModifiers();
b0.SimpleName("CharValue");
b0.Types_(1);
b0.SimpleName("Value");
b0._Types();
b0.DataType("char");
b0._DataEntity();
b0.DataEntity_();
b0.EntityModifiers_(0);
b0._EntityModifiers();
b0.SimpleName("StringValue");
b0.Types_(1);
b0.SimpleName("Value");
b0._Types();
b0.DataType("String");
b0._DataEntity();
b0.CompositeEntity_();
b0.EntityModifiers_(0);
b0._EntityModifiers();
b0.SimpleName("Annotations");
b0.Types_(0);
b0._Types();
b0.ComponentModifiers_(1);
b0.ComponentModifier("ordered");
b0._ComponentModifiers();
b0.SimpleName("Annotation");
b0._CompositeEntity();
b0.SimpleEntity_();
b0.EntityModifiers_(1);
b0.EntityModifier("abstract");
b0._EntityModifiers();
b0.SimpleName("Annotation");
b0.Types_(0);
b0._Types();
b0.Features_(0);
b0._Features();
b0._SimpleEntity();
b0.DataEntity_();
b0.EntityModifiers_(0);
b0._EntityModifiers();
b0.SimpleName("Description");
b0.Types_(1);
b0.SimpleName("Annotation");
b0._Types();
b0.DataType("String");
b0._DataEntity();
b0.CompositeEntity_();
b0.EntityModifiers_(0);
b0._EntityModifiers();
b0.SimpleName("Categories");
b0.Types_(1);
b0.SimpleName("Annotation");
b0._Types();
b0.ComponentModifiers_(1);
b0.ComponentModifier("ordered");
b0._ComponentModifiers();
b0.SimpleName("Name");
b0._CompositeEntity();
b0.CompositeEntity_();
b0.EntityModifiers_(0);
b0._EntityModifiers();
b0.SimpleName("Stakeholders");
b0.Types_(1);
b0.SimpleName("Annotation");
b0._Types();
b0.ComponentModifiers_(1);
b0.ComponentModifier("ordered");
b0._ComponentModifiers();
b0.SimpleName("Name");
b0._CompositeEntity();
b0.DataEntity_();
b0.EntityModifiers_(0);
b0._EntityModifiers();
b0.SimpleName("Priority");
b0.Types_(1);
b0.SimpleName("Annotation");
b0._Types();
b0.DataType("int");
b0._DataEntity();
b0.EnumEntity_();
b0.EntityModifiers_(0);
b0._EntityModifiers();
b0.SimpleName("BindingTime");
b0.Types_(1);
b0.SimpleName("Annotation");
b0._Types();
b0.EnumValues_(2);
b0.EnumValue("USE_TIME");
b0.EnumValue("REUSE_TIME");
b0._EnumValues();
b0._EnumEntity();
b0.SimpleEntity_();
b0.EntityModifiers_(0);
b0._EntityModifiers();
b0.SimpleName("CustomAnnotation");
b0.Types_(1);
b0.SimpleName("Annotation");
b0._Types();
b0.Features_(2);
b0.Feature_();
b0.FeatureModifiers_(0);
b0._FeatureModifiers();
b0.SimpleName("Name");
b0.SimpleName("name");
b0._Feature();
b0.Feature_();
b0.FeatureModifiers_(0);
b0._FeatureModifiers();
b0.SimpleName("Value");
b0.SimpleName("value");
b0._Feature();
b0._Features();
b0._SimpleEntity();
b0.CompositeEntity_();
b0.EntityModifiers_(0);
b0._EntityModifiers();
b0.SimpleName("Constraints");
b0.Types_(0);
b0._Types();
b0.ComponentModifiers_(0);
b0._ComponentModifiers();
b0.SimpleName("Constraint");
b0._CompositeEntity();
b0.SimpleEntity_();
b0.EntityModifiers_(1);
b0.EntityModifier("abstract");
b0._EntityModifiers();
b0.SimpleName("Constraint");
b0.Types_(0);
b0._Types();
b0.Features_(0);
b0._Features();
b0._SimpleEntity();
b0.SimpleEntity_();
b0.EntityModifiers_(0);
b0._EntityModifiers();
b0.SimpleName("Require");
b0.Types_(1);
b0.SimpleName("Constraint");
b0._Types();
b0.Features_(2);
b0.Feature_();
b0.FeatureModifiers_(0);
b0._FeatureModifiers();
b0.SimpleName("FeaturePath");
b0.SimpleName("feature");
b0._Feature();
b0.Feature_();
b0.FeatureModifiers_(0);
b0._FeatureModifiers();
b0.SimpleName("FeaturePaths");
b0.SimpleName("requiredFeatures");
b0._Feature();
b0._Features();
b0._SimpleEntity();
b0.SimpleEntity_();
b0.EntityModifiers_(0);
b0._EntityModifiers();
b0.SimpleName("Exclude");
b0.Types_(1);
b0.SimpleName("Constraint");
b0._Types();
b0.Features_(2);
b0.Feature_();
b0.FeatureModifiers_(0);
b0._FeatureModifiers();
b0.SimpleName("FeaturePath");
b0.SimpleName("feature");
b0._Feature();
b0.Feature_();
b0.FeatureModifiers_(0);
b0._FeatureModifiers();
b0.SimpleName("FeaturePaths");
b0.SimpleName("excludedFeatures");
b0._Feature();
b0._Features();
b0._SimpleEntity();
b0.CompositeEntity_();
b0.EntityModifiers_(0);
b0._EntityModifiers();
b0.SimpleName("FeaturePaths");
b0.Types_(0);
b0._Types();
b0.ComponentModifiers_(0);
b0._ComponentModifiers();
b0.SimpleName("FeaturePath");
b0._CompositeEntity();
b0.CompositeEntity_();
b0.EntityModifiers_(0);
b0._EntityModifiers();
b0.SimpleName("MutuallyRequire");
b0.Types_(1);
b0.SimpleName("Constraint");
b0._Types();
b0.ComponentModifiers_(0);
b0._ComponentModifiers();
b0.SimpleName("FeaturePath");
b0._CompositeEntity();
b0.CompositeEntity_();
b0.EntityModifiers_(0);
b0._EntityModifiers();
b0.SimpleName("MutuallyExclude");
b0.Types_(1);
b0.SimpleName("Constraint");
b0._Types();
b0.ComponentModifiers_(0);
b0._ComponentModifiers();
b0.SimpleName("FeaturePath");
b0._CompositeEntity();
b0.SimpleEntity_();
b0.EntityModifiers_(0);
b0._EntityModifiers();
b0.SimpleName("FeaturePath");
b0.Types_(0);
b0._Types();
b0.Features_(3);
b0.Feature_();
b0.FeatureModifiers_(1);
b0.FeatureModifier("optional");
b0._FeatureModifiers();
b0.SimpleName("FeaturePath");
b0.SimpleName("context");
b0._Feature();
b0.Feature_();
b0.FeatureModifiers_(0);
b0._FeatureModifiers();
b0.SimpleName("Distance");
b0.SimpleName("distance");
b0._Feature();
b0.Feature_();
b0.FeatureModifiers_(0);
b0._FeatureModifiers();
b0.SimpleName("Name");
b0.SimpleName("feature");
b0._Feature();
b0._Features();
b0._SimpleEntity();
b0.EnumEntity_();
b0.EntityModifiers_(0);
b0._EntityModifiers();
b0.SimpleName("Distance");
b0.Types_(0);
b0._Types();
b0.EnumValues_(2);
b0.EnumValue("PARENT");
b0.EnumValue("ANCESTOR");
b0._EnumValues();
b0._EnumEntity();
b0.DataEntity_();
b0.EntityModifiers_(0);
b0._EntityModifiers();
b0.SimpleName("Name");
b0.Types_(0);
b0._Types();
b0.DataType("String");
b0._DataEntity();
b0.DataEntity_();
b0.EntityModifiers_(0);
b0._EntityModifiers();
b0.SimpleName("Version");
b0.Types_(0);
b0._Types();
b0.DataType("String");
b0._DataEntity();
b0.DataEntity_();
b0.EntityModifiers_(0);
b0._EntityModifiers();
b0.SimpleName("URI");
b0.Types_(0);
b0._Types();
b0.DataType("String");
b0._DataEntity();
b0.SimpleEntity_();
b0.EntityModifiers_(0);
b0._EntityModifiers();
b0.SimpleName("Cardinality");
b0.Types_(0);
b0._Types();
b0.Features_(2);
b0.Feature_();
b0.FeatureModifiers_(0);
b0._FeatureModifiers();
b0.SimpleName("IntValue");
b0.SimpleName("min");
b0._Feature();
b0.Feature_();
b0.FeatureModifiers_(1);
b0.FeatureModifier("optional");
b0._FeatureModifiers();
b0.SimpleName("IntValue");
b0.SimpleName("max");
b0._Feature();
b0._Features();
b0._SimpleEntity();
b0._ModelDeclarations();
b0.Namespace("org.whole.lang.featuremodel");
org.whole.lang.commons.builders.ICommonsBuilder b1 = (org.whole.lang.commons.builders.ICommonsBuilder) op.wGetBuilder(org.whole.lang.commons.reflect.CommonsLanguageKit.URI);
b1.Resolver();
b0.URI("http://lang.whole.org/FeatureModel");
b0._Model();
}
}