/* * Copyright 2009-2016 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.codehaus.groovy.eclipse.codeassist.processors; import java.util.List; import org.codehaus.groovy.eclipse.codeassist.proposals.IGroovyProposal; import org.codehaus.groovy.eclipse.codeassist.requestor.ContentAssistContext; import org.eclipse.jdt.ui.text.java.JavaContentAssistInvocationContext; /** * @author Romain Bioteau * Filters completion proposals displayed by the groovy editor content assistant. * Contributions to the <tt>org.codehaus.groovy.eclipse.codeassist.completion.ProposalFilter</tt> extension point * must implement this interface. */ public interface IProposalFilter { /** * Filter a list of IGroovyProposal <br> * - Remove undesired (duplicate) entries <br> * - Augment the relevance of certain proposals <br> * - Supplement existing entries with additional information<br> * * Note that if you want to augment the relevance of a given proposal, you * must cast the proposal to {@link AbstractGroovyProposal} and call the * method {@link AbstractGroovyProposal#setRelevanceMultiplier(float)}. Look * at the {@link Relevance} enumeration for how relevance is calculated. * * @param proposals * The List of proposals * @return The filtered list of proposals as List */ public List<IGroovyProposal> filterProposals( List<IGroovyProposal> proposals, ContentAssistContext context, JavaContentAssistInvocationContext javaContext); }