*******************************************************************************/
package net.sourceforge.phpdt.internal.core.builder;
import java.util.ArrayList;
-import net.sourceforge.phpdt.core.compiler.CharOperation;
+
import net.sourceforge.phpdt.core.compiler.IProblem;
import net.sourceforge.phpdt.internal.compiler.CompilationResult;
-import net.sourceforge.phpdt.internal.core.Util;
import net.sourceforge.phpdt.internal.core.util.SimpleLookupTable;
-import net.sourceforge.phpdt.internal.ui.util.PHPFileUtil;
-import net.sourceforge.phpeclipse.PHPeclipsePlugin;
-import net.sourceforge.phpeclipse.builder.IdentifierIndexManager;
-import org.eclipse.core.resources.IContainer;
+import net.sourceforge.phpdt.internal.core.util.Util;
+
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IMarker;
notifier.subTask(Util.bind("build.analyzingDeltas")); //$NON-NLS-1$
IResourceDelta sourceDelta = (IResourceDelta) deltas
.get(javaBuilder.currentProject);
- if (sourceDelta != null)
+ if (sourceDelta != null) {
+ sourceDelta.accept(new ParserVisitor(javaBuilder.currentProject, notifier.monitor));
+
if (!findSourceFiles(sourceDelta))
return false;
- notifier.updateProgressDelta(0.10f);
- Object[] keyTable = deltas.keyTable;
- Object[] valueTable = deltas.valueTable;
- final IdentifierIndexManager indexManager = PHPeclipsePlugin.getDefault()
- .getIndexManager(javaBuilder.currentProject);
- for (int i = 0, l = valueTable.length; i < l; i++) {
- IResourceDelta delta = (IResourceDelta) valueTable[i];
- if (delta != null) {
- IResource resource = delta.getResource();
- int resourceType = resource.getType();
- if (resourceType == IResource.FILE) {
- switch (delta.getKind()) {
- case IResourceDelta.ADDED :
- if ((resource.getFileExtension() != null)
- && PHPFileUtil.isPHPFile((IFile) resource)) {
- // update indexfile for the project:
- indexManager.addFile((IFile) resource);
- }
- break;
- case IResourceDelta.CHANGED :
- if ((resource.getFileExtension() != null)
- && PHPFileUtil.isPHPFile((IFile) resource)) {
- // update indexfile for the project:
- indexManager.changeFile((IFile) resource);
- }
- break;
- case IResourceDelta.REMOVED :
- if ((resource.getFileExtension() != null)
- && PHPFileUtil.isPHPFile((IFile) resource)) {
- // update indexfile for the project:
- indexManager.removeFile((IFile) resource);
- }
- break;
- }
- }
- // ClasspathLocation[] classFoldersAndJars = (ClasspathLocation[])
- // javaBuilder.binaryLocationsPerProject.get(keyTable[i]);
- // if (classFoldersAndJars != null)
- // if (!findAffectedSourceFiles(delta, classFoldersAndJars)) return
- // false;
- }
}
notifier.updateProgressDelta(0.10f);
+// Object[] keyTable = deltas.keyTable;
+// Object[] valueTable = deltas.valueTable;
+//// final IdentifierIndexManager indexManager = PHPeclipsePlugin.getDefault()
+//// .getIndexManager(javaBuilder.currentProject);
+// for (int i = 0, l = valueTable.length; i < l; i++) {
+// IResourceDelta delta = (IResourceDelta) valueTable[i];
+// if (delta != null) {
+// IResource resource = delta.getResource();
+// int resourceType = resource.getType();
+// if (resourceType == IResource.FILE) {
+// switch (delta.getKind()) {
+// case IResourceDelta.ADDED :
+// if ((resource.getFileExtension() != null)
+// && PHPFileUtil.isPHPFile((IFile) resource)) {
+// // update indexfile for the project:
+//// indexManager.addFile((IFile) resource);
+// }
+// break;
+// case IResourceDelta.CHANGED :
+// if ((resource.getFileExtension() != null)
+// && PHPFileUtil.isPHPFile((IFile) resource)) {
+// // update indexfile for the project:
+//// indexManager.changeFile((IFile) resource);
+// }
+// break;
+// case IResourceDelta.REMOVED :
+// if ((resource.getFileExtension() != null)
+// && PHPFileUtil.isPHPFile((IFile) resource)) {
+// // update indexfile for the project:
+//// indexManager.removeFile((IFile) resource);
+// }
+// break;
+// }
+// }
+// // ClasspathLocation[] classFoldersAndJars = (ClasspathLocation[])
+// // javaBuilder.binaryLocationsPerProject.get(keyTable[i]);
+// // if (classFoldersAndJars != null)
+// // if (!findAffectedSourceFiles(delta, classFoldersAndJars)) return
+// // false;
+// }
+// }
+ notifier.updateProgressDelta(0.10f);
notifier.subTask(Util.bind("build.analyzingSources")); //$NON-NLS-1$
addAffectedSourceFiles();
notifier.updateProgressDelta(0.05f);
// sourceFileFullPath)) {
// md = sourceLocations[j];
// if (md.exclusionPatterns == null
-// || !Util.isExcluded(file, md.exclusionPatterns))
+// || !ProjectPrefUtil.isExcluded(file, md.exclusionPatterns))
// break;
// }
// }
}
return;
case IResource.FILE :
- // if (Util.isClassFileName(resource.getName())) {
+ // if (ProjectPrefUtil.isClassFileName(resource.getName())) {
// IPath typePath =
// resource.getFullPath().removeFirstSegments(segmentCount).removeFileExtension();
// switch (binaryDelta.getKind()) {
case IResourceDelta.ADDED :
IPath addedPackagePath = resource.getFullPath()
.removeFirstSegments(segmentCount);
- createFolder(addedPackagePath, md.binaryFolder); // ensure package
+ // createFolder(addedPackagePath, md.binaryFolder); // ensure package
// exists in the
// output folder
// add dependents even when the package thinks it exists to be on
removedPackagePath).exists()) {
// only a package fragment was removed, same as removing
// multiple source files
- createFolder(removedPackagePath, md.binaryFolder); // ensure
+// createFolder(removedPackagePath, md.binaryFolder); // ensure
// package
// exists
// in the
for (int j = 0, m = removedChildren.length; j < m; j++)
findSourceFiles(removedChildren[j], md, segmentCount);
return;
- }
+ }
}
}
- IFolder removedPackageFolder = md.binaryFolder
- .getFolder(removedPackagePath);
- if (removedPackageFolder.exists())
- removedPackageFolder.delete(IResource.FORCE, null);
+// IFolder removedPackageFolder = md.binaryFolder
+// .getFolder(removedPackagePath);
+// if (removedPackageFolder.exists())
+// removedPackageFolder.delete(IResource.FORCE, null);
// add dependents even when the package thinks it does not exist to
// be on the safe side
if (PHPBuilder.DEBUG)
return;
case IResource.FILE :
String resourceName = resource.getName();
- if (Util.isJavaFileName(resourceName)) {
+ if (net.sourceforge.phpdt.internal.compiler.util.Util.isJavaFileName(resourceName)) {
IPath typePath = resource.getFullPath().removeFirstSegments(
segmentCount).removeFileExtension();
String typeLocator = resource.getProjectRelativePath().toString();
sourceFiles.add(new SourceFile((IFile) resource, md, encoding));
}
return;
- // } else if (Util.isClassFileName(resourceName)) {
+ // } else if (ProjectPrefUtil.isClassFileName(resourceName)) {
// return; // skip class files
} else if (md.hasIndependentOutputFolder) {
if (javaBuilder.filterExtraResource(resource))
// copy all other resource deltas to the output folder
IPath resourcePath = resource.getFullPath().removeFirstSegments(
segmentCount);
- IResource outputFile = md.binaryFolder.getFile(resourcePath);
+// IResource outputFile = md.binaryFolder.getFile(resourcePath);
switch (sourceDelta.getKind()) {
case IResourceDelta.ADDED :
- if (outputFile.exists()) {
- if (PHPBuilder.DEBUG)
- System.out.println("Deleting existing file " + resourcePath); //$NON-NLS-1$
- outputFile.delete(IResource.FORCE, null);
- }
+// if (outputFile.exists()) {
+// if (PHPBuilder.DEBUG)
+// System.out.println("Deleting existing file " + resourcePath); //$NON-NLS-1$
+// outputFile.delete(IResource.FORCE, null);
+// }
if (PHPBuilder.DEBUG)
System.out.println("Copying added file " + resourcePath); //$NON-NLS-1$
- createFolder(resourcePath.removeLastSegments(1), md.binaryFolder); // ensure
+// createFolder(resourcePath.removeLastSegments(1), md.binaryFolder); // ensure
// package
// exists
// in
// the
// output
// folder
- resource.copy(outputFile.getFullPath(), IResource.FORCE, null);
- outputFile.setDerived(true);
+// resource.copy(outputFile.getFullPath(), IResource.FORCE, null);
+// outputFile.setDerived(true);
return;
case IResourceDelta.REMOVED :
- if (outputFile.exists()) {
- if (PHPBuilder.DEBUG)
- System.out.println("Deleting removed file " + resourcePath); //$NON-NLS-1$
- outputFile.delete(IResource.FORCE, null);
- }
+// if (outputFile.exists()) {
+// if (PHPBuilder.DEBUG)
+// System.out.println("Deleting removed file " + resourcePath); //$NON-NLS-1$
+// outputFile.delete(IResource.FORCE, null);
+// }
return;
case IResourceDelta.CHANGED :
if ((sourceDelta.getFlags() & IResourceDelta.CONTENT) == 0)
return; // skip it since it really isn't changed
- if (outputFile.exists()) {
- if (PHPBuilder.DEBUG)
- System.out.println("Deleting existing file " + resourcePath); //$NON-NLS-1$
- outputFile.delete(IResource.FORCE, null);
- }
+// if (outputFile.exists()) {
+// if (PHPBuilder.DEBUG)
+// System.out.println("Deleting existing file " + resourcePath); //$NON-NLS-1$
+// outputFile.delete(IResource.FORCE, null);
+// }
if (PHPBuilder.DEBUG)
System.out.println("Copying changed file " + resourcePath); //$NON-NLS-1$
- createFolder(resourcePath.removeLastSegments(1), md.binaryFolder); // ensure
+ // createFolder(resourcePath.removeLastSegments(1), md.binaryFolder); // ensure
// package
// exists
// in
// the
// output
// folder
- resource.copy(outputFile.getFullPath(), IResource.FORCE, null);
- outputFile.setDerived(true);
+// resource.copy(outputFile.getFullPath(), IResource.FORCE, null);
+// outputFile.setDerived(true);
}
return;
}
//protected boolean writeClassFileCheck(IFile file, String fileName, byte[]
// newBytes) throws CoreException {
// try {
- // byte[] oldBytes = Util.getResourceContentsAsByteArray(file);
+ // byte[] oldBytes = ProjectPrefUtil.getResourceContentsAsByteArray(file);
// if (this.compileLoop > 1) { // only optimize files which were recompiled
// during the dependent pass, see 33990
// notEqual : if (newBytes.length == oldBytes.length) {