misc changes
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / ui / util / PHPFileUtil.java
index 4917de5..177438d 100644 (file)
@@ -4,6 +4,9 @@
  */
 package net.sourceforge.phpdt.internal.ui.util;
 
+import net.sourceforge.phpeclipse.ui.IPreferenceConstants;
+import net.sourceforge.phpeclipse.ui.overlaypages.Util;
+
 import org.eclipse.core.resources.IFile;
 
 /**
@@ -11,13 +14,98 @@ import org.eclipse.core.resources.IFile;
  *
  */
 public class PHPFileUtil {
-  static public boolean isPHPFile(IFile file) {
-    if ("php".equalsIgnoreCase(file.getFileExtension())
-      || "php3".equalsIgnoreCase(file.getFileExtension())
-      || "php4".equalsIgnoreCase(file.getFileExtension())
-      || "inc".equalsIgnoreCase(file.getFileExtension())) {
-      return true;
+  public final static String[] PHP_EXTENSIONS = {
+      "php",
+      "php3",
+      "php4",
+      "php5",
+      "phtml",
+      "module",  // drupal
+      "inc",
+      "class"
+  };
+  public final static String[] HTML_EXTENSIONS = {
+      "html",
+      "htm",
+      "xhtml"
+  };
+  public final static String[] SMARTY_EXTENSIONS = {
+      "tpl"
+  };
+  
+  public  static boolean isPHPFile(IFile file) {
+    String extension = file.getFileExtension();
+    return isPHPFileName(file.getLocation().toString());
+  }
+
+  public final static String getFileExtension(String name) {
+       int index = name.lastIndexOf('.');
+       if (index == -1)
+               return null;
+       if (index == (name.length() - 1))
+               return null; //$NON-NLS-1$
+       return name.substring(index + 1);
+}
+  
+  /**
+   * Returns true iff str.toLowerCase().endsWith(".php")
+   * implementation is not creating extra strings.
+   */
+  public final static boolean isPHPFileName(String name) {
+    String extension = getFileExtension(name).toLowerCase();
+    if (extension==null) {
+      return false;
+    }
+    for (int i=0;i<PHP_EXTENSIONS.length;i++) {
+      if (extension.equals(PHP_EXTENSIONS[i])) {
+        return true;
+      }
     }
     return false;
   }
+    
+  /**
+   * Returns true iff str.toLowerCase().endsWith(".html")
+   * implementation is not creating extra strings.
+   */
+//  public final static boolean isHTML_FileName(String name) {
+//    String extension = getFileExtension(name).toLowerCase();
+//    if (extension==null) {
+//      return false;
+//    }
+//    for (int i=0;i<HTML_EXTENSIONS.length;i++) {
+//      if (extension.equals(HTML_EXTENSIONS[i])) {
+//        return true;
+//      }
+//    }
+//    return false;
+//  }
+  
+  /**
+   * Returns true iff str.toLowerCase().endsWith(".tpl")
+   * implementation is not creating extra strings.
+   */
+//  public final static boolean isTPL_FileName(String name) {
+//    String extension = getFileExtension(name).toLowerCase();
+//    if (extension==null) {
+//      return false;
+//    }
+//    for (int i=0;i<SMARTY_EXTENSIONS.length;i++) {
+//      if (extension.equals(SMARTY_EXTENSIONS[i])) {
+//        return true;
+//      }
+//    }
+//    return false;
+//  }
+  
+  /**
+        * 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);
+//             ||
+//                    PHPFileUtil.isHTML_FileName(filename) ||
+//                        PHPFileUtil.isTPL_FileName(filename);
+       }
 }