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