package jetbrains.mps.generator.test.crossmodel.entity.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 myConceptEntry = createDescriptorForEntry();
/*package*/ final ConceptDescriptor myConceptNodeA = createDescriptorForNodeA();
/*package*/ final ConceptDescriptor myConceptTrivialKeeper = createDescriptorForTrivialKeeper();
private final LanguageConceptSwitch myConceptIndex;
public StructureAspectDescriptor() {
myConceptIndex = new LanguageConceptSwitch();
}
@Override
public Collection<ConceptDescriptor> getDescriptors() {
return Arrays.asList(myConceptEntry, myConceptNodeA, myConceptTrivialKeeper);
}
@Override
@Nullable
public ConceptDescriptor getDescriptor(SConceptId id) {
switch (myConceptIndex.index(id)) {
case LanguageConceptSwitch.Entry:
return myConceptEntry;
case LanguageConceptSwitch.NodeA:
return myConceptNodeA;
case LanguageConceptSwitch.TrivialKeeper:
return myConceptTrivialKeeper;
default:
return null;
}
}
/*package*/ int internalIndex(SAbstractConcept c) {
return myConceptIndex.index(c);
}
private static ConceptDescriptor createDescriptorForEntry() {
ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("jetbrains.mps.generator.test.crossmodel.entity", "Entry", 0x4d14758c3ecb486dL, 0xb8c8ea5beb8ae408L, 0x3c70a9e3bda965f6L);
b.class_(false, false, false);
b.parent(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x110396eaaa4L);
b.origin("r:9b56ed90-436a-4093-aab2-2dfe5d09ce42(jetbrains.mps.generator.test.crossmodel.entity.structure)/4355167635271935478");
b.prop("kind", 0x3c70a9e3bda9ab7eL, "4355167635271953278");
b.associate("owner", 0x29afbc6cd33f5d6eL).target(0x4d14758c3ecb486dL, 0xb8c8ea5beb8ae408L, 0x3c70a9e3bda96463L).optional(false).origin("3003826652066045294").done();
b.associate("use1", 0x3c70a9e3bda9a808L).target(0x4d14758c3ecb486dL, 0xb8c8ea5beb8ae408L, 0x3c70a9e3bda965f6L).optional(true).origin("4355167635271952392").done();
b.associate("use2", 0x3c70a9e3bda9a80aL).target(0x4d14758c3ecb486dL, 0xb8c8ea5beb8ae408L, 0x3c70a9e3bda965f6L).optional(true).origin("4355167635271952394").done();
b.associate("use3", 0x3c70a9e3bda9a80dL).target(0x4d14758c3ecb486dL, 0xb8c8ea5beb8ae408L, 0x3c70a9e3bda965f6L).optional(true).origin("4355167635271952397").done();
return b.create();
}
private static ConceptDescriptor createDescriptorForNodeA() {
ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("jetbrains.mps.generator.test.crossmodel.entity", "NodeA", 0x4d14758c3ecb486dL, 0xb8c8ea5beb8ae408L, 0x3c70a9e3bda96463L);
b.class_(false, false, true);
b.parent(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x110396eaaa4L);
b.origin("r:9b56ed90-436a-4093-aab2-2dfe5d09ce42(jetbrains.mps.generator.test.crossmodel.entity.structure)/4355167635271935075");
b.aggregate("entries", 0x3c70a9e3bda9ab7cL).target(0x4d14758c3ecb486dL, 0xb8c8ea5beb8ae408L, 0x3c70a9e3bda965f6L).optional(true).ordered(true).multiple(true).origin("4355167635271953276").done();
return b.create();
}
private static ConceptDescriptor createDescriptorForTrivialKeeper() {
ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("jetbrains.mps.generator.test.crossmodel.entity", "TrivialKeeper", 0x4d14758c3ecb486dL, 0xb8c8ea5beb8ae408L, 0x7bb9ef7499a8e15dL);
b.class_(false, false, false);
b.origin("r:9b56ed90-436a-4093-aab2-2dfe5d09ce42(jetbrains.mps.generator.test.crossmodel.entity.structure)/8915420221429834077");
b.prop("string1", 0x7bb9ef7499a8e15eL, "8915420221429834078");
b.prop("string2", 0x7bb9ef7499a8e160L, "8915420221429834080");
b.prop("string3", 0x7bb9ef7499a8e163L, "8915420221429834083");
b.prop("int1", 0x7bb9ef7499a8e167L, "8915420221429834087");
b.prop("int2", 0x7bb9ef7499a8e16cL, "8915420221429834092");
b.prop("bool1", 0x7bb9ef7499a8e172L, "8915420221429834098");
b.prop("bool2", 0x7bb9ef7499a8e179L, "8915420221429834105");
return b.create();
}
}