package jetbrains.mps.lang.test.plugin; /*Generated by MPS */ import jetbrains.mps.smodel.structure.Extension; import jetbrains.mps.smodel.language.LanguageAspectDescriptor; import jetbrains.mps.aspects.OrderParticipant; import org.jetbrains.annotations.NotNull; import java.util.Collection; import org.jetbrains.mps.openapi.model.SModel; import org.jetbrains.mps.openapi.module.SModule; import jetbrains.mps.smodel.Language; import java.util.Collections; import jetbrains.mps.internal.collections.runtime.Sequence; import jetbrains.mps.internal.collections.runtime.IWhereFilter; import org.jetbrains.mps.openapi.language.SLanguage; import jetbrains.mps.internal.collections.runtime.ListSequence; import java.util.ArrayList; import jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory; import org.jetbrains.annotations.Nullable; import jetbrains.mps.smodel.language.LanguageAspectGenerator; import jetbrains.mps.smodel.runtime.IconResource; import jetbrains.mps.aspects.OrderDescriptor; import jetbrains.mps.internal.collections.runtime.CollectionSequence; import org.jetbrains.mps.openapi.persistence.ModelRoot; import jetbrains.mps.project.SModuleOperations; public class LanguageAspectsEP_extension extends Extension.Default<LanguageAspectDescriptor> { public LanguageAspectsEP_extension() { super("jetbrains.mps.lang.aspect.LanguageAspectsEP"); } public LanguageAspectDescriptor get() { return new LanguageAspectDescriptor() { public String getPresentableAspectName() { return "test"; } @Override public String getId() { return getPresentableAspectName(); } @Override public int compareTo(OrderParticipant<String> other) { return myOrderConstraints.compare(this.getId(), other.getId()); } @NotNull public Collection<SModel> getAspectModels(final SModule language) { if (!((language instanceof Language))) { return Collections.emptyList(); } Iterable<SModel> allModels = language.getModels(); return Sequence.fromIterable(allModels).where(new IWhereFilter<SModel>() { public boolean accept(SModel it) { String fullName = it.getModelName(); return eq_ecu8yf_a0b0a0a0a0a0c0d0a0a0b(fullName, language.getModuleName() + "." + getPresentableAspectName()); } }).ofType(SModel.class).toListSequence(); } @NotNull public Collection<SLanguage> getMainLanguages() { return ListSequence.fromListAndArray(new ArrayList<SLanguage>(), MetaAdapterFactory.getLanguage(0x8585453e6bfb4d80L, 0x98deb16074f1d86cL, "jetbrains.mps.lang.test")); } @Nullable public LanguageAspectGenerator getGenerator() { return null; } @Nullable public IconResource getIconResource() { return IconContainer.RESOURCE_a0a6a0a0a1; } @Nullable public String getHelpUrl() { return "http://confluence.jetbrains.com/display/MPSD20171/Language+tests+language#Languagetestslanguage-introduction"; } private OrderDescriptor myOrderConstraints = new test_Order(); public boolean canCreate(SModule language) { return CollectionSequence.fromCollection(getAspectModels(language)).isEmpty(); } public void create(SModule language) { Language l = ((Language) language); SModel structureModel = l.getStructureModelDescriptor(); ModelRoot modelRoot; if (structureModel == null) { modelRoot = l.getModelRoots().iterator().next(); } else { modelRoot = structureModel.getModelRoot(); } SModuleOperations.createModelWithAdjustments(l.getModuleName() + '.' + getPresentableAspectName(), modelRoot); } }; } private static boolean eq_ecu8yf_a0b0a0a0a0a0c0d0a0a0b(Object a, Object b) { return (a != null ? a.equals(b) : a == b); } }