X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/SearchableEnvironmentRequestor.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/SearchableEnvironmentRequestor.java new file mode 100644 index 0000000..caf3e0f --- /dev/null +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/SearchableEnvironmentRequestor.java @@ -0,0 +1,82 @@ +/******************************************************************************* + * 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 net.sourceforge.phpdt.core.ICompilationUnit; +import net.sourceforge.phpdt.core.IPackageFragment; +import net.sourceforge.phpdt.core.IType; +import net.sourceforge.phpdt.core.JavaModelException; +import net.sourceforge.phpdt.internal.codeassist.ISearchRequestor; + +/** + * Implements IJavaElementRequestor, wrappering and forwarding + * results onto a org.eclipse.jdt.internal.codeassist.api.ISearchRequestor. + */ +class SearchableEnvironmentRequestor extends JavaElementRequestor implements IJavaElementRequestor { + /** + * The ISearchRequestor this JavaElementRequestor wraps + * and forwards results to. + */ + protected ISearchRequestor fRequestor; + /** + * The ICompilationUNit this JavaElementRequestor will not + * accept types within. + */ + protected ICompilationUnit fUnitToSkip; +/** + * Constructs a SearchableEnvironmentRequestor that wraps the + * given SearchRequestor. + */ +public SearchableEnvironmentRequestor(ISearchRequestor requestor) { + fRequestor = requestor; + fUnitToSkip= null; +} +/** + * Constructs a SearchableEnvironmentRequestor that wraps the + * given SearchRequestor. The requestor will not accept types in + * the unitToSkip. + */ +public SearchableEnvironmentRequestor(ISearchRequestor requestor, ICompilationUnit unitToSkip) { + fRequestor = requestor; + fUnitToSkip= unitToSkip; +} +/** + * Do nothing, a SearchRequestor does not accept initializers + * so there is no need to forward this results. + * + * @see IJavaElementRequestor + */ +//public void acceptInitializer(IInitializer initializer) { +// +//} +/** + * @see IJavaElementRequestor + */ +public void acceptPackageFragment(IPackageFragment packageFragment) { + fRequestor.acceptPackage(packageFragment.getElementName().toCharArray()); +} +/** + * @see IJavaElementRequestor + */ +public void acceptType(IType type) { + try { + if (fUnitToSkip != null && fUnitToSkip.equals(type.getCompilationUnit())){ + return; + } + if (type.isClass()) { + fRequestor.acceptClass(type.getPackageFragment().getElementName().toCharArray(), type.getElementName().toCharArray(), type.getFlags()); + } else { + fRequestor.acceptInterface(type.getPackageFragment().getElementName().toCharArray(), type.getElementName().toCharArray(), type.getFlags()); + } + } catch (JavaModelException npe) { + } +} +}