X-Git-Url: http://git.phpeclipse.com 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 index 0000000..88201b0 --- /dev/null +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/JavaElementRequestor.java @@ -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 IRequestorNameLookup. + */ + protected boolean fCanceled= false; + + /** + * A collection of the resulting fields, or null + * if no field results have been received. + */ + protected ArrayList fFields= null; + + /** + * A collection of the resulting initializers, or null + * if no initializer results have been received. + */ + protected ArrayList fInitializers= null; + + /** + * A collection of the resulting member types, or null + * if no member type results have been received. + */ + protected ArrayList fMemberTypes= null; + + /** + * A collection of the resulting methods, or null + * if no method results have been received. + */ + protected ArrayList fMethods= null; + + /** + * A collection of the resulting package fragments, or null + * if no package fragment results have been received. + */ + protected ArrayList fPackageFragments= null; + + /** + * A collection of the resulting types, or null + * 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; +} +}