package de.ovgu.cide.typing.internal; import java.util.Collection; import java.util.List; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.WorkspaceJob; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import de.ovgu.cide.features.source.ColoredSourceFile; import de.ovgu.cide.typing.internal.manager.TypingExtensionManager; import de.ovgu.cide.typing.model.ITypingProvider; /** * type checks one or several files in the same project * * @author ckaestne * */ public class TypecheckFilesJob extends WorkspaceJob { private TypingManager typingManager; private final Collection<ColoredSourceFile> files; private final IProject project; public TypecheckFilesJob(IProject project, List<ColoredSourceFile> files, TypingManager manager) { super("Typechecking Project"); this.project = project; this.files = files; this.typingManager = manager; } @Override public IStatus runInWorkspace(IProgressMonitor monitor) throws CoreException { if (monitor.isCanceled()) return Status.CANCEL_STATUS; List<ITypingProvider> typingProviders = TypingExtensionManager .getInstance().getTypingProviders(project); TypingExtensionManager.registerListener(typingProviders, typingManager.listener); for (ITypingProvider typingProvider : typingProviders) { typingProvider.updateFile(files, monitor); } // monitor.worked(5); return Status.OK_STATUS; } }