package jetbrains.mps.samples.highlevel.sampleLanguage.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 myConceptCar = createDescriptorForCar(); /*package*/ final ConceptDescriptor myConceptPerson = createDescriptorForPerson(); private final LanguageConceptSwitch myConceptIndex; public StructureAspectDescriptor() { myConceptIndex = new LanguageConceptSwitch(); } @Override public Collection<ConceptDescriptor> getDescriptors() { return Arrays.asList(myConceptCar, myConceptPerson); } @Override @Nullable public ConceptDescriptor getDescriptor(SConceptId id) { switch (myConceptIndex.index(id)) { case LanguageConceptSwitch.Car: return myConceptCar; case LanguageConceptSwitch.Person: return myConceptPerson; default: return null; } } /*package*/ int internalIndex(SAbstractConcept c) { return myConceptIndex.index(c); } private static ConceptDescriptor createDescriptorForCar() { ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("jetbrains.mps.samples.highlevel.sampleLanguage", "Car", 0x99aa3e0fa1624dc1L, 0xbcff2def4d654205L, 0x346ead2c08d7a618L); b.class_(false, false, true); b.prop("model", 0x346ead2c08d7a61dL); b.prop("year", 0x346ead2c08d7a61fL); return b.create(); } private static ConceptDescriptor createDescriptorForPerson() { ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("jetbrains.mps.samples.highlevel.sampleLanguage", "Person", 0x99aa3e0fa1624dc1L, 0xbcff2def4d654205L, 0x346ead2c08d7a611L); b.class_(false, false, true); b.prop("name", 0x346ead2c08d7a613L); b.prop("age", 0x346ead2c08d7a615L); return b.create(); } }