/* * $Id$ * * Copyright (c) 2004-2005 by the TeXlapse Team. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html */ package net.sourceforge.texlipse.builder; import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; /** * Builder interface for document builders. * * @author Kimmo Karlsson */ public interface Builder { /** * Check to see if this builder is valid. * @return true, if this builder is ready for operation */ public boolean isValid(); /** * @return id number for the registry */ public int getId(); /** * Resets the builder to be ready for a new build. */ public void reset(final IProgressMonitor mon); /** * @return the name of the format this builder outputs */ public String getOutputFormat(); /** * @return the build sequence for the user interface, e.g. "latex+dvips+ps2pdf" */ public String getSequence(); /** * Stops the execution of the whole building process. */ public void stopBuild(); /** * Starts the exceution of the whole build process. * * @param resource the input file to build * @throws CoreException if the build fails */ public void build(IResource resource) throws CoreException; /** * Starts the execution of the program runner sequence, but not the progress monitor listener. * @param resource the project main file */ public void buildResource(IResource resource) throws CoreException; /** * Stops the execution of the program runners, but not the progress monitor listener. */ public void stopRunners(); }