/*******************************************************************************
* Copyright (c) 2006, 2007 Spring IDE Developers
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Spring IDE Developers - initial API and implementation
*******************************************************************************/
package org.springframework.ide.eclipse.beans.ui.editor.util;
import org.eclipse.jdt.core.CompletionProposal;
import org.eclipse.jdt.core.Flags;
import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jdt.core.search.SearchEngine;
import org.eclipse.jdt.ui.text.java.CompletionProposalCollector;
/**
* {@link CompletionProposalCollector} used with JDT's {@link SearchEngine}.
* @author Christian Dupuis
* @author Torsten Juergeleit
* @since 1.3.6
*/
class BeansJavaCompletionProposalCollector extends
CompletionProposalCollector {
private int flags;
public BeansJavaCompletionProposalCollector(ICompilationUnit cu, int flags) {
super(cu);
this.flags = flags;
}
@Override
public void accept(CompletionProposal proposal) {
boolean accepted = false;
if (CompletionProposal.TYPE_REF == proposal.getKind()) {
if ((flags & BeansJavaCompletionUtils.FLAG_CLASS) != 0 && !Flags.isInterface(proposal.getFlags())) {
super.accept(proposal);
accepted = true;
}
if (!accepted && (flags & BeansJavaCompletionUtils.FLAG_INTERFACE) != 0 && Flags.isInterface(proposal.getFlags())) {
super.accept(proposal);
accepted = true;
}
}
if (CompletionProposal.PACKAGE_REF == proposal.getKind()) {
if (!accepted && (flags & BeansJavaCompletionUtils.FLAG_PACKAGE) != 0) {
super.accept(proposal);
}
}
}
}