1 /*******************************************************************************
2 * Copyright (c) 2000, 2003 IBM Corporation and others.
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Common Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/cpl-v10.html
9 * IBM Corporation - initial API and implementation
10 *******************************************************************************/
11 package net.sourceforge.phpdt.internal.core;
13 import java.util.ArrayList;
15 import net.sourceforge.phpdt.core.IField;
16 import net.sourceforge.phpdt.core.IMethod;
17 import net.sourceforge.phpdt.core.IPackageFragment;
18 import net.sourceforge.phpdt.core.IType;
21 * @see IJavaElementRequestor
24 public class JavaElementRequestor implements IJavaElementRequestor {
26 * True if this requestor no longer wants to receive
27 * results from its <code>IRequestorNameLookup</code>.
29 protected boolean fCanceled= false;
32 * A collection of the resulting fields, or <code>null</code>
33 * if no field results have been received.
35 protected ArrayList fFields= null;
38 * A collection of the resulting initializers, or <code>null</code>
39 * if no initializer results have been received.
41 protected ArrayList fInitializers= null;
44 * A collection of the resulting member types, or <code>null</code>
45 * if no member type results have been received.
47 protected ArrayList fMemberTypes= null;
50 * A collection of the resulting methods, or <code>null</code>
51 * if no method results have been received.
53 protected ArrayList fMethods= null;
56 * A collection of the resulting package fragments, or <code>null</code>
57 * if no package fragment results have been received.
59 protected ArrayList fPackageFragments= null;
62 * A collection of the resulting types, or <code>null</code>
63 * if no type results have been received.
65 protected ArrayList fTypes= null;
68 * Empty arrays used for efficiency
70 protected static IField[] fgEmptyFieldArray= new IField[0];
71 // protected static IInitializer[] fgEmptyInitializerArray= new IInitializer[0];
72 protected static IType[] fgEmptyTypeArray= new IType[0];
73 protected static IPackageFragment[] fgEmptyPackageFragmentArray= new IPackageFragment[0];
74 protected static IMethod[] fgEmptyMethodArray= new IMethod[0];
76 * @see IJavaElementRequestor
78 public void acceptField(IField field) {
79 if (fFields == null) {
80 fFields= new ArrayList();
85 * @see IJavaElementRequestor
87 //public void acceptInitializer(IInitializer initializer) {
88 // if (fInitializers == null) {
89 // fInitializers= new ArrayList();
91 // fInitializers.add(initializer);
94 * @see IJavaElementRequestor
96 public void acceptMemberType(IType type) {
97 if (fMemberTypes == null) {
98 fMemberTypes= new ArrayList();
100 fMemberTypes.add(type);
103 * @see IJavaElementRequestor
105 public void acceptMethod(IMethod method) {
106 if (fMethods == null) {
107 fMethods = new ArrayList();
109 fMethods.add(method);
112 * @see IJavaElementRequestor
114 public void acceptPackageFragment(IPackageFragment packageFragment) {
115 if (fPackageFragments== null) {
116 fPackageFragments= new ArrayList();
118 fPackageFragments.add(packageFragment);
121 * @see IJavaElementRequestor
123 public void acceptType(IType type) {
124 if (fTypes == null) {
125 fTypes= new ArrayList();
130 * @see IJavaElementRequestor
132 public IField[] getFields() {
133 if (fFields == null) {
134 return fgEmptyFieldArray;
136 int size = fFields.size();
137 IField[] results = new IField[size];
138 fFields.toArray(results);
142 * @see IJavaElementRequestor
144 //public IInitializer[] getInitializers() {
145 // if (fInitializers == null) {
146 // return fgEmptyInitializerArray;
148 // int size = fInitializers.size();
149 // IInitializer[] results = new IInitializer[size];
150 // fInitializers.toArray(results);
154 * @see IJavaElementRequestor
156 public IType[] getMemberTypes() {
157 if (fMemberTypes == null) {
158 return fgEmptyTypeArray;
160 int size = fMemberTypes.size();
161 IType[] results = new IType[size];
162 fMemberTypes.toArray(results);
166 * @see IJavaElementRequestor
168 public IMethod[] getMethods() {
169 if (fMethods == null) {
170 return fgEmptyMethodArray;
172 int size = fMethods.size();
173 IMethod[] results = new IMethod[size];
174 fMethods.toArray(results);
178 * @see IJavaElementRequestor
180 public IPackageFragment[] getPackageFragments() {
181 if (fPackageFragments== null) {
182 return fgEmptyPackageFragmentArray;
184 int size = fPackageFragments.size();
185 IPackageFragment[] results = new IPackageFragment[size];
186 fPackageFragments.toArray(results);
190 * @see IJavaElementRequestor
192 public IType[] getTypes() {
194 return fgEmptyTypeArray;
196 int size = fTypes.size();
197 IType[] results = new IType[size];
198 fTypes.toArray(results);
202 * @see IJavaElementRequestor
204 public boolean isCanceled() {
208 * Reset the state of this requestor.
210 public void reset() {
213 fInitializers = null;
216 fPackageFragments = null;
220 * Sets the #isCanceled state of this requestor to true or false.
222 public void setCanceled(boolean b) {