package com.farata.cleardatabuilder.extjs.validation.correction;
import java.util.Collection;
import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jdt.core.dom.ASTNode;
import org.eclipse.jdt.core.dom.Annotation;
import org.eclipse.jdt.core.dom.MethodDeclaration;
import org.eclipse.jdt.core.dom.ParameterizedType;
import org.eclipse.jdt.core.dom.Type;
import org.eclipse.jdt.internal.ui.text.correction.LocalCorrectionsSubProcessor;
import org.eclipse.jdt.internal.ui.text.correction.ProblemLocation;
import org.eclipse.jdt.internal.ui.text.correction.proposals.MissingAnnotationAttributesProposal;
import org.eclipse.jdt.ui.text.java.IInvocationContext;
import org.eclipse.jdt.ui.text.java.IJavaCompletionProposal;
import org.eclipse.jdt.ui.text.java.IProblemLocation;
import com.farata.cleardatabuilder.extjs.validation.correction.proposals.AddTransferInfoProposal;
public class TransferInfoMissingSubProcessor {
public static void transferInfoMissingProposals(IInvocationContext context, IProblemLocation problem, Collection<IJavaCompletionProposal> proposals) {
addValueForAnnotationProposals(context, problem, proposals);
//LocalCorrectionsSubProcessor.addValueForAnnotationProposals(context, problem, proposals);
}
public static void addValueForAnnotationProposals(IInvocationContext context, IProblemLocation problem, Collection proposals)
{
ICompilationUnit cu = context.getCompilationUnit();
ASTNode selectedNode = problem.getCoveringNode(context.getASTRoot());
if (!(selectedNode instanceof Annotation)) {
selectedNode = selectedNode.getParent();
}
if(selectedNode instanceof Annotation)
{
Annotation annotation = (Annotation)selectedNode;
if(annotation.resolveTypeBinding() == null)
return;
AddTransferInfoProposal proposal = new AddTransferInfoProposal(cu, annotation, 10);
proposals.add(proposal);
MethodDeclaration method = (MethodDeclaration) annotation.getParent();
Type returnType = method.getReturnType2();
ProblemLocation problem2 = new ProblemLocation(returnType.getStartPosition(), returnType.getLength(), 16777748, problem.getProblemArguments(), true, problem.getMarkerType());
LocalCorrectionsSubProcessor.addTypePrametersToRawTypeReference(context, problem2, proposals);
}
}
}