package jetbrains.mps.lang.traceable.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 myConceptScopeConcept = createDescriptorForScopeConcept();
/*package*/ final ConceptDescriptor myConceptTraceableConcept = createDescriptorForTraceableConcept();
/*package*/ final ConceptDescriptor myConceptUnitConcept = createDescriptorForUnitConcept();
private final LanguageConceptSwitch myConceptIndex;
public StructureAspectDescriptor() {
myConceptIndex = new LanguageConceptSwitch();
}
@Override
public Collection<ConceptDescriptor> getDescriptors() {
return Arrays.asList(myConceptScopeConcept, myConceptTraceableConcept, myConceptUnitConcept);
}
@Override
@Nullable
public ConceptDescriptor getDescriptor(SConceptId id) {
switch (myConceptIndex.index(id)) {
case LanguageConceptSwitch.ScopeConcept:
return myConceptScopeConcept;
case LanguageConceptSwitch.TraceableConcept:
return myConceptTraceableConcept;
case LanguageConceptSwitch.UnitConcept:
return myConceptUnitConcept;
default:
return null;
}
}
/*package*/ int internalIndex(SAbstractConcept c) {
return myConceptIndex.index(c);
}
private static ConceptDescriptor createDescriptorForScopeConcept() {
ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("jetbrains.mps.lang.traceable", "ScopeConcept", 0x9ded098bad6a4657L, 0xbfd948636cfe8bc3L, 0x465516cf87c705a2L);
b.interface_();
b.origin("r:3b7ed80f-6cfd-45bc-b051-2f66c620dd27(jetbrains.mps.lang.traceable.structure)/5067982036267369890");
return b.create();
}
private static ConceptDescriptor createDescriptorForTraceableConcept() {
ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("jetbrains.mps.lang.traceable", "TraceableConcept", 0x9ded098bad6a4657L, 0xbfd948636cfe8bc3L, 0x465516cf87c705a3L);
b.interface_();
b.origin("r:3b7ed80f-6cfd-45bc-b051-2f66c620dd27(jetbrains.mps.lang.traceable.structure)/5067982036267369891");
return b.create();
}
private static ConceptDescriptor createDescriptorForUnitConcept() {
ConceptDescriptorBuilder2 b = new ConceptDescriptorBuilder2("jetbrains.mps.lang.traceable", "UnitConcept", 0x9ded098bad6a4657L, 0xbfd948636cfe8bc3L, 0x465516cf87c705a4L);
b.interface_();
b.origin("r:3b7ed80f-6cfd-45bc-b051-2f66c620dd27(jetbrains.mps.lang.traceable.structure)/5067982036267369892");
return b.create();
}
}