package ru.naumen.gintonic.context.quickfix.moving; import java.util.List; import org.eclipse.core.runtime.CoreException; import org.eclipse.jdt.core.dom.CompilationUnit; import org.eclipse.jdt.ui.text.java.IInvocationContext; import org.eclipse.jdt.ui.text.java.IJavaCompletionProposal; import ru.naumen.gintonic.context.quickfix.AbstractGinTonicQuickFix; import ru.naumen.gintonic.guice.GuiceIndex; import ru.naumen.gintonic.guice.injection.InjectionPoint; import ru.naumen.gintonic.guice.injection.InjectionPointDao; import ru.naumen.gintonic.guice.statements.BindingDefinition; public abstract class AbstractGTMovingQuickFix extends AbstractGinTonicQuickFix { @Override public final void addProposals(IInvocationContext context, List<IJavaCompletionProposal> proposals) throws CoreException { CompilationUnit astRoot = context.getASTRoot(); InjectionPointDao injectionPointDao = new InjectionPointDao(); InjectionPoint injectionPoint = injectionPointDao.getGuiceFieldDeclarationIfFieldDeclaration(context.getCoveringNode(), astRoot); if (injectionPoint != null) { GuiceIndex guiceIndex = GuiceIndex.get(); List<BindingDefinition> bindingDefinitions = guiceIndex.getBindingDefinitions(injectionPoint); addMovingProposal(proposals, injectionPoint, bindingDefinitions); } } protected abstract void addMovingProposal(List<IJavaCompletionProposal> proposals, InjectionPoint injectionPoint, List<BindingDefinition> bindingDefinitions); }