package jetbrains.mps.make.facets; /*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.smodel.resources.TResource; import java.util.stream.IntStream; import java.util.Collection; import org.jetbrains.mps.openapi.module.SModule; import jetbrains.mps.internal.collections.runtime.ISelector; import jetbrains.mps.classloading.ClassLoaderManager; import jetbrains.mps.make.script.IConfig; import java.util.Map; import jetbrains.mps.make.script.IPropertiesPool; public class ReloadClasses_Facet extends IFacet.Stub { private List<ITarget> targets = ListSequence.fromList(new ArrayList<ITarget>()); private IFacet.Name name = new IFacet.Name("jetbrains.mps.make.facets.ReloadClasses"); public ReloadClasses_Facet() { ListSequence.fromList(targets).addElement(new ReloadClasses_Facet.Target_reloadClasses()); } 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.JavaCompile"), 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 ReloadClasses_Facet.TargetProperties(); } public static class Target_reloadClasses implements ITargetEx2 { private static final ITarget.Name name = new ITarget.Name("jetbrains.mps.make.facets.ReloadClasses.reloadClasses"); public Target_reloadClasses() { } 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_i849au_a0a = null; final Iterable<TResource> input = (Iterable<TResource>) (Iterable) rawInput; progressMonitor.start("", IntStream.of(1000).sum()); switch (0) { case 0: final Collection<? extends SModule> toReload = Sequence.fromIterable(input).select(new ISelector<TResource, SModule>() { public SModule select(TResource it) { return it.module(); } }).distinct().toListSequence(); final ProgressMonitor subProgress_c0a0a = progressMonitor.subTask(1000); subProgress_c0a0a.start("Reloading classes", 1); // FIXME pass progressMonitor down to reloadModules monitor.getSession().getProject().getModelAccess().runWriteAction(new Runnable() { public void run() { ClassLoaderManager.getInstance().reloadModules(toReload); } }); subProgress_c0a0a.advance(1); subProgress_c0a0a.done(); default: progressMonitor.done(); return new IResult.SUCCESS(_output_i849au_a0a); } } }; } 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.make.facets.JavaCompile.compile"), new ITarget.Name("jetbrains.mps.make.facets.JavaCompile.auxCompile")}); } 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.make")}); } public ITarget.Name getName() { return name; } public boolean isOptional() { return true; } 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(TResource.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 300; } } public static class TargetProperties implements IPropertiesPersistence { public TargetProperties() { } public void storeValues(Map<String, String> store, IPropertiesPool properties) { } public void loadValues(Map<String, String> store, IPropertiesPool properties) { try { } catch (RuntimeException re) { } } } }