X-Git-Url: http://secure.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/builder/NameEnvironment.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/builder/NameEnvironment.java index 9265c4c..ffdbaf0 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/builder/NameEnvironment.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/builder/NameEnvironment.java @@ -14,6 +14,7 @@ import java.util.ArrayList; import net.sourceforge.phpdt.core.IClasspathEntry; import net.sourceforge.phpdt.core.IJavaProject; +import net.sourceforge.phpdt.core.JavaCore; import net.sourceforge.phpdt.core.compiler.CharOperation; import net.sourceforge.phpdt.internal.compiler.env.INameEnvironment; import net.sourceforge.phpdt.internal.compiler.env.NameEnvironmentAnswer; @@ -22,7 +23,6 @@ import net.sourceforge.phpdt.internal.core.ClasspathEntry; import net.sourceforge.phpdt.internal.core.JavaModel; import net.sourceforge.phpdt.internal.core.JavaProject; import net.sourceforge.phpdt.internal.core.util.SimpleLookupTable; -import net.sourceforge.phpeclipse.PHPCore; import org.eclipse.core.resources.IContainer; import org.eclipse.core.resources.IFolder; @@ -87,19 +87,20 @@ public class NameEnvironment implements INameEnvironment { JavaProject javaProject, SimpleLookupTable binaryLocationsPerProject) throws CoreException { + /* Update cycle marker */ + IMarker cycleMarker = javaProject.getCycleMarker(); + if (cycleMarker != null) { + int severity = JavaCore.ERROR.equals(javaProject.getOption(JavaCore.CORE_CIRCULAR_CLASSPATH, true)) + ? IMarker.SEVERITY_ERROR + : IMarker.SEVERITY_WARNING; + if (severity != ((Integer) cycleMarker.getAttribute(IMarker.SEVERITY)).intValue()) + cycleMarker.setAttribute(IMarker.SEVERITY, severity); + } + /* Update incomplete classpath marker */ - IClasspathEntry[] classpathEntries = javaProject.getExpandedClasspath(true, true); - - /* Update cycle marker */ - IMarker cycleMarker = javaProject.getCycleMarker(); - if (cycleMarker != null) { - int severity = PHPCore.ERROR.equals(javaProject.getOption(PHPCore.CORE_CIRCULAR_CLASSPATH, true)) - ? IMarker.SEVERITY_ERROR - : IMarker.SEVERITY_WARNING; - if (severity != ((Integer) cycleMarker.getAttribute(IMarker.SEVERITY)).intValue()) - cycleMarker.setAttribute(IMarker.SEVERITY, severity); - } - +// IClasspathEntry[] classpathEntries = javaProject.getExpandedClasspath(true, true); + IClasspathEntry[] classpathEntries = javaProject.getExpandedClasspath(true/*ignore unresolved variable*/, false/*don't create markers*/, null/*preferred cp*/, null/*preferred output*/); + ArrayList sLocations = new ArrayList(classpathEntries.length); ArrayList bLocations = new ArrayList(classpathEntries.length); nextEntry : for (int i = 0, l = classpathEntries.length; i < l; i++) { @@ -111,17 +112,17 @@ public class NameEnvironment implements INameEnvironment { switch(entry.getEntryKind()) { case IClasspathEntry.CPE_SOURCE : if (!(target instanceof IContainer)) continue nextEntry; - IPath outputPath = entry.getOutputLocation() != null - ? entry.getOutputLocation() - : javaProject.getOutputLocation(); - IContainer outputFolder; - if (outputPath.segmentCount() == 1) { - outputFolder = javaProject.getProject(); - } else { - outputFolder = root.getFolder(outputPath); - if (!outputFolder.exists()) - createFolder(outputFolder); - } +// IPath outputPath = entry.getOutputLocation() != null +// ? entry.getOutputLocation() +// : javaProject.getOutputLocation(); + IContainer outputFolder = null; +// if (outputPath.segmentCount() == 1) { +// outputFolder = javaProject.getProject(); +// } else { +// outputFolder = root.getFolder(outputPath); +// if (!outputFolder.exists()) +// createFolder(outputFolder); +// } sLocations.add( ClasspathLocation.forSourceFolder((IContainer) target, outputFolder, entry.fullExclusionPatternChars())); continue nextEntry; @@ -131,7 +132,7 @@ public class NameEnvironment implements INameEnvironment { IProject prereqProject = (IProject) target; if (!JavaProject.hasJavaNature(prereqProject)) continue nextEntry; // if project doesn't have java nature or is not accessible - JavaProject prereqJavaProject = (JavaProject) PHPCore.create(prereqProject); + JavaProject prereqJavaProject = (JavaProject) JavaCore.create(prereqProject); IClasspathEntry[] prereqClasspathEntries = prereqJavaProject.getRawClasspath(); ArrayList seen = new ArrayList(); nextPrereqEntry: for (int j = 0, m = prereqClasspathEntries.length; j < m; j++) { @@ -170,7 +171,7 @@ public class NameEnvironment implements INameEnvironment { // IResource resource = (IResource) target; // ClasspathLocation bLocation = null; // if (resource instanceof IFile) { -// if (!(Util.isArchiveFileName(path.lastSegment()))) +// if (!(ProjectPrefUtil.isArchiveFileName(path.lastSegment()))) // continue nextEntry; // bLocation = ClasspathLocation.forLibrary((IFile) resource); // } else if (resource instanceof IContainer) { @@ -190,7 +191,7 @@ public class NameEnvironment implements INameEnvironment { // binaryLocationsPerProject.put(p, existingLocations); // } // } else if (target instanceof File) { -// if (!(Util.isArchiveFileName(path.lastSegment()))) +// if (!(ProjectPrefUtil.isArchiveFileName(path.lastSegment()))) // continue nextEntry; // bLocations.add(ClasspathLocation.forLibrary(path.toString())); // } @@ -207,19 +208,19 @@ public class NameEnvironment implements INameEnvironment { // collect the output folders, skipping duplicates next : for (int i = 0, l = sourceLocations.length; i < l; i++) { ClasspathMultiDirectory md = sourceLocations[i]; - IPath outputPath = md.binaryFolder.getFullPath(); - for (int j = 0; j < i; j++) { // compare against previously walked source folders - if (outputPath.equals(sourceLocations[j].binaryFolder.getFullPath())) { - md.hasIndependentOutputFolder = sourceLocations[j].hasIndependentOutputFolder; - continue next; - } - } +// IPath outputPath = md.binaryFolder.getFullPath(); +// for (int j = 0; j < i; j++) { // compare against previously walked source folders +// if (outputPath.equals(sourceLocations[j].binaryFolder.getFullPath())) { +// md.hasIndependentOutputFolder = sourceLocations[j].hasIndependentOutputFolder; +// continue next; +// } +// } outputFolders.add(md); // also tag each source folder whose output folder is an independent folder & is not also a source folder - for (int j = 0, m = sourceLocations.length; j < m; j++) - if (outputPath.equals(sourceLocations[j].sourceFolder.getFullPath())) - continue next; +// for (int j = 0, m = sourceLocations.length; j < m; j++) +// if (outputPath.equals(sourceLocations[j].sourceFolder.getFullPath())) +// continue next; md.hasIndependentOutputFolder = true; } }