package jetbrains.mps.generator.test.xmodel.lang1.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 myConceptBean = createDescriptorForBean();
/*package*/ final ConceptDescriptor myConceptOperation = createDescriptorForOperation();
/*package*/ final ConceptDescriptor myConceptProperty = createDescriptorForProperty();
private final LanguageConceptSwitch myConceptIndex;
public StructureAspectDescriptor() {
myConceptIndex = new LanguageConceptSwitch();
}
@Override
public Collection<ConceptDescriptor> getDescriptors() {
return Arrays.asList(myConceptBean, myConceptOperation, myConceptProperty);
}
@Override
@Nullable
public ConceptDescriptor getDescriptor(SConceptId id) {
switch (myConceptIndex.index(id)) {
case LanguageConceptSwitch.Bean:
return myConceptBean;
case LanguageConceptSwitch.Operation:
return myConceptOperation;
case LanguageConceptSwitch.Property:
return myConceptProperty;
default:
return null;
}
}
/*package*/ int internalIndex(SAbstractConcept c) {
return myConceptIndex.index(c);
}
private static ConceptDescriptor createDescriptorForBean() {
ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("jetbrains.mps.generator.test.xmodel.lang1", "Bean", 0xb2d9d19b9a4747a4L, 0x93f40c9390001bf2L, 0x69baf85193127f4bL);
b.class_(false, false, true);
b.parent(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x110396eaaa4L);
b.origin("r:5bb332e4-50df-4f1b-a6f0-dc360c0111d5(jetbrains.mps.generator.test.xmodel.lang1.structure)/7618674748894117707");
b.aggregate("props", 0x69baf85193128b70L).target(0xb2d9d19b9a4747a4L, 0x93f40c9390001bf2L, 0x69baf85193127f4eL).optional(true).ordered(true).multiple(true).origin("7618674748894120816").done();
b.aggregate("ops", 0x69baf85193128b72L).target(0xb2d9d19b9a4747a4L, 0x93f40c9390001bf2L, 0x69baf85193127f51L).optional(true).ordered(true).multiple(true).origin("7618674748894120818").done();
return b.create();
}
private static ConceptDescriptor createDescriptorForOperation() {
ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("jetbrains.mps.generator.test.xmodel.lang1", "Operation", 0xb2d9d19b9a4747a4L, 0x93f40c9390001bf2L, 0x69baf85193127f51L);
b.class_(false, false, false);
b.origin("r:5bb332e4-50df-4f1b-a6f0-dc360c0111d5(jetbrains.mps.generator.test.xmodel.lang1.structure)/7618674748894117713");
b.prop("value", 0x69baf85193127f52L, "7618674748894117714");
b.associate("bean", 0x69baf85193128b75L).target(0xb2d9d19b9a4747a4L, 0x93f40c9390001bf2L, 0x69baf85193127f4bL).optional(false).origin("7618674748894120821").done();
b.associate("prop", 0x69baf85193128b7bL).target(0xb2d9d19b9a4747a4L, 0x93f40c9390001bf2L, 0x69baf85193127f4eL).optional(false).origin("7618674748894120827").done();
return b.create();
}
private static ConceptDescriptor createDescriptorForProperty() {
ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("jetbrains.mps.generator.test.xmodel.lang1", "Property", 0xb2d9d19b9a4747a4L, 0x93f40c9390001bf2L, 0x69baf85193127f4eL);
b.class_(false, false, false);
b.parent(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x110396eaaa4L);
b.origin("r:5bb332e4-50df-4f1b-a6f0-dc360c0111d5(jetbrains.mps.generator.test.xmodel.lang1.structure)/7618674748894117710");
return b.create();
}
}