new version with WorkingCopy Management
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / core / JavaElementRequestor.java
diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/JavaElementRequestor.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/JavaElementRequestor.java
new file mode 100644 (file)
index 0000000..88201b0
--- /dev/null
@@ -0,0 +1,225 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2003 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package net.sourceforge.phpdt.internal.core;
+
+import java.util.ArrayList;
+
+import net.sourceforge.phpdt.core.IField;
+import net.sourceforge.phpdt.core.IMethod;
+import net.sourceforge.phpdt.core.IPackageFragment;
+import net.sourceforge.phpdt.core.IType;
+
+/**
+ * @see IJavaElementRequestor
+ */
+
+public class JavaElementRequestor implements IJavaElementRequestor {
+       /**
+        * True if this requestor no longer wants to receive
+        * results from its <code>IRequestorNameLookup</code>.
+        */
+       protected boolean fCanceled= false;
+       
+       /**
+        * A collection of the resulting fields, or <code>null</code>
+        * if no field results have been received.
+        */
+       protected ArrayList fFields= null;
+
+       /**
+        * A collection of the resulting initializers, or <code>null</code>
+        * if no initializer results have been received.
+        */
+       protected ArrayList fInitializers= null;
+
+       /**
+        * A collection of the resulting member types, or <code>null</code>
+        * if no member type results have been received.
+        */
+       protected ArrayList fMemberTypes= null;
+
+       /**
+        * A collection of the resulting methods, or <code>null</code>
+        * if no method results have been received.
+        */
+       protected ArrayList fMethods= null;
+
+       /**
+        * A collection of the resulting package fragments, or <code>null</code>
+        * if no package fragment results have been received.
+        */
+       protected ArrayList fPackageFragments= null;
+
+       /**
+        * A collection of the resulting types, or <code>null</code>
+        * if no type results have been received.
+        */
+       protected ArrayList fTypes= null;
+
+       /**
+        * Empty arrays used for efficiency
+        */
+       protected static IField[] fgEmptyFieldArray= new IField[0];
+//     protected static IInitializer[] fgEmptyInitializerArray= new IInitializer[0];
+       protected static IType[] fgEmptyTypeArray= new IType[0];
+       protected static IPackageFragment[] fgEmptyPackageFragmentArray= new IPackageFragment[0];
+       protected static IMethod[] fgEmptyMethodArray= new IMethod[0];
+/**
+ * @see IJavaElementRequestor
+ */
+public void acceptField(IField field) {
+       if (fFields == null) {
+               fFields= new ArrayList();
+       }
+       fFields.add(field);
+}
+/**
+ * @see IJavaElementRequestor
+ */
+//public void acceptInitializer(IInitializer initializer) {
+//     if (fInitializers == null) {
+//             fInitializers= new ArrayList();
+//     }
+//     fInitializers.add(initializer);
+//}
+/**
+ * @see IJavaElementRequestor
+ */
+public void acceptMemberType(IType type) {
+       if (fMemberTypes == null) {
+               fMemberTypes= new ArrayList();
+       }
+       fMemberTypes.add(type);
+}
+/**
+ * @see IJavaElementRequestor
+ */
+public void acceptMethod(IMethod method) {
+       if (fMethods == null) {
+               fMethods = new ArrayList();
+       }
+       fMethods.add(method);
+}
+/**
+ * @see IJavaElementRequestor
+ */
+public void acceptPackageFragment(IPackageFragment packageFragment) {
+       if (fPackageFragments== null) {
+               fPackageFragments= new ArrayList();
+       }
+       fPackageFragments.add(packageFragment);
+}
+/**
+ * @see IJavaElementRequestor
+ */
+public void acceptType(IType type) {
+       if (fTypes == null) {
+               fTypes= new ArrayList();
+       }
+       fTypes.add(type);
+}
+/**
+ * @see IJavaElementRequestor
+ */
+public IField[] getFields() {
+       if (fFields == null) {
+               return fgEmptyFieldArray;
+       }
+       int size = fFields.size();
+       IField[] results = new IField[size];
+       fFields.toArray(results);
+       return results;
+}
+/**
+ * @see IJavaElementRequestor
+ */
+//public IInitializer[] getInitializers() {
+//     if (fInitializers == null) {
+//             return fgEmptyInitializerArray;
+//     }
+//     int size = fInitializers.size();
+//     IInitializer[] results = new IInitializer[size];
+//     fInitializers.toArray(results);
+//     return results;
+//}
+/**
+ * @see IJavaElementRequestor
+ */
+public IType[] getMemberTypes() {
+       if (fMemberTypes == null) {
+               return fgEmptyTypeArray;
+       }
+       int size = fMemberTypes.size();
+       IType[] results = new IType[size];
+       fMemberTypes.toArray(results);
+       return results;
+}
+/**
+ * @see IJavaElementRequestor
+ */
+public IMethod[] getMethods() {
+       if (fMethods == null) {
+               return fgEmptyMethodArray;
+       }
+       int size = fMethods.size();
+       IMethod[] results = new IMethod[size];
+       fMethods.toArray(results);
+       return results;
+}
+/**
+ * @see IJavaElementRequestor
+ */
+public IPackageFragment[] getPackageFragments() {
+       if (fPackageFragments== null) {
+               return fgEmptyPackageFragmentArray;
+       }
+       int size = fPackageFragments.size();
+       IPackageFragment[] results = new IPackageFragment[size];
+       fPackageFragments.toArray(results);
+       return results;
+}
+/**
+ * @see IJavaElementRequestor
+ */
+public IType[] getTypes() {
+       if (fTypes== null) {
+               return fgEmptyTypeArray;
+       }
+       int size = fTypes.size();
+       IType[] results = new IType[size];
+       fTypes.toArray(results);
+       return results;
+}
+/**
+ * @see IJavaElementRequestor
+ */
+public boolean isCanceled() {
+       return fCanceled;
+}
+/**
+ * Reset the state of this requestor.
+ */
+public void reset() {
+       fCanceled = false;
+       fFields = null;
+       fInitializers = null;
+       fMemberTypes = null;
+       fMethods = null;
+       fPackageFragments = null;
+       fTypes = null;
+}
+/**
+ * Sets the #isCanceled state of this requestor to true or false.
+ */
+public void setCanceled(boolean b) {
+       fCanceled= b;
+}
+}