package MultiTarget.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 myConceptContainer = createDescriptorForContainer();
/*package*/ final ConceptDescriptor myConceptMember = createDescriptorForMember();
/*package*/ final ConceptDescriptor myConceptNumericValue = createDescriptorForNumericValue();
/*package*/ final ConceptDescriptor myConceptStringValue = createDescriptorForStringValue();
private final LanguageConceptSwitch myConceptIndex;
public StructureAspectDescriptor() {
myConceptIndex = new LanguageConceptSwitch();
}
@Override
public Collection<ConceptDescriptor> getDescriptors() {
return Arrays.asList(myConceptContainer, myConceptMember, myConceptNumericValue, myConceptStringValue);
}
@Override
@Nullable
public ConceptDescriptor getDescriptor(SConceptId id) {
switch (myConceptIndex.index(id)) {
case LanguageConceptSwitch.Container:
return myConceptContainer;
case LanguageConceptSwitch.Member:
return myConceptMember;
case LanguageConceptSwitch.NumericValue:
return myConceptNumericValue;
case LanguageConceptSwitch.StringValue:
return myConceptStringValue;
default:
return null;
}
}
/*package*/ int internalIndex(SAbstractConcept c) {
return myConceptIndex.index(c);
}
private static ConceptDescriptor createDescriptorForContainer() {
ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("MultiTarget", "Container", 0x42cb30372cd244e7L, 0x8fe7254f0c50f311L, 0xbd2fe10cbfadf1dL);
b.class_(false, false, true);
b.parent(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x110396eaaa4L);
b.origin("r:9f12744a-a702-440b-b5fb-61597de1c627(MultiTarget.structure)/852022627621592861");
b.aggregate("members", 0xbd2fe10cbfadf21L).target(0x42cb30372cd244e7L, 0x8fe7254f0c50f311L, 0xbd2fe10cbfadf20L).optional(true).ordered(true).multiple(true).origin("852022627621592865").done();
b.alias("container");
return b.create();
}
private static ConceptDescriptor createDescriptorForMember() {
ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("MultiTarget", "Member", 0x42cb30372cd244e7L, 0x8fe7254f0c50f311L, 0xbd2fe10cbfadf20L);
b.class_(false, true, false);
b.origin("r:9f12744a-a702-440b-b5fb-61597de1c627(MultiTarget.structure)/852022627621592864");
return b.create();
}
private static ConceptDescriptor createDescriptorForNumericValue() {
ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("MultiTarget", "NumericValue", 0x42cb30372cd244e7L, 0x8fe7254f0c50f311L, 0xbd2fe10cbfadf8dL);
b.class_(false, false, false);
b.super_("MultiTarget.structure.Member", 0x42cb30372cd244e7L, 0x8fe7254f0c50f311L, 0xbd2fe10cbfadf20L);
b.origin("r:9f12744a-a702-440b-b5fb-61597de1c627(MultiTarget.structure)/852022627621592973");
b.prop("value", 0xbd2fe10cbfadf8eL, "852022627621592974");
b.alias("numeric value");
return b.create();
}
private static ConceptDescriptor createDescriptorForStringValue() {
ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("MultiTarget", "StringValue", 0x42cb30372cd244e7L, 0x8fe7254f0c50f311L, 0xbd2fe10cbfadf5fL);
b.class_(false, false, false);
b.super_("MultiTarget.structure.Member", 0x42cb30372cd244e7L, 0x8fe7254f0c50f311L, 0xbd2fe10cbfadf20L);
b.origin("r:9f12744a-a702-440b-b5fb-61597de1c627(MultiTarget.structure)/852022627621592927");
b.prop("value", 0xbd2fe10cbfadf60L, "852022627621592928");
b.alias("string value");
return b.create();
}
}