Improved completion processor
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / ui / util / PHPElementVisitor.java
diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/util/PHPElementVisitor.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/util/PHPElementVisitor.java
new file mode 100644 (file)
index 0000000..54db23d
--- /dev/null
@@ -0,0 +1,44 @@
+package net.sourceforge.phpdt.internal.ui.util;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceVisitor;
+import org.eclipse.core.runtime.CoreException;
+
+public class PHPElementVisitor implements IResourceVisitor {
+       protected List phpFiles = new ArrayList();
+
+       public PHPElementVisitor() {
+               super();
+       }
+
+       public boolean visit(IResource resource) throws CoreException {
+               switch (resource.getType()) {
+                       case IResource.PROJECT :
+                               return true;
+
+                       case IResource.FOLDER :
+                               return true;
+
+                       case IResource.FILE :
+                               IFile fileResource = (IFile) resource;
+                               if ( "php".equals(fileResource.getFileExtension()) ||
+             "php3".equals(fileResource.getFileExtension()) ||
+             "php4".equals(fileResource.getFileExtension()) ) {
+                                       phpFiles.add(fileResource);
+                                       return true;
+                               }
+
+                       default :
+                               return false;
+               }
+       }
+       
+       public Object[] getCollectedPHPFiles() {
+               return phpFiles.toArray();
+       }
+}