package jetbrains.mps.samples.KajaAndOr.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 myConceptAnd = createDescriptorForAnd();
/*package*/ final ConceptDescriptor myConceptLogicalOperator = createDescriptorForLogicalOperator();
/*package*/ final ConceptDescriptor myConceptOr = createDescriptorForOr();
private final LanguageConceptSwitch myConceptIndex;
public StructureAspectDescriptor() {
myConceptIndex = new LanguageConceptSwitch();
}
@Override
public Collection<ConceptDescriptor> getDescriptors() {
return Arrays.asList(myConceptAnd, myConceptLogicalOperator, myConceptOr);
}
@Override
@Nullable
public ConceptDescriptor getDescriptor(SConceptId id) {
switch (myConceptIndex.index(id)) {
case LanguageConceptSwitch.And:
return myConceptAnd;
case LanguageConceptSwitch.LogicalOperator:
return myConceptLogicalOperator;
case LanguageConceptSwitch.Or:
return myConceptOr;
default:
return null;
}
}
/*package*/ int internalIndex(SAbstractConcept c) {
return myConceptIndex.index(c);
}
private static ConceptDescriptor createDescriptorForAnd() {
ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("jetbrains.mps.samples.KajaAndOr", "And", 0x44306fd2ef944b56L, 0x9806d9ab509536dbL, 0x1a6f404e630a460aL);
b.class_(false, false, false);
b.super_("jetbrains.mps.samples.KajaAndOr.structure.LogicalOperator", 0x44306fd2ef944b56L, 0x9806d9ab509536dbL, 0x1a6f404e630a46d9L);
b.origin("r:d3eab93d-0231-40c7-b095-39bdf7a89e92(jetbrains.mps.samples.KajaAndOr.structure)/1904811872814253578");
b.alias("and");
return b.create();
}
private static ConceptDescriptor createDescriptorForLogicalOperator() {
ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("jetbrains.mps.samples.KajaAndOr", "LogicalOperator", 0x44306fd2ef944b56L, 0x9806d9ab509536dbL, 0x1a6f404e630a46d9L);
b.class_(false, true, false);
b.super_("jetbrains.mps.samples.Kaja.structure.LogicalExpression", 0x49a08c51fe543ccL, 0xbd998b46d641d7f5L, 0x2de971c785ec9fc1L);
b.parent(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x19796fa16a19888bL);
b.origin("r:d3eab93d-0231-40c7-b095-39bdf7a89e92(jetbrains.mps.samples.KajaAndOr.structure)/1904811872814253785");
b.aggregate("left", 0x1a6f404e630a460cL).target(0x49a08c51fe543ccL, 0xbd998b46d641d7f5L, 0x2de971c785ec9fc1L).optional(false).ordered(true).multiple(false).origin("1904811872814253580").done();
b.aggregate("right", 0x1a6f404e630a460dL).target(0x49a08c51fe543ccL, 0xbd998b46d641d7f5L, 0x2de971c785ec9fc1L).optional(false).ordered(true).multiple(false).origin("1904811872814253581").done();
return b.create();
}
private static ConceptDescriptor createDescriptorForOr() {
ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("jetbrains.mps.samples.KajaAndOr", "Or", 0x44306fd2ef944b56L, 0x9806d9ab509536dbL, 0x1a6f404e630a46bbL);
b.class_(false, false, false);
b.super_("jetbrains.mps.samples.KajaAndOr.structure.LogicalOperator", 0x44306fd2ef944b56L, 0x9806d9ab509536dbL, 0x1a6f404e630a46d9L);
b.origin("r:d3eab93d-0231-40c7-b095-39bdf7a89e92(jetbrains.mps.samples.KajaAndOr.structure)/1904811872814253755");
b.alias("or");
return b.create();
}
}