List of usage examples for org.eclipse.jdt.internal.codeassist CompletionEngine createDefaultParameterNames
public static char[][] createDefaultParameterNames(int length)
From source file:org.eclipse.recommenders.internal.completion.rcp.AccessibleCompletionProposals.java
License:Open Source License
public static Optional<AccessibleCompletionProposal> newMethodRef(IMethod method, int completionOffset, int prefixLength, int relevance) { String completion = method.getElementName() + "()"; String[] params = method.getParameterTypes(); String[] resolved = new String[params.length]; IType declaringType = method.getDeclaringType(); // boolean isVararg = Flags.isVarargs(method.getFlags()); int lastParam = params.length - 1; for (int i = 0; i <= lastParam; i++) { String resolvedParam = params[i]; String unresolvedParam = params[i]; resolvedParam = resolveToBinary(unresolvedParam, declaringType).orNull(); if (resolvedParam == null) { return Optional.absent(); }/*from w w w . j a va 2 s . com*/ resolved[i] = resolvedParam; // TODO no varargs support } String returnType; try { returnType = resolveToBinary(method.getReturnType(), declaringType).orNull(); } catch (JavaModelException e) { e.printStackTrace(); return Optional.absent(); } if (returnType == null) { // e.g. a type parameter "QE;" return Optional.absent(); } AccessibleCompletionProposal res = new AccessibleCompletionProposal(CompletionProposal.METHOD_REF, relevance); try { res.setFlags(method.getFlags()); } catch (JavaModelException e1) { e1.printStackTrace(); } res.setCompletion(completion.toCharArray()); String declarationSignature = Signature .createTypeSignature(method.getDeclaringType().getFullyQualifiedName(), true); res.setDeclarationSignature(declarationSignature.toCharArray()); String signature = Signature.createMethodSignature(resolved, returnType); res.setSignature(signature.toCharArray()); res.setName(method.getElementName().toCharArray()); res.setReplaceRange(completionOffset - prefixLength, completionOffset); char[][] paramNames = new char[params.length][]; try { String[] parameterNames = method.getParameterNames(); for (int i = 0; i < paramNames.length; i++) { paramNames[i] = parameterNames[i].toCharArray(); } } catch (JavaModelException e) { e.printStackTrace(); paramNames = CompletionEngine.createDefaultParameterNames(params.length); } res.setParameterNames(paramNames); res.setData(IMethod.class, method); res.setData(IJavaProject.class, method.getJavaProject()); return of(res); }