package jetbrains.mps.lang.smodelTests.structure;
/*Generated by MPS */
import jetbrains.mps.smodel.runtime.BaseStructureAspectDescriptor;
import jetbrains.mps.smodel.runtime.ConceptDescriptor;
import java.util.Collection;
import java.util.Arrays;
import org.jetbrains.annotations.Nullable;
import jetbrains.mps.smodel.adapter.ids.SConceptId;
import org.jetbrains.mps.openapi.language.SAbstractConcept;
import jetbrains.mps.smodel.runtime.impl.ConceptDescriptorBuilder2;
public class StructureAspectDescriptor extends BaseStructureAspectDescriptor {
/*package*/ final ConceptDescriptor myConceptChild = createDescriptorForChild();
/*package*/ final ConceptDescriptor myConceptChildSubConcept = createDescriptorForChildSubConcept();
/*package*/ final ConceptDescriptor myConceptGrandChild = createDescriptorForGrandChild();
/*package*/ final ConceptDescriptor myConceptReferenceContainer = createDescriptorForReferenceContainer();
/*package*/ final ConceptDescriptor myConceptReferenceContainerSubConcept = createDescriptorForReferenceContainerSubConcept();
/*package*/ final ConceptDescriptor myConceptRoot = createDescriptorForRoot();
private final LanguageConceptSwitch myConceptIndex;
public StructureAspectDescriptor() {
myConceptIndex = new LanguageConceptSwitch();
}
@Override
public Collection<ConceptDescriptor> getDescriptors() {
return Arrays.asList(myConceptChild, myConceptChildSubConcept, myConceptGrandChild, myConceptReferenceContainer, myConceptReferenceContainerSubConcept, myConceptRoot);
}
@Override
@Nullable
public ConceptDescriptor getDescriptor(SConceptId id) {
switch (myConceptIndex.index(id)) {
case LanguageConceptSwitch.Child:
return myConceptChild;
case LanguageConceptSwitch.ChildSubConcept:
return myConceptChildSubConcept;
case LanguageConceptSwitch.GrandChild:
return myConceptGrandChild;
case LanguageConceptSwitch.ReferenceContainer:
return myConceptReferenceContainer;
case LanguageConceptSwitch.ReferenceContainerSubConcept:
return myConceptReferenceContainerSubConcept;
case LanguageConceptSwitch.Root:
return myConceptRoot;
default:
return null;
}
}
/*package*/ int internalIndex(SAbstractConcept c) {
return myConceptIndex.index(c);
}
private static ConceptDescriptor createDescriptorForChild() {
ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("jetbrains.mps.lang.smodelTests", "Child", 0xb02ae39f4c164545L, 0x8dfa88df16804e7eL, 0x3dd540b968e9fbfL);
b.class_(false, false, false);
b.parent(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x110396eaaa4L);
b.origin("r:43b4d418-d4ca-4d97-ab07-31e4f3ddb3e5(jetbrains.mps.lang.smodelTests.structure)/278471160714141631");
b.aggregate("grandChild_0_1", 0x3dd540b968e9fc0L).target(0xb02ae39f4c164545L, 0x8dfa88df16804e7eL, 0x3dd540b968e9fc4L).optional(true).ordered(true).multiple(false).origin("278471160714141632").done();
b.aggregate("grandChild_1", 0x3dd540b968e9fc1L).target(0xb02ae39f4c164545L, 0x8dfa88df16804e7eL, 0x3dd540b968e9fc4L).optional(false).ordered(true).multiple(false).origin("278471160714141633").done();
b.aggregate("grandChild_0_n", 0x3dd540b968e9fc2L).target(0xb02ae39f4c164545L, 0x8dfa88df16804e7eL, 0x3dd540b968e9fc4L).optional(true).ordered(true).multiple(true).origin("278471160714141634").done();
b.aggregate("grandChild_1_n", 0x3dd540b968e9fc3L).target(0xb02ae39f4c164545L, 0x8dfa88df16804e7eL, 0x3dd540b968e9fc4L).optional(false).ordered(true).multiple(true).origin("278471160714141635").done();
return b.create();
}
private static ConceptDescriptor createDescriptorForChildSubConcept() {
ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("jetbrains.mps.lang.smodelTests", "ChildSubConcept", 0xb02ae39f4c164545L, 0x8dfa88df16804e7eL, 0x7a02788de4ab4dL);
b.class_(false, false, false);
b.super_("jetbrains.mps.lang.smodelTests.structure.Child", 0xb02ae39f4c164545L, 0x8dfa88df16804e7eL, 0x3dd540b968e9fbfL);
b.origin("r:43b4d418-d4ca-4d97-ab07-31e4f3ddb3e5(jetbrains.mps.lang.smodelTests.structure)/34342663958604621");
return b.create();
}
private static ConceptDescriptor createDescriptorForGrandChild() {
ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("jetbrains.mps.lang.smodelTests", "GrandChild", 0xb02ae39f4c164545L, 0x8dfa88df16804e7eL, 0x3dd540b968e9fc4L);
b.class_(false, false, false);
b.origin("r:43b4d418-d4ca-4d97-ab07-31e4f3ddb3e5(jetbrains.mps.lang.smodelTests.structure)/278471160714141636");
return b.create();
}
private static ConceptDescriptor createDescriptorForReferenceContainer() {
ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("jetbrains.mps.lang.smodelTests", "ReferenceContainer", 0xb02ae39f4c164545L, 0x8dfa88df16804e7eL, 0x798c0d67da965ac6L);
b.class_(false, false, false);
b.parent(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x2f16f1b357e19f42L);
b.origin("r:43b4d418-d4ca-4d97-ab07-31e4f3ddb3e5(jetbrains.mps.lang.smodelTests.structure)/8758390115028851398");
b.associate("root", 0x798c0d67da965ac7L).target(0xb02ae39f4c164545L, 0x8dfa88df16804e7eL, 0x3dd540b968e9fc5L).optional(false).origin("8758390115028851399").done();
b.associate("leftChild", 0x798c0d67da965ac8L).target(0xb02ae39f4c164545L, 0x8dfa88df16804e7eL, 0x3dd540b968e9fbfL).optional(true).origin("8758390115028851400").done();
b.associate("rightChild", 0x798c0d67da965ac9L).target(0xb02ae39f4c164545L, 0x8dfa88df16804e7eL, 0x3dd540b968e9fbfL).optional(true).origin("8758390115028851401").done();
return b.create();
}
private static ConceptDescriptor createDescriptorForReferenceContainerSubConcept() {
ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("jetbrains.mps.lang.smodelTests", "ReferenceContainerSubConcept", 0xb02ae39f4c164545L, 0x8dfa88df16804e7eL, 0x279bb63b8ca8b7feL);
b.class_(false, false, false);
b.super_("jetbrains.mps.lang.smodelTests.structure.ReferenceContainer", 0xb02ae39f4c164545L, 0x8dfa88df16804e7eL, 0x798c0d67da965ac6L);
b.origin("r:43b4d418-d4ca-4d97-ab07-31e4f3ddb3e5(jetbrains.mps.lang.smodelTests.structure)/2854075155748534270");
return b.create();
}
private static ConceptDescriptor createDescriptorForRoot() {
ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("jetbrains.mps.lang.smodelTests", "Root", 0xb02ae39f4c164545L, 0x8dfa88df16804e7eL, 0x3dd540b968e9fc5L);
b.class_(false, false, false);
b.parent(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x110396eaaa4L);
b.parent(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x2f16f1b357e19f42L);
b.origin("r:43b4d418-d4ca-4d97-ab07-31e4f3ddb3e5(jetbrains.mps.lang.smodelTests.structure)/278471160714141637");
b.aggregate("child_0_n", 0x3dd540b968e9fc6L).target(0xb02ae39f4c164545L, 0x8dfa88df16804e7eL, 0x3dd540b968e9fbfL).optional(true).ordered(true).multiple(true).origin("278471160714141638").done();
b.aggregate("child_1_n", 0x3dd540b968e9fc7L).target(0xb02ae39f4c164545L, 0x8dfa88df16804e7eL, 0x3dd540b968e9fbfL).optional(false).ordered(true).multiple(true).origin("278471160714141639").done();
b.aggregate("childSubConcept_0_n", 0x7a02788de4ab50L).target(0xb02ae39f4c164545L, 0x8dfa88df16804e7eL, 0x7a02788de4ab4dL).optional(true).ordered(true).multiple(true).origin("34342663958604624").done();
return b.create();
}
}