--- /dev/null
+/*******************************************************************************
+ * 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;
+}
+}