Example usage for org.eclipse.jdt.core CompletionProposal isConstructor

List of usage examples for org.eclipse.jdt.core CompletionProposal isConstructor

Introduction

In this page you can find the example usage for org.eclipse.jdt.core CompletionProposal isConstructor.

Prototype

public boolean isConstructor() 

Source Link

Document

Returns whether this proposal is a constructor.

Usage

From source file:at.bestsolution.fxide.jdt.editor.internal.MethodUtil.java

License:Open Source License

public MethodUtil(CompletionProposal proposal, IType type) {
    this.type = type;
    this.name = proposal.getName();
    this.methodSignature = proposal.getSignature();
    this.constructor = proposal.isConstructor();
    this.declSignature = proposal.getDeclarationSignature();
}

From source file:com.microsoft.javapkgsrv.JavaParser.java

License:MIT License

private AutocompleteResponse.Completion translateToCompletion(CompletionProposal proposal) {
    AutocompleteResponse.Completion.Builder builder = AutocompleteResponse.Completion.newBuilder()
            .setKind(AutocompleteResponse.Completion.CompletionKind.valueOf(proposal.getKind()))
            .setIsConstructor(proposal.isConstructor())
            .setCompletionText(String.copyValueOf(proposal.getCompletion())).setFlags(proposal.getFlags())
            .setRelevance(proposal.getRelevance()).setReplaceStart(proposal.getReplaceStart())
            .setReplaceEnd(proposal.getReplaceEnd());

    char[] sig = proposal.getSignature();

    if (sig != null) {
        if (proposal.getKind() == CompletionProposal.METHOD_REF
                || proposal.getKind() == CompletionProposal.JAVADOC_METHOD_REF)
            builder.setSignature(new String(Signature.toCharArray(sig, proposal.getName(), null, false, true)));
        else/*w ww  .j av a 2 s  . c  om*/
            builder.setSignature(new String(Signature.toCharArray(sig)));
    }
    char[] name = proposal.getName();
    if (name == null)
        builder.setName(builder.getCompletionText());
    else
        builder.setName(String.copyValueOf(name));
    return builder.build();
}

From source file:edu.brown.cs.bubbles.bedrock.BedrockUtil.java

License:Open Source License

/********************************************************************************/

static void outputCompletion(CompletionProposal cp, IvyXmlWriter xw) {
    xw.begin("COMPLETION");
    fieldValue(xw, "ACCESSIBILITY", cp.getAccessibility(), accessibility_types);
    if (cp.isConstructor())
        xw.field("CONSTRUCTOR", true);
    xw.field("TEXT", cp.getCompletion());
    xw.field("INDEX", cp.getCompletionLocation());
    xw.field("DECLKEY", cp.getDeclarationKey());
    switch (cp.getKind()) {
    case CompletionProposal.ANNOTATION_ATTRIBUTE_REF:
    case CompletionProposal.ANONYMOUS_CLASS_DECLARATION:
    case CompletionProposal.FIELD_IMPORT:
    case CompletionProposal.FIELD_REF:
    case CompletionProposal.FIELD_REF_WITH_CASTED_RECEIVER:
    case CompletionProposal.METHOD_IMPORT:
    case CompletionProposal.METHOD_REF:
    case CompletionProposal.METHOD_REF_WITH_CASTED_RECEIVER:
    case CompletionProposal.METHOD_DECLARATION:
    case CompletionProposal.POTENTIAL_METHOD_DECLARATION:
        xw.field("DECLSIGN", cp.getDeclarationSignature());
        break;//from  w ww .  ja  v a2s  .c  om
    case CompletionProposal.PACKAGE_REF:
    case CompletionProposal.TYPE_IMPORT:
    case CompletionProposal.TYPE_REF:
        xw.field("DOTNAME", cp.getDeclarationSignature());
        break;
    }
    fieldFlags(xw, "ACCESS", cp.getFlags(), access_flags);
    xw.field("FLAGS", cp.getFlags());
    xw.field("KEY", cp.getKey());
    xw.field("NAME", cp.getName());
    xw.field("RELEVANCE", cp.getRelevance());
    xw.field("REPLACE_START", cp.getReplaceStart());
    xw.field("REPLACE_END", cp.getReplaceEnd());
    xw.field("SIGNATURE", cp.getSignature());
    xw.field("TOKEN_START", cp.getTokenStart());
    xw.field("TOKEN_END", cp.getTokenEnd());
    fieldValue(xw, "KIND", cp.getKind(), completion_types);
    if (cp instanceof ICompletionProposalExtension4) {
        ICompletionProposalExtension4 icp4 = (ICompletionProposalExtension4) cp;
        xw.field("AUTO", icp4.isAutoInsertable());
    }

    if (CompletionFlags.isStaticImport(cp.getAdditionalFlags()))
        xw.field("STATICIMPORT", true);

    if (cp.getKind() == CompletionProposal.FIELD_REF_WITH_CASTED_RECEIVER
            || cp.getKind() == CompletionProposal.METHOD_REF_WITH_CASTED_RECEIVER) {
        xw.field("RECEIVER_SIGN", cp.getReceiverSignature());
        xw.field("RECEIVER_START", cp.getReceiverStart());
        xw.field("RECEIVER_END", cp.getReceiverEnd());
    }
    xw.field("RCVR", cp.getReceiverSignature());

    xw.cdataElement("DESCRIPTION", cp.toString());

    CompletionProposal[] rq = cp.getRequiredProposals();
    if (rq != null) {
        xw.begin("REQUIRED");
        for (CompletionProposal xcp : rq)
            outputCompletion(xcp, xw);
        xw.end("REQUIRED");
    }

    xw.end("COMPLETION");
}

From source file:org.eclipse.flux.jdt.services.CompletionProposalDescriptionProvider.java

License:Open Source License

/**
 * Creates a display label for the given method proposal. The display label
 * consists of://from  w ww.j  a va2s . co m
 * <ul>
 *   <li>the method name</li>
 *   <li>the parameter list (see {@link #createParameterList(CompletionProposal)})</li>
 *   <li>the upper bound of the return type (see {@link SignatureUtil#getUpperBound(String)})</li>
 *   <li>the raw simple name of the declaring type</li>
 * </ul>
 * <p>
 * Examples:
 * For the <code>get(int)</code> method of a variable of type <code>List<? extends Number></code>, the following
 * display name is returned: <code>get(int index)  Number - List</code>.<br>
 * For the <code>add(E)</code> method of a variable of type <code>List<? super Number></code>, the following
 * display name is returned: <code>add(Number o)  void - List</code>.<br>
 * </p>
 *
 * @param methodProposal the method proposal to display
 * @return the display label for the given method proposal
 */
StringBuilder createMethodProposalLabel(CompletionProposal methodProposal) {
    StringBuilder description = new StringBuilder();

    description.append("[");

    description.append("{\"value\":\"");
    // method name
    description.append(methodProposal.getName());

    // parameters
    description.append('(');
    appendUnboundedParameterList(description, methodProposal);
    description.append(')');

    // return type
    if (!methodProposal.isConstructor()) {
        // TODO remove SignatureUtil.fix83600 call when bugs are fixed
        char[] returnType = createTypeDisplayName(SignatureUtil
                .getUpperBound(Signature.getReturnType(SignatureUtil.fix83600(methodProposal.getSignature()))));
        description.append(RETURN_TYPE_SEPARATOR);
        description.append(returnType);
    }

    description.append("\"}");

    description.append(",");
    description.append("{\"value\":\"");

    // declaring type
    description.append(QUALIFIER_SEPARATOR);
    String declaringType = extractDeclaringTypeFQN(methodProposal);

    if (methodProposal.getRequiredProposals() != null) {
        String qualifier = Signature.getQualifier(declaringType);
        if (qualifier.length() > 0) {
            description.append(qualifier);
            description.append('.');
        }
    }

    declaringType = Signature.getSimpleName(declaringType);
    description.append(declaringType);

    description.append("\",\"style\":{");
    description.append("\"color\":\"#AAAAAA\"");
    description.append("}");
    description.append("}");

    description.append("]");

    return description;
}

From source file:org.eclipse.flux.jdt.services.CompletionProposalReplacementProvider.java

License:Open Source License

private final boolean canAutomaticallyAppendSemicolon(CompletionProposal proposal) {
    return !proposal.isConstructor() && CharOperation.equals(new char[] { Signature.C_VOID },
            Signature.getReturnType(proposal.getSignature()));
}

From source file:org.eclipse.jst.jsp.ui.internal.contentassist.JSPProposalCollector.java

License:Open Source License

/**
 * Overridden to://from   w w  w .j  av  a 2  s  .  co m
 *  - translate Java -> JSP offsets
 *  - fix cursor-position-after
 *  - fix mangled servlet name in display string
 *  - remove unwanted proposals (servlet constructor)
 */
protected IJavaCompletionProposal createJavaCompletionProposal(CompletionProposal proposal) {

    JSPCompletionProposal jspProposal = null;

    // ignore constructor proposals (they're not relevant for our JSP proposal list)
    if (!proposal.isConstructor()) {
        int kind = proposal.getKind();
        if (proposal.getKind() == CompletionProposal.TYPE_REF && JSPUIPlugin.getDefault().getPreferenceStore()
                .getBoolean(JSPUIPreferenceNames.AUTO_IMPORT_INSERT)) {
            String signature = String.valueOf(proposal.getDeclarationSignature());
            String completion = String.valueOf(proposal.getCompletion());
            if (completion.indexOf(signature + ".") != -1) { //$NON-NLS-1$
                jspProposal = createAutoImportProposal(proposal);
            }
        } else if (kind == CompletionProposal.METHOD_REF) {
            jspProposal = createMethodProposal(proposal);
        }

        // default behavior
        if (jspProposal == null)
            jspProposal = createJspProposal(proposal);
    }
    return jspProposal;
}

From source file:org.eclipse.objectteams.otdt.tests.model.CompletionTestsRequestor2.java

License:Open Source License

protected StringBuffer printProposal(CompletionProposal proposal, int tab, StringBuffer buffer) {
    for (int i = 0; i < tab; i++) {
        buffer.append("   "); //$NON-NLS-1$
    }/*w w w  . j a  va  2  s .c o m*/
    buffer.append(getElementName(proposal));
    buffer.append('[');
    switch (proposal.getKind()) {
    case CompletionProposal.ANONYMOUS_CLASS_DECLARATION:
        buffer.append("ANONYMOUS_CLASS_DECLARATION"); //$NON-NLS-1$
        break;
    case CompletionProposal.FIELD_REF:
        buffer.append("FIELD_REF"); //$NON-NLS-1$
        break;
    case CompletionProposal.FIELD_REF_WITH_CASTED_RECEIVER:
        buffer.append("FIELD_REF_WITH_CASTED_RECEIVER"); //$NON-NLS-1$
        break;
    case CompletionProposal.KEYWORD:
        buffer.append("KEYWORD"); //$NON-NLS-1$
        break;
    case CompletionProposal.LABEL_REF:
        buffer.append("LABEL_REF"); //$NON-NLS-1$
        break;
    case CompletionProposal.LOCAL_VARIABLE_REF:
        buffer.append("LOCAL_VARIABLE_REF"); //$NON-NLS-1$
        break;
    case CompletionProposal.METHOD_DECLARATION:
        buffer.append("METHOD_DECLARATION"); //$NON-NLS-1$
        if (proposal.isConstructor()) {
            buffer.append("<CONSTRUCTOR>"); //$NON-NLS-1$
        }
        break;
    case CompletionProposal.METHOD_REF:
        buffer.append("METHOD_REF"); //$NON-NLS-1$
        if (proposal.isConstructor()) {
            buffer.append("<CONSTRUCTOR>"); //$NON-NLS-1$
        }
        break;
    case CompletionProposal.METHOD_REF_WITH_CASTED_RECEIVER:
        buffer.append("METHOD_REF_WITH_CASTED_RECEIVER"); //$NON-NLS-1$
        if (proposal.isConstructor()) {
            buffer.append("<CONSTRUCTOR>"); //$NON-NLS-1$
        }
        break;
    case CompletionProposal.PACKAGE_REF:
        buffer.append("PACKAGE_REF"); //$NON-NLS-1$
        break;
    case CompletionProposal.TYPE_REF:
        buffer.append("TYPE_REF"); //$NON-NLS-1$
        break;
    case CompletionProposal.VARIABLE_DECLARATION:
        buffer.append("VARIABLE_DECLARATION"); //$NON-NLS-1$
        break;
    case CompletionProposal.POTENTIAL_METHOD_DECLARATION:
        buffer.append("POTENTIAL_METHOD_DECLARATION"); //$NON-NLS-1$
        break;
    case CompletionProposal.METHOD_NAME_REFERENCE:
        //{ObjectTeams: original "METHOD_IMPORT" is now misleading (used for rhs short method spec, too)            
        buffer.append("METHOD_NAME_REF"); //$NON-NLS-1$
        // SH}            
        break;
    //{ObjectTeams: new kinds:            
    case CompletionProposal.OT_METHOD_SPEC:
        buffer.append("METHOD_SPEC"); //$NON-NLS-1$
        break;
    case CompletionProposal.OT_FIELD_SPEC:
        buffer.append("FIELD_SPEC"); //$NON-NLS-1$
        break;
    case CompletionProposal.OT_CALLOUT_GET:
        buffer.append("CALLOUT_GET"); //$NON-NLS-1$
        break;
    case CompletionProposal.OT_CALLOUT_SET:
        buffer.append("CALLOUT_SET"); //$NON-NLS-1$
        break;
    case CompletionProposal.OT_CALLOUT_DECLARATION:
        buffer.append("CALLOUT_DECLARATION"); //$NON-NLS-1$
        break;
    case CompletionProposal.OT_CALLOUT_OVERRIDE_DECLARATION:
        buffer.append("CALLOUT_OVERRIDE_DECLARATION"); //$NON-NLS-1$
        break;
    case CompletionProposal.OT_CALLIN_DECLARATION:
        buffer.append("CALLIN_DECLARATION"); //$NON-NLS-1$
        break;
    // SH}
    case CompletionProposal.ANNOTATION_ATTRIBUTE_REF:
        buffer.append("ANNOTATION_ATTRIBUTE_REF"); //$NON-NLS-1$
        break;
    case CompletionProposal.JAVADOC_BLOCK_TAG:
        buffer.append("JAVADOC_BLOCK_TAG"); //$NON-NLS-1$
        break;
    case CompletionProposal.JAVADOC_INLINE_TAG:
        buffer.append("JAVADOC_INLINE_TAG"); //$NON-NLS-1$
        break;
    case CompletionProposal.JAVADOC_FIELD_REF:
        buffer.append("JAVADOC_FIELD_REF"); //$NON-NLS-1$
        break;
    case CompletionProposal.JAVADOC_METHOD_REF:
        buffer.append("JAVADOC_METHOD_REF"); //$NON-NLS-1$
        break;
    case CompletionProposal.JAVADOC_TYPE_REF:
        buffer.append("JAVADOC_TYPE_REF"); //$NON-NLS-1$
        break;
    case CompletionProposal.JAVADOC_PARAM_REF:
        buffer.append("JAVADOC_PARAM_REF"); //$NON-NLS-1$
        break;
    case CompletionProposal.JAVADOC_VALUE_REF:
        buffer.append("JAVADOC_VALUE_REF"); //$NON-NLS-1$
        break;
    case CompletionProposal.FIELD_IMPORT:
        buffer.append("FIELD_IMPORT"); //$NON-NLS-1$
        break;
    case CompletionProposal.METHOD_IMPORT:
        buffer.append("METHOD_IMPORT"); //$NON-NLS-1$
        break;
    case CompletionProposal.TYPE_IMPORT:
        buffer.append("TYPE_IMPORT"); //$NON-NLS-1$
        break;
    default:
        buffer.append("PROPOSAL"); //$NON-NLS-1$
        break;

    }
    buffer.append("]{");
    buffer.append(proposal.getCompletion() == null ? NULL_LITERAL : proposal.getCompletion());
    buffer.append(", ");
    buffer.append(
            proposal.getDeclarationSignature() == null ? NULL_LITERAL : proposal.getDeclarationSignature());
    buffer.append(", ");
    buffer.append(proposal.getSignature() == null ? NULL_LITERAL : proposal.getSignature());

    char[] receiverSignature = proposal.getReceiverSignature();
    if (receiverSignature != null) {
        buffer.append(", ");
        buffer.append(receiverSignature);
    }

    if (this.showUniqueKeys) {
        buffer.append(", ");
        buffer.append(proposal.getDeclarationKey() == null ? NULL_LITERAL : proposal.getDeclarationKey());
        buffer.append(", ");
        buffer.append(proposal.getKey() == null ? NULL_LITERAL : proposal.getKey());
    }
    buffer.append(", ");
    buffer.append(proposal.getName() == null ? NULL_LITERAL : proposal.getName());
    if (this.showParameterNames) {
        char[][] parameterNames = proposal.findParameterNames(null);
        buffer.append(", ");
        if (parameterNames == null || parameterNames.length <= 0) {
            buffer.append(NULL_LITERAL);
        } else {
            buffer.append("(");
            for (int i = 0; i < parameterNames.length; i++) {
                if (i > 0)
                    buffer.append(", ");
                buffer.append(parameterNames[i]);
            }
            buffer.append(")");
        }
    }

    if (this.showPositions) {
        buffer.append(", ");
        if (this.showTokenPositions || receiverSignature != null)
            buffer.append("replace");
        buffer.append("[");
        buffer.append(proposal.getReplaceStart());
        buffer.append(", ");
        buffer.append(proposal.getReplaceEnd());
        buffer.append("]");
    }
    if (this.showTokenPositions) {
        buffer.append(", token[");
        buffer.append(proposal.getTokenStart());
        buffer.append(", ");
        buffer.append(proposal.getTokenEnd());
        buffer.append("]");
    }
    if (this.showPositions && receiverSignature != null) {
        buffer.append(", receiver[");
        buffer.append(proposal.getReceiverStart());
        buffer.append(", ");
        buffer.append(proposal.getReceiverEnd());
        buffer.append("]");
    }
    buffer.append(", ");
    buffer.append(proposal.getRelevance());
    buffer.append('}');
    if (this.showMissingTypes) {
        CompletionProposal[] requiredProposals = proposal.getRequiredProposals();
        if (requiredProposals != null) {
            int length = requiredProposals.length;
            System.arraycopy(requiredProposals, 0, requiredProposals = new CompletionProposal[length], 0,
                    length);
            quickSort(requiredProposals, 0, length - 1);
            for (int i = 0; i < length; i++) {
                buffer.append('\n');
                printProposal(requiredProposals[i], tab + 1, buffer);
            }
        }
    }
    return buffer;
}

From source file:org.eclipse.recommenders.completion.rcp.utils.ProposalUtils.java

License:Open Source License

private static Optional<IMethodName> toMethodNameFallback(CompletionProposal proposal) {
    if (isArrayCloneMethod(proposal)) {
        return Optional.of(OBJECT_CLONE);
    }//w  w w .ja v a 2s.  co  m

    if (Constants.DEBUG) {
        log(LogMessages.INFO_FALLBACK_METHOD_NAME_CREATION, toLogString(proposal));
    }

    StringBuilder builder = new StringBuilder();

    // Declaring type
    char[] declarationSignature = proposal.getDeclarationSignature();
    char[] binaryTypeSignature = getBinaryTypeSignatureCopy(declarationSignature);
    char[] erasedBinaryTypeSignature = Signature.getTypeErasure(binaryTypeSignature);
    CharOperation.replace(erasedBinaryTypeSignature, '.', '/');
    builder.append(erasedBinaryTypeSignature, 0, erasedBinaryTypeSignature.length - 1);

    builder.append('.');

    // Method name
    builder.append(proposal.isConstructor() ? INIT : proposal.getName());

    builder.append('(');

    // Parameter types
    char[] signature = getSignature(proposal);
    char[][] typeParameters = Signature.getTypeParameters(declarationSignature);
    char[][] parameterTypes = Signature.getParameterTypes(signature);
    for (char[] parameterType : parameterTypes) {
        appendType(builder, parameterType, typeParameters);
    }

    builder.append(')');

    // Return type
    appendType(builder, Signature.getReturnType(signature), typeParameters);

    String methodName = builder.toString();
    try {
        return Optional.<IMethodName>of(VmMethodName.get(methodName));
    } catch (Exception e) {
        log(LogMessages.ERROR_SYNTATICALLY_INCORRECT_METHOD_NAME, e, methodName, toLogString(proposal));
        return absent();
    }
}

From source file:org.eclipse.recommenders.completion.rcp.utils.ProposalUtils.java

License:Open Source License

private static boolean isArrayCloneMethod(CompletionProposal proposal) {
    if (proposal.isConstructor()) {
        // Not a method proposal
        return false;
    }// w ww. ja  va2s.  c om

    char[] declarationSignature = proposal.getDeclarationSignature();
    if (declarationSignature[0] != '[') {
        // Not an array
        return false;
    }

    if (!CharOperation.equals(TypeConstants.CLONE, proposal.getName())) {
        // Not named clone
        return false;
    }

    char[] signature = proposal.getSignature();
    if (signature.length != declarationSignature.length + 2 || signature[0] != '(' || signature[1] != ')') {
        // Overload of real (no-args) clone method
        return false;
    }

    if (!CharOperation.endsWith(signature, declarationSignature)) {
        // Wrong return type
        return false;
    }

    return true;
}

From source file:org.jboss.tools.vscode.java.CompletionProposalDescriptionProvider.java

License:Open Source License

/**
 * Creates a display label for the given method proposal. The display label
 * consists of:/*from  w  w  w  .j  a  v  a2s .  com*/
 * <ul>
 *   <li>the method name</li>
 *   <li>the parameter list (see {@link #createParameterList(CompletionProposal)})</li>
 *   <li>the upper bound of the return type (see {@link SignatureUtil#getUpperBound(String)})</li>
 *   <li>the raw simple name of the declaring type</li>
 * </ul>
 * <p>
 * Examples:
 * For the <code>get(int)</code> method of a variable of type <code>List<? extends Number></code>, the following
 * display name is returned: <code>get(int index)  Number - List</code>.<br>
 * For the <code>add(E)</code> method of a variable of type <code>List<? super Number></code>, the following
 * display name is returned: <code>add(Number o)  void - List</code>.<br>
 * </p>
 *
 * @param methodProposal the method proposal to display
 * @return the display label for the given method proposal
 */
StringBuilder createMethodProposalLabel(CompletionProposal methodProposal) {
    StringBuilder description = new StringBuilder();

    // method name
    description.append(methodProposal.getName());

    // parameters
    description.append('(');
    appendUnboundedParameterList(description, methodProposal);
    description.append(')');

    // return type
    if (!methodProposal.isConstructor()) {
        // TODO remove SignatureUtil.fix83600 call when bugs are fixed
        char[] returnType = createTypeDisplayName(SignatureUtil
                .getUpperBound(Signature.getReturnType(SignatureUtil.fix83600(methodProposal.getSignature()))));
        description.append(RETURN_TYPE_SEPARATOR);
        description.append(returnType);
    }

    // declaring type
    description.append(QUALIFIER_SEPARATOR);
    String declaringType = extractDeclaringTypeFQN(methodProposal);

    if (methodProposal.getRequiredProposals() != null) {
        String qualifier = Signature.getQualifier(declaringType);
        if (qualifier.length() > 0) {
            description.append(qualifier);
            description.append('.');
        }
    }

    declaringType = Signature.getSimpleName(declaringType);
    description.append(declaringType);

    return description;
}