package testCustomAnalyzer.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 myConceptOtherChild = createDescriptorForOtherChild();
/*package*/ final ConceptDescriptor myConceptOtherRoot = createDescriptorForOtherRoot();
/*package*/ final ConceptDescriptor myConceptOtherSubChild = createDescriptorForOtherSubChild();
/*package*/ final ConceptDescriptor myConceptRoot = createDescriptorForRoot();
private final LanguageConceptSwitch myConceptIndex;
public StructureAspectDescriptor() {
myConceptIndex = new LanguageConceptSwitch();
}
@Override
public Collection<ConceptDescriptor> getDescriptors() {
return Arrays.asList(myConceptChild, myConceptOtherChild, myConceptOtherRoot, myConceptOtherSubChild, myConceptRoot);
}
@Override
@Nullable
public ConceptDescriptor getDescriptor(SConceptId id) {
switch (myConceptIndex.index(id)) {
case LanguageConceptSwitch.Child:
return myConceptChild;
case LanguageConceptSwitch.OtherChild:
return myConceptOtherChild;
case LanguageConceptSwitch.OtherRoot:
return myConceptOtherRoot;
case LanguageConceptSwitch.OtherSubChild:
return myConceptOtherSubChild;
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("testCustomAnalyzer", "Child", 0xb124c25e1e164432L, 0xad5e0ac0ecae98f5L, 0x73a316f7f5468ed5L);
b.class_(false, false, false);
b.origin("r:c1c38648-eb71-424b-8ade-f463a1eb273d(testCustomAnalyzer.structure)/8332528989793324757");
return b.create();
}
private static ConceptDescriptor createDescriptorForOtherChild() {
ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("testCustomAnalyzer", "OtherChild", 0xb124c25e1e164432L, 0xad5e0ac0ecae98f5L, 0x623d57b40400d6bbL);
b.class_(false, false, false);
b.origin("r:c1c38648-eb71-424b-8ade-f463a1eb273d(testCustomAnalyzer.structure)/7078910619969181371");
b.aggregate("child", 0x623d57b40400d6faL).target(0xb124c25e1e164432L, 0xad5e0ac0ecae98f5L, 0x623d57b40400d6bcL).optional(true).ordered(true).multiple(false).origin("7078910619969181434").done();
return b.create();
}
private static ConceptDescriptor createDescriptorForOtherRoot() {
ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("testCustomAnalyzer", "OtherRoot", 0xb124c25e1e164432L, 0xad5e0ac0ecae98f5L, 0x623d57b40400d6baL);
b.class_(false, false, true);
b.origin("r:c1c38648-eb71-424b-8ade-f463a1eb273d(testCustomAnalyzer.structure)/7078910619969181370");
b.aggregate("child", 0x623d57b40400d6bdL).target(0xb124c25e1e164432L, 0xad5e0ac0ecae98f5L, 0x623d57b40400d6bbL).optional(true).ordered(true).multiple(true).origin("7078910619969181373").done();
return b.create();
}
private static ConceptDescriptor createDescriptorForOtherSubChild() {
ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("testCustomAnalyzer", "OtherSubChild", 0xb124c25e1e164432L, 0xad5e0ac0ecae98f5L, 0x623d57b40400d6bcL);
b.class_(false, false, false);
b.origin("r:c1c38648-eb71-424b-8ade-f463a1eb273d(testCustomAnalyzer.structure)/7078910619969181372");
return b.create();
}
private static ConceptDescriptor createDescriptorForRoot() {
ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("testCustomAnalyzer", "Root", 0xb124c25e1e164432L, 0xad5e0ac0ecae98f5L, 0x73a316f7f5468ed4L);
b.class_(false, false, true);
b.origin("r:c1c38648-eb71-424b-8ade-f463a1eb273d(testCustomAnalyzer.structure)/8332528989793324756");
b.prop("maxChildCount", 0x73a316f7f548c73dL, "8332528989793470269");
b.prop("initialCounter", 0x73a316f7f548c742L, "8332528989793470274");
b.aggregate("child", 0x73a316f7f5468ed6L).target(0xb124c25e1e164432L, 0xad5e0ac0ecae98f5L, 0x73a316f7f5468ed5L).optional(true).ordered(true).multiple(true).origin("8332528989793324758").done();
return b.create();
}
}