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

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

Introduction

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

Prototype

public int getFlags() 

Source Link

Document

Returns the modifier flags relevant in the context, or Flags.AccDefault if none.

Usage

From source file:at.bestsolution.javafx.ide.jdt.internal.JavaEditor.java

License:Open Source License

@Inject
public JavaEditor(BorderPane pane, IEditorInput input) {
    editor = new SourceEditor();
    pane.setCenter(editor);//from w w w.j  av  a 2  s .  c  o m

    IResourceFileInput fsInput = (IResourceFileInput) input;
    try {
        unit = ((ICompilationUnit) JavaCore.create(fsInput.getFile()))
                .getWorkingCopy(new FXWorkingCopyOwner(new IProblemRequestor() {
                    private List<ProblemMarker> l = new ArrayList<>();

                    @Override
                    public boolean isActive() {
                        // TODO Auto-generated method stub
                        return true;
                    }

                    @Override
                    public void endReporting() {
                        setMarkers(l);
                    }

                    @Override
                    public void beginReporting() {
                        l.clear();
                    }

                    @Override
                    public void acceptProblem(IProblem problem) {
                        int linenumber = problem.getSourceLineNumber();
                        int startCol = problem.getSourceStart();
                        int endCol = problem.getSourceEnd();

                        if (endCol == startCol) {
                            endCol++;
                        }

                        String description = problem.getMessage();
                        ProblemMarker marker = new ProblemMarker(
                                problem.isError() ? at.bestsolution.javafx.ide.editor.ProblemMarker.Type.ERROR
                                        : at.bestsolution.javafx.ide.editor.ProblemMarker.Type.WARNING,
                                linenumber, startCol, endCol, description);
                        l.add(marker);
                    }
                }), new NullProgressMonitor());
    } catch (JavaModelException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

    final Document doc = createDocument(unit);
    editor.setDocument(doc);
    editor.setContentProposalComputer(new ContentProposalComputer() {

        @Override
        public List<Proposal> computeProposals(String line, String prefix, int offset) {
            final List<Proposal> l = new ArrayList<ContentProposalComputer.Proposal>();

            try {
                unit.codeComplete(offset, new CompletionRequestor() {

                    @Override
                    public void accept(CompletionProposal proposal) {
                        String completion = new String(proposal.getCompletion());

                        if (!Flags.isPublic(proposal.getFlags())) {
                            return;
                        }

                        if (proposal.getKind() == CompletionProposal.METHOD_REF) {
                            String sig = Signature.toString(new String(proposal.getSignature()),
                                    new String(proposal.getName()), null, false, false);
                            StyledString s = new StyledString(sig + " : " + Signature.getSimpleName(Signature
                                    .toString(Signature.getReturnType(new String(proposal.getSignature())))));
                            s.appendString(
                                    " - " + Signature.getSignatureSimpleName(
                                            new String(proposal.getDeclarationSignature())),
                                    Style.colored("#AAAAAA"));

                            l.add(new Proposal(Type.METHOD, completion, s));
                        } else if (proposal.getKind() == CompletionProposal.FIELD_REF) {
                            StyledString s = new StyledString(
                                    completion + " : "
                                            + (proposal.getSignature() != null
                                                    ? Signature.getSignatureSimpleName(
                                                            new String(proposal.getSignature()))
                                                    : "<unknown>"));
                            s.appendString(
                                    " - " + (proposal.getDeclarationSignature() != null
                                            ? Signature.getSignatureSimpleName(
                                                    new String(proposal.getDeclarationSignature()))
                                            : "<unknown>"),
                                    Style.colored("#AAAAAA"));
                            l.add(new Proposal(Type.FIELD, completion, s));
                        } else if (proposal.getKind() == CompletionProposal.TYPE_REF) {
                            if (proposal.getAccessibility() == IAccessRule.K_NON_ACCESSIBLE) {
                                return;
                            }

                            StyledString s = new StyledString(
                                    Signature.getSignatureSimpleName(new String(proposal.getSignature())));
                            s.appendString(" - " + new String(proposal.getDeclarationSignature()),
                                    Style.colored("#AAAAAA"));
                            l.add(new Proposal(Type.TYPE, new String(proposal.getCompletion()), s));
                        } else {
                            System.err.println(proposal);
                        }
                    }
                });
            } catch (JavaModelException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return l;
        }

    });
    editor.setSaveCallback(new Runnable() {

        @Override
        public void run() {
            try {
                unit.commitWorkingCopy(true, null);
            } catch (JavaModelException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    });

    try {
        unit.reconcile(ICompilationUnit.NO_AST, true, null, null);
    } catch (JavaModelException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

From source file:com.amashchenko.eclipse.strutsclipse.java.SimpleJavaProposalCollector.java

License:Apache License

@Override
protected IJavaCompletionProposal createJavaCompletionProposal(CompletionProposal proposal) {
    if (collectMethods) {
        if (CompletionProposal.METHOD_REF == proposal.getKind() && Flags.isPublic(proposal.getFlags())) {
            char[] sig = proposal.getSignature();
            char[] declSig = proposal.getDeclarationSignature();
            // collect methods suitable for action methods ignoring Object
            // methods
            if (sig != null && declSig != null && ACTION_METHOD_SIGNATURE.equals(String.valueOf(sig))
                    && !OBJECT_SIGNATURE.equals(String.valueOf(declSig))) {
                return new SimpleJavaCompletionProposal(proposal, getInvocationContext(),
                        getImage(getLabelProvider().createImageDescriptor(proposal)));
            }//from  w  w  w .j ava2s.c  om
        }
    } else {
        // collect packages and classes suitable for actions
        if ((CompletionProposal.PACKAGE_REF == proposal.getKind()
                || CompletionProposal.TYPE_REF == proposal.getKind()) && !Flags.isAbstract(proposal.getFlags())
                && !Flags.isInterface(proposal.getFlags()) && !Flags.isEnum(proposal.getFlags())) {
            return new SimpleJavaCompletionProposal(proposal, getInvocationContext(),
                    getImage(getLabelProvider().createImageDescriptor(proposal)));
        }
    }
    return null;
}

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 w w .  j  av  a 2s. co m
            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:com.siteview.mde.internal.ui.editor.contentassist.TypePackageCompletionProcessor.java

License:Open Source License

private void generateProposals(String currentContent, IProject project, final Collection c,
        final int startOffset, final int length, final int typeScope) {

    class TypePackageCompletionRequestor extends CompletionRequestor {

        public TypePackageCompletionRequestor() {
            super(true);
            setIgnored(CompletionProposal.PACKAGE_REF, false);
            setIgnored(CompletionProposal.TYPE_REF, false);
        }/*from  ww w.j av  a2  s . c  o  m*/

        public void accept(CompletionProposal proposal) {
            if (proposal.getKind() == CompletionProposal.PACKAGE_REF) {
                String pkgName = new String(proposal.getCompletion());
                addProposalToCollection(c, startOffset, length, pkgName, pkgName,
                        MDEPluginImages.get(MDEPluginImages.OBJ_DESC_PACKAGE));
            } else {
                boolean isInterface = Flags.isInterface(proposal.getFlags());
                String completion = new String(proposal.getCompletion());
                if (isInterface && typeScope == IJavaSearchConstants.CLASS
                        || (!isInterface && typeScope == IJavaSearchConstants.INTERFACE)
                        || completion.equals("Dummy2")) //$NON-NLS-1$
                    // don't want Dummy class showing up as option.
                    return;
                int period = completion.lastIndexOf('.');
                String cName = null, pName = null;
                if (period == -1) {
                    cName = completion;
                } else {
                    cName = completion.substring(period + 1);
                    pName = completion.substring(0, period);
                }
                Image image = isInterface ? MDEPluginImages.get(MDEPluginImages.OBJ_DESC_GENERATE_INTERFACE)
                        : MDEPluginImages.get(MDEPluginImages.OBJ_DESC_GENERATE_CLASS);
                addProposalToCollection(c, startOffset, length, cName + " - " + pName, //$NON-NLS-1$
                        completion, image);
            }
        }

    }

    try {
        ICompilationUnit unit = getWorkingCopy(project);
        if (unit == null) {
            generateTypeProposals(currentContent, project, c, startOffset, length, 1);
            return;
        }
        IBuffer buff = unit.getBuffer();
        buff.setContents("class Dummy2 { " + currentContent); //$NON-NLS-1$

        CompletionRequestor req = new TypePackageCompletionRequestor();
        unit.codeComplete(15 + currentContent.length(), req);
        unit.discardWorkingCopy();
    } catch (JavaModelException e) {
    }
}

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;/*www.  j  av  a2  s .  com*/
    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.ajdt.internal.core.contentassist.ProposalRequestorWrapper.java

License:Open Source License

protected boolean shouldAccept(CompletionProposal proposal) {
    if (proposal.getKind() == CompletionProposal.FIELD_REF
            || proposal.getKind() == CompletionProposal.METHOD_REF) {

        if (world == null) {
            world = new AJWorldFacade(unit.getJavaProject().getProject());
        }//w w w.j  a  va  2s. com

        ITDInfo info = world.findITDInfoFromTargetType(proposal.getDeclarationSignature(), proposal.getName());
        if (info != null) {
            if (info.accessibility == Accessibility.PUBLIC) {
                // accessible everywhere
                return true;
            } else if (info.accessibility == Accessibility.PACKAGE) {
                // accessible only in package of declaring aspect
                if (((IPackageFragment) unit.getParent()).getElementName().equals(info.packageDeclaredIn)) {
                    int oldFlags = proposal.getFlags();
                    oldFlags |= Flags.AccDefault;
                    oldFlags &= ~Flags.AccPublic;
                    proposal.setFlags(oldFlags);
                    return true;
                }
            } else if (info.accessibility == Accessibility.PRIVATE) {
                // accessible only in declaring aspect's compilation unit
                if (unit.getElementName().startsWith(info.topLevelAspectName + ".")
                        && ((IPackageFragment) unit.getParent()).getElementName()
                                .equals(info.packageDeclaredIn)) {

                    int oldFlags = proposal.getFlags();
                    oldFlags |= Flags.AccPrivate;
                    oldFlags &= ~Flags.AccPublic;
                    proposal.setFlags(oldFlags);
                    return true;
                }

            }
            return false;
        } else {
            // not an ITD
            return true;
        }
    } else if (proposal.getKind() == CompletionProposal.LOCAL_VARIABLE_REF) {
        // check to see if this is the proposal that has been added by the context switch for ITDs
        if (contextSwitchIgnore(proposal)) {
            return false;
        }
    } else if (proposal.getKind() == CompletionProposal.TYPE_REF) {
        // check to see if this is an ITIT type that should not be see
        char[] typeName = (char[]) ReflectionUtils.getPrivateField(InternalCompletionProposal.class, "typeName",
                (InternalCompletionProposal) proposal);
        if (typeName != null && CharOperation.contains('$', typeName)) {
            return false;
        }
    }
    return true;
}

From source file:org.eclipse.ajdt.ui.tests.editor.contentassist.PetClinicTests.java

License:Open Source License

/**
 * Tests that ITDs that are not visible in the current 
 * scope do not appear as content assist proposals 
 *///from  w ww. java 2 s. c om
public void testPrivateContentAssistShouldAppear() throws Exception {
    MockCompletionRequestor requestor = new MockCompletionRequestor();
    // check that itds are inserted
    int offset = entityAspectContents.indexOf("this.") + "this.".length();
    entityAspect.codeComplete(offset, requestor, AJWorkingCopyOwner.INSTANCE);

    // should see the id proposal.  It is private, but declared in this aspect
    CompletionProposal idProposal = null;
    for (Iterator acceptedIter = requestor.accepted.iterator(); acceptedIter.hasNext();) {
        CompletionProposal proposal = (CompletionProposal) acceptedIter.next();
        if (new String(proposal.getName()).equals("id")) {
            idProposal = proposal;
        }
    }
    assertNotNull("Should have found the 'id' proposal because it is private, but declared in this aspect",
            idProposal);
    assertTrue("Proposal should be marked as Package Protected",
            ProgramElement.genAccessibility(idProposal.getFlags()) == Accessibility.PRIVATE);
}

From source file:org.eclipse.ajdt.ui.tests.editor.contentassist.PetClinicTests.java

License:Open Source License

public void testPackageProtectedContentAssistShouldAppear() throws Exception {
    MockCompletionRequestor requestor = new MockCompletionRequestor();
    // check that itds are inserted
    int offset = ownerUnitContents.indexOf("this.") + "this.".length();
    ownerUnit.codeComplete(offset, requestor, AJWorkingCopyOwner.INSTANCE);

    // should see the entityManager proposal.  It is package protected in an ITD in the same package
    CompletionProposal entityManagerProposal = null;
    for (Iterator acceptedIter = requestor.accepted.iterator(); acceptedIter.hasNext();) {
        CompletionProposal proposal = (CompletionProposal) acceptedIter.next();
        if (new String(proposal.getName()).equals("entityManager")) {
            entityManagerProposal = proposal;
        }//w  w  w . j a v  a  2  s  .  co m
    }
    assertNotNull("Should have found the 'entityManager' proposal because it is package protected",
            entityManagerProposal);
    assertTrue("Proposal should be marked as Package Protected",
            ProgramElement.genAccessibility(entityManagerProposal.getFlags()) == Accessibility.PACKAGE);
}

From source file:org.eclipse.ajdt.ui.tests.editor.contentassist.PetClinicTests.java

License:Open Source License

public void testPublicContentAssistShouldAppear() throws Exception {
    MockCompletionRequestor requestor = new MockCompletionRequestor();
    // check that itds are inserted
    int offset = ownerControllerContents.indexOf("new Owner().") + "new Owner().".length();
    ownerController.codeComplete(offset, requestor, AJWorkingCopyOwner.INSTANCE);

    // should see the entityManager proposal.  It is package protected in an ITD in the same package
    CompletionProposal getAddressProposal = null;
    for (Iterator acceptedIter = requestor.accepted.iterator(); acceptedIter.hasNext();) {
        CompletionProposal proposal = (CompletionProposal) acceptedIter.next();
        if (new String(proposal.getName()).equals("getAddress")) {
            getAddressProposal = proposal;
        }/*from  w  w  w . ja va 2s .  c  o  m*/
    }
    assertNotNull("Should have found the 'getAddress' proposal because it is public", getAddressProposal);
    assertTrue("Proposal should be marked as Public",
            ProgramElement.genAccessibility(getAddressProposal.getFlags()) == Accessibility.PUBLIC);
}

From source file:org.eclipse.dltk.freemarker.internal.ui.jdt.contentassist.TypePackageCompletionProcessor.java

License:Open Source License

private void generateProposals(String currentContent, IProject project, final Collection c,
        final int startOffset, final int length, final int typeScope) {

    class TypePackageCompletionRequestor extends CompletionRequestor {

        public TypePackageCompletionRequestor() {
            super(true);
            setIgnored(CompletionProposal.PACKAGE_REF, false);
            setIgnored(CompletionProposal.TYPE_REF, false);
        }//from   ww  w .  j  a v  a 2s.c om

        public void accept(CompletionProposal proposal) {
            if (proposal.getKind() == CompletionProposal.PACKAGE_REF) {
                String pkgName = new String(proposal.getCompletion());
                addProposalToCollection(c, startOffset, length, pkgName, pkgName,
                        FreemarkerUIPluginImages.get(FreemarkerUIPluginImages.OBJ_DESC_PACKAGE));
            } else {
                boolean isInterface = Flags.isInterface(proposal.getFlags());
                String completion = new String(proposal.getCompletion());
                if (isInterface && typeScope == IJavaSearchConstants.CLASS
                        || (!isInterface && typeScope == IJavaSearchConstants.INTERFACE)
                        || completion.equals("Dummy2")) //$NON-NLS-1$
                    // don't want Dummy class showing up as option.
                    return;
                int period = completion.lastIndexOf('.');
                String cName = null, pName = null;
                if (period == -1) {
                    cName = completion;
                } else {
                    cName = completion.substring(period + 1);
                    pName = completion.substring(0, period);
                }
                Image image = isInterface
                        ? FreemarkerUIPluginImages.get(FreemarkerUIPluginImages.OBJ_DESC_GENERATE_INTERFACE)
                        : FreemarkerUIPluginImages.get(FreemarkerUIPluginImages.OBJ_DESC_GENERATE_CLASS);
                addProposalToCollection(c, startOffset, length, cName + " - " + pName, //$NON-NLS-1$
                        completion, image);
            }
        }

    }

    try {
        ICompilationUnit unit = getWorkingCopy(project);
        if (unit == null) {
            generateTypeProposals(currentContent, project, c, startOffset, length, 1);
            return;
        }
        IBuffer buff = unit.getBuffer();
        buff.setContents("class Dummy2 { " + currentContent); //$NON-NLS-1$

        CompletionRequestor req = new TypePackageCompletionRequestor();
        unit.codeComplete(15 + currentContent.length(), req);
        unit.discardWorkingCopy();
    } catch (JavaModelException e) {
    }
}