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