package jetbrains.mps.lang.core.plugin; /*Generated by MPS */ import jetbrains.mps.make.facet.IFacet; import java.util.List; import jetbrains.mps.make.facet.ITarget; import jetbrains.mps.internal.collections.runtime.ListSequence; import java.util.ArrayList; import jetbrains.mps.internal.collections.runtime.Sequence; import jetbrains.mps.make.resources.IPropertiesPersistence; import jetbrains.mps.make.facet.ITargetEx2; import jetbrains.mps.make.script.IJob; import jetbrains.mps.make.script.IResult; import jetbrains.mps.make.resources.IResource; import jetbrains.mps.make.script.IJobMonitor; import jetbrains.mps.make.resources.IPropertiesAccessor; import org.jetbrains.annotations.NotNull; import org.jetbrains.mps.openapi.util.ProgressMonitor; import jetbrains.mps.make.script.IConfig; import jetbrains.mps.baseLanguage.tuples.runtime.Tuples; import jetbrains.mps.make.script.IPropertiesPool; import jetbrains.mps.baseLanguage.tuples.runtime.MultiTuple; import jetbrains.mps.make.MakeSession; import jetbrains.mps.generator.IModifiableGenerationSettings; import jetbrains.mps.generator.GenerationSettingsProvider; import jetbrains.mps.generator.GenerationOptions; import jetbrains.mps.generator.GenerationCacheContainer; import jetbrains.mps.smodel.structure.ExtensionPoint; import jetbrains.mps.generator.IncrementalGenerationStrategy; import jetbrains.mps.generator.impl.DefaultIncrementalStrategy; import jetbrains.mps.generator.impl.DefaultNonIncrementalStrategy; import jetbrains.mps.generator.DefaultGenerationParametersProvider; import jetbrains.mps.project.Project; import jetbrains.mps.generator.TransientModelsProvider; import jetbrains.mps.smodel.resources.CleanupActivityResource; import jetbrains.mps.make.script.IConfigMonitor; import jetbrains.mps.generator.ModelGenerationPlan; import jetbrains.mps.smodel.resources.MResource; import java.util.stream.IntStream; import jetbrains.mps.internal.collections.runtime.IVisitor; import org.jetbrains.mps.openapi.model.SModel; import jetbrains.mps.baseLanguage.closures.runtime.Wrappers; import java.util.Map; import org.jetbrains.mps.openapi.module.SModule; import jetbrains.mps.generator.GenPlanExtractor; import jetbrains.mps.generator.GenerationTaskRecorder; import jetbrains.mps.generator.GeneratorTask; import jetbrains.mps.messages.IMessageHandler; import org.jetbrains.mps.openapi.module.SRepository; import jetbrains.mps.smodel.ModelAccessHelper; import jetbrains.mps.util.Computable; import jetbrains.mps.generator.GeneratorTaskBase; import jetbrains.mps.generator.TransientModelsModule; import jetbrains.mps.generator.DefaultTaskBuilder; import jetbrains.mps.generator.GenerationFacade; import jetbrains.mps.cleanup.CleanupManager; import jetbrains.mps.generator.GenerationStatus; import jetbrains.mps.smodel.resources.GResource; import jetbrains.mps.internal.collections.runtime.MapSequence; public class Generate_Facet extends IFacet.Stub { private List<ITarget> targets = ListSequence.fromList(new ArrayList<ITarget>()); private IFacet.Name name = new IFacet.Name("jetbrains.mps.lang.core.Generate"); public Generate_Facet() { ListSequence.fromList(targets).addElement(new Generate_Facet.Target_checkParameters()); ListSequence.fromList(targets).addElement(new Generate_Facet.Target_configure()); ListSequence.fromList(targets).addElement(new Generate_Facet.Target_preloadModels()); ListSequence.fromList(targets).addElement(new Generate_Facet.Target_generate()); } public Iterable<ITarget> targets() { return targets; } public Iterable<IFacet.Name> optional() { return null; } public Iterable<IFacet.Name> required() { return Sequence.fromArray(new IFacet.Name[]{new IFacet.Name("jetbrains.mps.make.facets.Make")}); } public Iterable<IFacet.Name> extended() { return null; } public IFacet.Name getName() { return this.name; } public IPropertiesPersistence propertiesPersistence() { return new Generate_Facet.TargetProperties(); } public static class Target_checkParameters implements ITargetEx2 { private static final ITarget.Name name = new ITarget.Name("jetbrains.mps.lang.core.Generate.checkParameters"); public Target_checkParameters() { } public IJob createJob() { return new IJob.Stub() { @Override public IResult execute(final Iterable<IResource> rawInput, final IJobMonitor monitor, final IPropertiesAccessor pa, @NotNull final ProgressMonitor progressMonitor) { Iterable<IResource> _output_fi61u2_a0a = null; final Iterable<IResource> input = (Iterable) (Iterable) rawInput; switch (0) { case 0: // FIXME drop unused parameters once MPS 2017.2 is out if (vars(pa.global()).cleanMake() == null) { // FIXME is there true need to control clean of a generate task independent from MakeSession? vars(pa.global()).cleanMake(monitor.getSession().isCleanMake()); } default: progressMonitor.done(); return new IResult.SUCCESS(_output_fi61u2_a0a); } } }; } public IConfig createConfig() { return null; } public Iterable<ITarget.Name> notAfter() { return null; } public Iterable<ITarget.Name> after() { return null; } public Iterable<ITarget.Name> notBefore() { return null; } public Iterable<ITarget.Name> before() { return null; } public ITarget.Name getName() { return name; } public boolean isOptional() { return false; } public boolean requiresInput() { return false; } public boolean producesOutput() { return false; } public Iterable<Class<? extends IResource>> expectedInput() { List<Class<? extends IResource>> rv = ListSequence.fromList(new ArrayList<Class<? extends IResource>>()); return rv; } public Iterable<Class<? extends IResource>> expectedOutput() { return null; } public <T> T createParameters(Class<T> cls) { return cls.cast(new Variables()); } public <T> T createParameters(Class<T> cls, T copyFrom) { T t = createParameters(cls); if (t != null) { ((Tuples._2) t).assign((Tuples._2) copyFrom); } return t; } public int workEstimate() { return 10; } public static Generate_Facet.Target_checkParameters.Variables vars(IPropertiesPool ppool) { return ppool.properties(name, Generate_Facet.Target_checkParameters.Variables.class); } public static class Variables extends MultiTuple._2<MakeSession, Boolean> { public Variables() { super(); } public Variables(MakeSession unused1, Boolean cleanMake) { super(unused1, cleanMake); } public MakeSession unused1(MakeSession value) { return super._0(value); } public Boolean cleanMake(Boolean value) { return super._1(value); } public MakeSession unused1() { return super._0(); } public Boolean cleanMake() { return super._1(); } } } public static class Target_configure implements ITargetEx2 { private static final ITarget.Name name = new ITarget.Name("jetbrains.mps.lang.core.Generate.configure"); public Target_configure() { } public IJob createJob() { return new IJob.Stub() { @Override public IResult execute(final Iterable<IResource> rawInput, final IJobMonitor monitor, final IPropertiesAccessor pa, @NotNull final ProgressMonitor progressMonitor) { Iterable<IResource> _output_fi61u2_a0b = null; final Iterable<IResource> input = (Iterable) (Iterable) rawInput; switch (0) { case 0: IModifiableGenerationSettings settings = GenerationSettingsProvider.getInstance().getGenerationSettings(); if (vars(pa.global()).generationOptions() == null) { vars(pa.global()).generationOptions(GenerationOptions.fromSettings(settings)); } Iterable<GenerationCacheContainer> caches = new ExtensionPoint<GenerationCacheContainer>("jetbrains.mps.lang.core.GeneratorCache").getObjects(); GenerationCacheContainer cacheContainer = (Sequence.fromIterable(caches).isEmpty() ? null : Sequence.fromIterable(caches).first()); final IncrementalGenerationStrategy incrementalStrategy; if (settings.isIncremental()) { incrementalStrategy = new DefaultIncrementalStrategy((settings.isIncrementalUseCache() ? cacheContainer : null)); } else { incrementalStrategy = new DefaultNonIncrementalStrategy(); } vars(pa.global()).generationOptions().incremental(incrementalStrategy); vars(pa.global()).generationOptions().tracing(settings.getPerformanceTracingLevel()); vars(pa.global()).generationOptions().saveTransientModels(vars(pa.global()).saveTransient()).rebuildAll(Generate_Facet.Target_checkParameters.vars(pa.global()).cleanMake()).keepOutputModel(true); vars(pa.global()).parametersProvider(new DefaultGenerationParametersProvider()); vars(pa.global()).generationOptions().parameters(vars(pa.global()).parametersProvider()); Project mpsProject = monitor.getSession().getProject(); TransientModelsProvider tmc = mpsProject.getComponent(TransientModelsProvider.class); boolean ownTransientsProvider = tmc == null; vars(pa.global()).transientModelsProvider((ownTransientsProvider ? new TransientModelsProvider(mpsProject.getRepository(), null) : tmc)); vars(pa.global()).transientModelsProvider().removeAllTransient(); if (ownTransientsProvider) { _output_fi61u2_a0b = Sequence.fromIterable(_output_fi61u2_a0b).concat(Sequence.fromIterable(Sequence.<IResource>singleton(new CleanupActivityResource() { public String describe() { return "Dispose provider of transient models"; } public void run() { vars(pa.global()).transientModelsProvider().removeAllTransients(true); } }))); } return new IResult.SUCCESS(_output_fi61u2_a0b); default: progressMonitor.done(); return new IResult.SUCCESS(_output_fi61u2_a0b); } } }; } public IConfig createConfig() { return new IConfig.Stub() { @Override public boolean configure(final IConfigMonitor cmonitor, final IPropertiesAccessor pa) { switch (0) { case 0: IModifiableGenerationSettings settings = GenerationSettingsProvider.getInstance().getGenerationSettings(); vars(pa.global()).saveTransient(settings.isSaveTransientModels()); default: return true; } } }; } public Iterable<ITarget.Name> notAfter() { return null; } public Iterable<ITarget.Name> after() { return Sequence.fromArray(new ITarget.Name[]{new ITarget.Name("jetbrains.mps.lang.core.Generate.checkParameters")}); } public Iterable<ITarget.Name> notBefore() { return null; } public Iterable<ITarget.Name> before() { return null; } public ITarget.Name getName() { return name; } public boolean isOptional() { return false; } public boolean requiresInput() { return false; } public boolean producesOutput() { return false; } public Iterable<Class<? extends IResource>> expectedInput() { List<Class<? extends IResource>> rv = ListSequence.fromList(new ArrayList<Class<? extends IResource>>()); return rv; } public Iterable<Class<? extends IResource>> expectedOutput() { return null; } public <T> T createParameters(Class<T> cls) { return cls.cast(new Variables()); } public <T> T createParameters(Class<T> cls, T copyFrom) { T t = createParameters(cls); if (t != null) { ((Tuples._5) t).assign((Tuples._5) copyFrom); } return t; } public int workEstimate() { return 10; } public static Generate_Facet.Target_configure.Variables vars(IPropertiesPool ppool) { return ppool.properties(name, Generate_Facet.Target_configure.Variables.class); } public static class Variables extends MultiTuple._5<Boolean, GenerationOptions.OptionsBuilder, DefaultGenerationParametersProvider, TransientModelsProvider, ModelGenerationPlan> { public Variables() { super(); } public Variables(Boolean saveTransient, GenerationOptions.OptionsBuilder generationOptions, DefaultGenerationParametersProvider parametersProvider, TransientModelsProvider transientModelsProvider, ModelGenerationPlan customPlan) { super(saveTransient, generationOptions, parametersProvider, transientModelsProvider, customPlan); } public Boolean saveTransient(Boolean value) { return super._0(value); } public GenerationOptions.OptionsBuilder generationOptions(GenerationOptions.OptionsBuilder value) { return super._1(value); } public DefaultGenerationParametersProvider parametersProvider(DefaultGenerationParametersProvider value) { return super._2(value); } public TransientModelsProvider transientModelsProvider(TransientModelsProvider value) { return super._3(value); } public ModelGenerationPlan customPlan(ModelGenerationPlan value) { return super._4(value); } public Boolean saveTransient() { return super._0(); } public GenerationOptions.OptionsBuilder generationOptions() { return super._1(); } public DefaultGenerationParametersProvider parametersProvider() { return super._2(); } public TransientModelsProvider transientModelsProvider() { return super._3(); } public ModelGenerationPlan customPlan() { return super._4(); } } } public static class Target_preloadModels implements ITargetEx2 { private static final ITarget.Name name = new ITarget.Name("jetbrains.mps.lang.core.Generate.preloadModels"); public Target_preloadModels() { } public IJob createJob() { return new IJob.Stub() { @Override public IResult execute(final Iterable<IResource> rawInput, final IJobMonitor monitor, final IPropertiesAccessor pa, @NotNull final ProgressMonitor progressMonitor) { Iterable<IResource> _output_fi61u2_a0c = null; final Iterable<MResource> input = (Iterable<MResource>) (Iterable) rawInput; progressMonitor.start("", IntStream.of(1000).sum()); switch (0) { case 0: int work = Sequence.fromIterable(input).count() * 100; if (work == 0) { return new IResult.SUCCESS(_output_fi61u2_a0c); } final ProgressMonitor subProgress_c0a0c = progressMonitor.subTask(1000); subProgress_c0a0c.start("Pre-loading models", work); final Project project = monitor.getSession().getProject(); Sequence.fromIterable(input).visitAll(new IVisitor<MResource>() { public void visit(final MResource mod) { subProgress_c0a0c.advance(100); project.getModelAccess().runReadAction(new Runnable() { public void run() { Sequence.fromIterable(mod.models()).visitAll(new IVisitor<SModel>() { public void visit(SModel m) { m.load(); } }); } }); } }); subProgress_c0a0c.done(); _output_fi61u2_a0c = Sequence.fromIterable(_output_fi61u2_a0c).concat(Sequence.fromIterable(input)); default: progressMonitor.done(); return new IResult.SUCCESS(_output_fi61u2_a0c); } } }; } public IConfig createConfig() { return null; } public Iterable<ITarget.Name> notAfter() { return null; } public Iterable<ITarget.Name> after() { return Sequence.fromArray(new ITarget.Name[]{new ITarget.Name("jetbrains.mps.lang.core.Generate.configure")}); } public Iterable<ITarget.Name> notBefore() { return null; } public Iterable<ITarget.Name> before() { return Sequence.fromArray(new ITarget.Name[]{new ITarget.Name("jetbrains.mps.lang.core.Generate.generate")}); } public ITarget.Name getName() { return name; } public boolean isOptional() { return false; } public boolean requiresInput() { return true; } public boolean producesOutput() { return true; } public Iterable<Class<? extends IResource>> expectedInput() { List<Class<? extends IResource>> rv = ListSequence.fromList(new ArrayList<Class<? extends IResource>>()); ListSequence.fromList(rv).addElement(MResource.class); return rv; } public Iterable<Class<? extends IResource>> expectedOutput() { return null; } public <T> T createParameters(Class<T> cls) { return null; } public <T> T createParameters(Class<T> cls, T copyFrom) { T t = createParameters(cls); return t; } public int workEstimate() { return 400; } } public static class Target_generate implements ITargetEx2 { private static final ITarget.Name name = new ITarget.Name("jetbrains.mps.lang.core.Generate.generate"); public Target_generate() { } public IJob createJob() { return new IJob.Stub() { @Override public IResult execute(final Iterable<IResource> rawInput, final IJobMonitor monitor, final IPropertiesAccessor pa, @NotNull final ProgressMonitor progressMonitor) { Iterable<IResource> _output_fi61u2_a0d = null; final Iterable<MResource> input = (Iterable<MResource>) (Iterable) rawInput; switch (0) { case 0: final Wrappers._T<Map<SModule, Iterable<SModel>>> retainedModels = new Wrappers._T<Map<SModule, Iterable<SModel>>>(); final Project mpsProject = monitor.getSession().getProject(); mpsProject.getModelAccess().runReadAction(new Runnable() { public void run() { retainedModels.value = RetainedUtil.collectModelsToRetain(input); } }); if (Generate_Facet.Target_configure.vars(pa.global()).customPlan() == null) { mpsProject.getModelAccess().runReadAction(new Runnable() { public void run() { GenPlanExtractor planExtractor = new GenPlanExtractor(mpsProject.getRepository(), Generate_Facet.Target_configure.vars(pa.global()).generationOptions(), monitor.getSession().getMessageHandler()); for (MResource res : Sequence.fromIterable(input)) { for (SModel m : Sequence.fromIterable(res.models())) { planExtractor.configurePlanFor(m); } } } }); } final GenerationTaskRecorder<GeneratorTask> taskHandler = new GenerationTaskRecorder<GeneratorTask>(null); final IMessageHandler mh = monitor.getSession().getMessageHandler(); progressMonitor.start("Generating", 110); try { // in fact, transientsModuleRepo == mpsProject.getRepository, but I keep them separate to stress different lock scope final SRepository transientsModuleRepo = Generate_Facet.Target_configure.vars(pa.global()).transientModelsProvider().getRepository(); // XXX write is to tmm.createModule() and tmm.initCheckpointModule, although the moment transients live in a separate repository, we may // write-lock transients repository only, and read-lock the one with source models. final List<GeneratorTask> tasks = new ModelAccessHelper(transientsModuleRepo).runWriteAction(new Computable<List<GeneratorTask>>() { public List<GeneratorTask> compute() { Generate_Facet.Target_configure.vars(pa.global()).transientModelsProvider().initCheckpointModule(); GeneratorTask.Factory<GeneratorTask> factory = new GeneratorTask.Factory<GeneratorTask>() { public GeneratorTask create(SModel model) { return new GeneratorTaskBase(model); } }; ArrayList<GeneratorTask> rv = new ArrayList<GeneratorTask>(); for (MResource res : input) { final TransientModelsModule tm = Generate_Facet.Target_configure.vars(pa.global()).transientModelsProvider().createModule(res.module().getModuleName()); DefaultTaskBuilder<GeneratorTask> tb = new DefaultTaskBuilder<GeneratorTask>(factory); tb.addAll(Sequence.fromIterable(res.models()).toListSequence()); List<GeneratorTask> tasks = tb.getResult(); for (GeneratorTask t : tasks) { Generate_Facet.Target_configure.vars(pa.global()).transientModelsProvider().associate(t, tm); } rv.addAll(tasks); } return rv; } }); final SRepository projectRepo = mpsProject.getRepository(); projectRepo.getModelAccess().runReadAction(new Runnable() { public void run() { GenerationFacade genFacade = new GenerationFacade(projectRepo, Generate_Facet.Target_configure.vars(pa.global()).generationOptions().create()); genFacade.transients(Generate_Facet.Target_configure.vars(pa.global()).transientModelsProvider()).messages(mh).taskHandler(taskHandler); genFacade.process(progressMonitor.subTask(100), tasks); } }); transientsModuleRepo.getModelAccess().runWriteAction(new Runnable() { public void run() { Generate_Facet.Target_configure.vars(pa.global()).transientModelsProvider().publishAll(); } }); // XXX I have no idea if there's a reason to invoke cleanup right after transformation, just copied this code here from GenerationFacade // I'd remove listeners first, and then drop CM altogether CleanupManager.getInstance().cleanup(); for (GenerationStatus genStatus : taskHandler.getAllRecorded()) { if (!(genStatus.isOk())) { return new IResult.FAILURE(_output_fi61u2_a0d); } SModel inputModel = genStatus.getOriginalInputModel(); GResource data = new GResource(inputModel.getModule(), inputModel, MapSequence.fromMap(retainedModels.value).get(inputModel.getModule()), genStatus); _output_fi61u2_a0d = Sequence.fromIterable(_output_fi61u2_a0d).concat(Sequence.fromIterable(Sequence.<IResource>singleton(data))); } } finally { progressMonitor.done(); } if (!(Generate_Facet.Target_configure.vars(pa.global()).saveTransient())) { _output_fi61u2_a0d = Sequence.fromIterable(_output_fi61u2_a0d).concat(Sequence.fromIterable(Sequence.<IResource>singleton(new CleanupActivityResource() { public String describe() { return "Drop transient models"; } public void run() { Generate_Facet.Target_configure.vars(pa.global()).transientModelsProvider().removeAllTransient(); // XXX CleanupManager was there in TextGen's part of transient model removal // Since this is the only place to care about transient models now, moved cleanup() // here, despite being unsure whether it's needed at all or not. CleanupManager.getInstance().cleanup(); } }))); } default: progressMonitor.done(); return new IResult.SUCCESS(_output_fi61u2_a0d); } } }; } public IConfig createConfig() { return null; } public Iterable<ITarget.Name> notAfter() { return null; } public Iterable<ITarget.Name> after() { return Sequence.fromArray(new ITarget.Name[]{new ITarget.Name("jetbrains.mps.lang.core.Generate.configure")}); } public Iterable<ITarget.Name> notBefore() { return null; } public Iterable<ITarget.Name> before() { return Sequence.fromArray(new ITarget.Name[]{new ITarget.Name("jetbrains.mps.make.facets.Make.cleanup"), new ITarget.Name("jetbrains.mps.make.facets.Make.make")}); } public ITarget.Name getName() { return name; } public boolean isOptional() { return false; } public boolean requiresInput() { return true; } public boolean producesOutput() { return true; } public Iterable<Class<? extends IResource>> expectedInput() { List<Class<? extends IResource>> rv = ListSequence.fromList(new ArrayList<Class<? extends IResource>>()); ListSequence.fromList(rv).addElement(MResource.class); return rv; } public Iterable<Class<? extends IResource>> expectedOutput() { return null; } public <T> T createParameters(Class<T> cls) { return null; } public <T> T createParameters(Class<T> cls, T copyFrom) { T t = createParameters(cls); return t; } public int workEstimate() { return 5000; } } public static class TargetProperties implements IPropertiesPersistence { public TargetProperties() { } public void storeValues(Map<String, String> store, IPropertiesPool properties) { { ITarget.Name name = new ITarget.Name("jetbrains.mps.lang.core.Generate.checkParameters"); if (properties.hasProperties(name)) { Generate_Facet.Target_checkParameters.Variables props = properties.properties(name, Generate_Facet.Target_checkParameters.Variables.class); MapSequence.fromMap(store).put("jetbrains.mps.lang.core.Generate.checkParameters.unused1", null); MapSequence.fromMap(store).put("jetbrains.mps.lang.core.Generate.checkParameters.cleanMake", String.valueOf(props.cleanMake())); } } { ITarget.Name name = new ITarget.Name("jetbrains.mps.lang.core.Generate.configure"); if (properties.hasProperties(name)) { Generate_Facet.Target_configure.Variables props = properties.properties(name, Generate_Facet.Target_configure.Variables.class); MapSequence.fromMap(store).put("jetbrains.mps.lang.core.Generate.configure.saveTransient", String.valueOf(props.saveTransient())); MapSequence.fromMap(store).put("jetbrains.mps.lang.core.Generate.configure.generationOptions", null); MapSequence.fromMap(store).put("jetbrains.mps.lang.core.Generate.configure.parametersProvider", null); MapSequence.fromMap(store).put("jetbrains.mps.lang.core.Generate.configure.transientModelsProvider", null); MapSequence.fromMap(store).put("jetbrains.mps.lang.core.Generate.configure.customPlan", null); } } } public void loadValues(Map<String, String> store, IPropertiesPool properties) { try { { ITarget.Name name = new ITarget.Name("jetbrains.mps.lang.core.Generate.checkParameters"); Generate_Facet.Target_checkParameters.Variables props = properties.properties(name, Generate_Facet.Target_checkParameters.Variables.class); if (MapSequence.fromMap(store).containsKey("jetbrains.mps.lang.core.Generate.checkParameters.unused1")) { props.unused1(null); } if (MapSequence.fromMap(store).containsKey("jetbrains.mps.lang.core.Generate.checkParameters.cleanMake")) { props.cleanMake(Boolean.valueOf(MapSequence.fromMap(store).get("jetbrains.mps.lang.core.Generate.checkParameters.cleanMake"))); } } { ITarget.Name name = new ITarget.Name("jetbrains.mps.lang.core.Generate.configure"); Generate_Facet.Target_configure.Variables props = properties.properties(name, Generate_Facet.Target_configure.Variables.class); if (MapSequence.fromMap(store).containsKey("jetbrains.mps.lang.core.Generate.configure.saveTransient")) { props.saveTransient(Boolean.valueOf(MapSequence.fromMap(store).get("jetbrains.mps.lang.core.Generate.configure.saveTransient"))); } if (MapSequence.fromMap(store).containsKey("jetbrains.mps.lang.core.Generate.configure.generationOptions")) { props.generationOptions(null); } if (MapSequence.fromMap(store).containsKey("jetbrains.mps.lang.core.Generate.configure.parametersProvider")) { props.parametersProvider(null); } if (MapSequence.fromMap(store).containsKey("jetbrains.mps.lang.core.Generate.configure.transientModelsProvider")) { props.transientModelsProvider(null); } if (MapSequence.fromMap(store).containsKey("jetbrains.mps.lang.core.Generate.configure.customPlan")) { props.customPlan(null); } } } catch (RuntimeException re) { } } } }