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) {
}
}
}
}