import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
+
import net.sourceforge.phpdt.core.IClasspathEntry;
import net.sourceforge.phpdt.core.IJavaModelMarker;
-import net.sourceforge.phpdt.core.JavaModelException;
import net.sourceforge.phpdt.core.JavaCore;
+import net.sourceforge.phpdt.core.JavaModelException;
import net.sourceforge.phpdt.core.compiler.CharOperation;
import net.sourceforge.phpdt.internal.core.JavaModel;
import net.sourceforge.phpdt.internal.core.JavaModelManager;
import net.sourceforge.phpdt.internal.core.JavaProject;
-import net.sourceforge.phpdt.internal.core.Util;
import net.sourceforge.phpdt.internal.core.util.SimpleLookupTable;
+import net.sourceforge.phpdt.internal.core.util.Util;
import net.sourceforge.phpdt.internal.ui.util.PHPFileUtil;
import net.sourceforge.phpeclipse.PHPeclipsePlugin;
import net.sourceforge.phpeclipse.builder.IdentifierIndexManager;
-import net.sourceforge.phpeclipse.phpeditor.PHPParserAction;
-import net.sourceforge.phpeclipse.resourcesview.PHPProject;
+
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IMarker;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.OperationCanceledException;
+
public class PHPBuilder extends IncrementalProjectBuilder {
IProject currentProject;
JavaProject javaProject;
IWorkspaceRoot workspaceRoot;
- NameEnvironment nameEnvironment;
+ NameEnvironment nameEnvironment;
SimpleLookupTable binaryLocationsPerProject; // maps a project to its binary
// resources (output folders,
// class folders, zip/jar files)
char[][] extraResourceFileFilters;
String[] extraResourceFolderFilters;
public static final String CLASS_EXTENSION = "class"; //$NON-NLS-1$
- public static boolean DEBUG = true;
+ public static boolean DEBUG = false;
/**
* A list of project names that have been built. This list is used to reset
* the JavaModel.existingExternalFiles cache when a build cycle begins so
public static void finishedBuilding(IResourceChangeEvent event) {
BuildNotifier.resetProblemCounters();
}
+ /**
+ * Hook allowing to initialize some static state before a complete build iteration.
+ * This hook is invoked during PRE_AUTO_BUILD notification
+ */
+ public static void buildStarting() {
+ // do nothing
+ // TODO (philippe) is it still needed?
+ }
+
+ /**
+ * Hook allowing to reset some static state after a complete build iteration.
+ * This hook is invoked during POST_AUTO_BUILD notification
+ */
+ public static void buildFinished() {
+ BuildNotifier.resetProblemCounters();
+ }
public static void removeProblemsFor(IResource resource) {
try {
if (resource != null && resource.exists())
marker.setAttribute(IMarker.MESSAGE, Util.bind("build.missingSourceFile",
e.missingSourceFile)); //$NON-NLS-1$
marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_ERROR);
+ } catch (Exception e) {
+ e.printStackTrace();
} finally {
if (!ok)
// If the build failed, clear the previously built state, forcing a
// IMarker marker =
// currentProject.createMarker(IJavaModelMarker.JAVA_MODEL_PROBLEM_MARKER);
// marker.setAttribute(IMarker.MESSAGE,
- // Util.bind("build.abortDueToClasspathProblems")); //$NON-NLS-1$
+ // ProjectPrefUtil.bind("build.abortDueToClasspathProblems")); //$NON-NLS-1$
// marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_ERROR);
// return false;
// }
JavaModelManager.getJavaModelManager().setLastBuiltState(currentProject,
state);
}
- /**
- * String representation for debugging purposes
- */
- public String toString() {
+ /**
+ * String representation for debugging purposes
+ */
+ public String toString() {
return currentProject == null ? "JavaBuilder for unknown project" //$NON-NLS-1$
: "JavaBuilder for " + currentProject.getName(); //$NON-NLS-1$
}