1) Moved net.sourceforge.phpeclipse.ui\src\net\sourceforge\phpdt back to net.sourcefo...
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / ui / util / PHPFileUtil.java
index 9e8563e..b571a1c 100644 (file)
@@ -2,6 +2,8 @@
  * Created on 09.08.2003
  *
  */
+
+/*duplicated incastrix*/
 package net.sourceforge.phpdt.internal.ui.util;
 
 import java.io.File;
@@ -14,7 +16,6 @@ import org.eclipse.core.filebuffers.FileBuffers;
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.Path;
 import org.eclipse.ui.IEditorDescriptor;
@@ -28,9 +29,8 @@ public class PHPFileUtil {
        public final static String[] SMARTY_EXTENSIONS = { "tpl" };
 
        public static boolean isPHPFile(IFile file) {
-               // String extension = file.getFileExtension();
-               return isPHPFileName(file.getLocation().toString());
-       }
+                return isPHPFileName(file.getFullPath().toString());
+        }
 
        // public final static String getFileExtension(String name) {
        // int index = name.lastIndexOf('.');
@@ -84,9 +84,9 @@ public class PHPFileUtil {
         * Returns true iff the file extension is a valid PHP Unit name
         * implementation is not creating extra strings.
         */
-       public final static boolean isValidPHPUnitName(String filename) {
-               return PHPFileUtil.isPHPFileName(filename);
-       }
+//     public final static boolean isValidPHPUnitName(String filename) {
+//             return PHPFileUtil.isPHPFileName(filename);
+//     }
 
        /**
         * @return Returns the PHP extensions.
@@ -133,17 +133,17 @@ public class PHPFileUtil {
         * @return the file for the given absolute file path or <code>null</code>
         *         if no existing file can be found
         */
-       public static IFile createFile(IPath absoluteFilePath, IProject project) {
-               if (absoluteFilePath == null || project == null) {
-                       return null;
-               }
-
-               String projectPath = project.getLocation().toString();
-               String filePath = absoluteFilePath.toString().substring(
-                               projectPath.length() + 1);
-               return project.getFile(filePath);
-
-       }
+//     public static IFile createFile(IPath absoluteFilePath, IProject project) {
+//             if (absoluteFilePath == null || project == null) {
+//                     return null;
+//             }
+//
+//             String projectPath = project.getFullPath().toString();
+//             String filePath = absoluteFilePath.toString().substring(
+//                             projectPath.length() + 1);
+//             return project.getFile(filePath);
+//
+//     }
 
        /**
         * Determine the path of an include name string
@@ -159,48 +159,34 @@ public class PHPFileUtil {
                IPath documentRootPath = ProjectPrefUtil.getDocumentRoot(project);
                IPath resourcePath = resource.getProjectRelativePath();
 
-               File file = null;
                IPath path = null;
-               path = documentRootPath.append(includeNameString);
-               file = path.toFile();
-               if (file.exists()) {
+               
+               // script location based
+               path = project.getFullPath().append(resourcePath.removeLastSegments(1))
+                               .append(includeNameString);
+               //path = 
+               if (fileExists(path, false)) {
                        return path;
                }
-
-               if (includeNameString.startsWith("../")) {
-                       path = project.getLocation().append(
-                                       resourcePath.removeLastSegments(1));
-                       path = path.append(includeNameString);
-                       file = path.toFile();
-                       if (file.exists()) {
-                               return path;
-                       }
-               }
-
-               // includeNameString contains no path separator
-               path = project.getLocation().append(resourcePath.removeLastSegments(1));
-               path = path.append(includeNameString);
-               file = path.toFile();
-               if (file.exists()) {
+               // project root based
+               path = project.getFullPath().append(includeNameString);
+               if (fileExists(path, false)) {
                        return path;
                }
-
-               // check if linked resource
-               IFile ifile = FileBuffers.getWorkspaceFileAtLocation(path);
-               if (ifile != null) {
-                       file = ifile.getLocation().toFile();
-                       if (file.exists()) {
-                               return path;
-                       }
+               
+               // DocumentRoot (absolute path) based
+               path = documentRootPath.append(includeNameString);
+               if (fileExists(path, true)) {
+                       return path;
                }
 
+               // IncludePaths settings (absolute path) based
                List includePaths = ProjectPrefUtil.getIncludePaths(project);
                if (includePaths.size() > 0) {
                        for (int i = 0; i < includePaths.size(); i++) {
                                path = new Path(includePaths.get(i).toString())
                                                .append(includeNameString);
-                               file = path.toFile();
-                               if (file.exists()) {
+                               if (fileExists(path, true)) {
                                        return path;
                                }
                        }
@@ -208,4 +194,20 @@ public class PHPFileUtil {
                return null;
        }
 
+       private static boolean fileExists(IPath path, boolean absolute) {
+               File file = path.toFile();
+               if (file.exists()) {
+                       return true;
+               }
+               if (!absolute) {
+                       IFile ifile = FileBuffers.getWorkspaceFileAtLocation(path);
+                       if (ifile != null) {
+                           IResource resource = ifile;
+                if (resource.exists()) {
+                    return true;
+                }
+                       }
+               }
+               return false;
+       }
 }
\ No newline at end of file