/******************************************************************************* * 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) { } } }