Example usage for org.eclipse.jdt.core IJavaProject newEvaluationContext

List of usage examples for org.eclipse.jdt.core IJavaProject newEvaluationContext

Introduction

In this page you can find the example usage for org.eclipse.jdt.core IJavaProject newEvaluationContext.

Prototype

IEvaluationContext newEvaluationContext();

Source Link

Document

Creates a new evaluation context.

Usage

From source file:com.google.gwt.eclipse.core.editors.java.contentassist.JsniCompletionProcessor.java

License:Open Source License

private IEvaluationContext createEvaluationContext() throws JavaModelException {
    IJavaProject project = cu.getJavaProject();
    IEvaluationContext evalContext = project.newEvaluationContext();
    String pckgName = cu.getPackageDeclarations()[0].getElementName();
    // Scope evaluation to the containing package
    evalContext.setPackageName(pckgName);
    return evalContext;
}

From source file:org.drools.eclipse.editors.completion.DefaultCompletionProcessor.java

License:Apache License

protected List getAllClassProposals(final String classNameStart, final int documentOffset,
        final String prefix) {
    List result = new ArrayList();
    IJavaProject javaProject = getCurrentJavaProject();
    if (javaProject == null) {
        return result;
    }/*from  w  ww . j  av  a2s  . c o  m*/
    CompletionProposalCollector collector = new CompletionProposalCollector(javaProject) {
        public void accept(CompletionProposal proposal) {
            if (proposal.getKind() == org.eclipse.jdt.core.CompletionProposal.PACKAGE_REF
                    || proposal.getKind() == org.eclipse.jdt.core.CompletionProposal.TYPE_REF) {
                super.accept(proposal);
            }
        }
    };
    collector.acceptContext(new CompletionContext());
    try {
        IEvaluationContext evalContext = javaProject.newEvaluationContext();
        evalContext.codeComplete(classNameStart, classNameStart.length(), collector);
        IJavaCompletionProposal[] proposals = collector.getJavaCompletionProposals();
        for (int i = 0; i < proposals.length; i++) {
            if (proposals[i] instanceof AbstractJavaCompletionProposal) {
                AbstractJavaCompletionProposal javaProposal = (AbstractJavaCompletionProposal) proposals[i];
                int replacementOffset = documentOffset
                        - (classNameStart.length() - javaProposal.getReplacementOffset());
                javaProposal.setReplacementOffset(replacementOffset);
                if (javaProposal instanceof LazyJavaTypeCompletionProposal) {
                    String completionPrefix = classNameStart
                            .substring(classNameStart.length() - javaProposal.getReplacementLength());
                    int dotIndex = completionPrefix.lastIndexOf('.');
                    // match up to the last dot in order to make higher level matching still work (camel case...)
                    if (dotIndex != -1) {
                        javaProposal.setReplacementString(
                                ((LazyJavaTypeCompletionProposal) javaProposal).getQualifiedTypeName());
                    }
                }
                result.add(proposals[i]);
            }
        }
    } catch (Throwable t) {
        DroolsEclipsePlugin.log(t);
    }
    return result;
}

From source file:org.drools.eclipse.editors.completion.DefaultCompletionProcessor.java

License:Apache License

protected void requestJavaCompletionProposals(final String javaText, final String prefix,
        final int documentOffset, Map params, Collection results, boolean useDrools, boolean useContext) {

    String javaTextWithoutPrefix = CompletionUtil.getTextWithoutPrefix(javaText, prefix);
    // boolean to filter default Object methods produced by code completion when in the beginning of a statement
    boolean filterObjectMethods = false;
    if ("".equals(javaTextWithoutPrefix.trim())
            || CompletionUtil.START_OF_NEW_JAVA_STATEMENT.matcher(javaTextWithoutPrefix).matches()) {
        filterObjectMethods = true;//from w  ww.  j av a  2 s . c o  m
    }
    IJavaProject javaProject = getCurrentJavaProject();
    if (javaProject == null) {
        return;
    }

    CompletionProposalCollector collector = new CompletionProposalCollector(javaProject);
    collector.acceptContext(new CompletionContext());

    try {
        IEvaluationContext evalContext = javaProject.newEvaluationContext();
        List imports = getImports();
        if (imports != null && imports.size() > 0) {
            evalContext.setImports((String[]) imports.toArray(new String[imports.size()]));
        }
        StringBuffer javaTextWithParams = new StringBuffer();
        Iterator iterator = params.entrySet().iterator();
        while (iterator.hasNext()) {
            Map.Entry entry = (Map.Entry) iterator.next();
            // this does not seem to work, so adding variables manually
            // evalContext.newVariable((String) entry.getValue(), (String) entry.getKey(), null);
            javaTextWithParams.append(entry.getValue() + " " + entry.getKey() + ";\n");
        }
        if (useDrools) {
            javaTextWithParams.append("org.drools.spi.KnowledgeHelper drools;");
            javaTextWithParams.append("org.drools.runtime.rule.RuleContext kcontext;");
        }
        if (useContext) {
            javaTextWithParams.append("org.drools.spi.ProcessContext context;");
            javaTextWithParams.append("org.drools.runtime.process.ProcessContext kcontext;");
        }
        javaTextWithParams.append(javaText);
        String jtext = javaTextWithParams.toString();
        String fixedText = new KnowledgeHelperFixer().fix(jtext);

        evalContext.codeComplete(fixedText, fixedText.length(), collector);
        IJavaCompletionProposal[] proposals = collector.getJavaCompletionProposals();
        for (int i = 0; i < proposals.length; i++) {
            if (proposals[i] instanceof AbstractJavaCompletionProposal) {
                AbstractJavaCompletionProposal javaProposal = (AbstractJavaCompletionProposal) proposals[i];
                int replacementOffset = documentOffset
                        - (fixedText.length() - javaProposal.getReplacementOffset());
                javaProposal.setReplacementOffset(replacementOffset);
                if (javaProposal instanceof LazyJavaTypeCompletionProposal) {
                    String completionPrefix = javaText
                            .substring(javaText.length() - javaProposal.getReplacementLength());
                    int dotIndex = completionPrefix.lastIndexOf('.');
                    // match up to the last dot in order to make higher level matching still work (camel case...)
                    if (dotIndex != -1) {
                        javaProposal.setReplacementString(
                                ((LazyJavaTypeCompletionProposal) javaProposal).getQualifiedTypeName());
                    }
                }
                if (!filterObjectMethods || !(proposals[i] instanceof JavaMethodCompletionProposal)) {
                    results.add(proposals[i]);
                }
            }
        }
    } catch (Throwable t) {
        DroolsEclipsePlugin.log(t);
    }
}

From source file:org.drools.eclipse.editors.DRLRuleEditor.java

License:Apache License

public static List<String> getAllClassesInPackage(String packageName, IJavaProject javaProject) {
    final List<String> list = new ArrayList<String>();
    CompletionRequestor requestor = new CompletionRequestor() {
        public void accept(org.eclipse.jdt.core.CompletionProposal proposal) {
            String className = new String(proposal.getCompletion());
            if (proposal.getKind() == org.eclipse.jdt.core.CompletionProposal.TYPE_REF) {
                list.add(className);/*from   w  w  w  .j  av  a2 s  .  c  o m*/
            }
            // ignore all other proposals
        }
    };

    try {
        javaProject.newEvaluationContext().codeComplete(packageName + ".", packageName.length() + 1, requestor);
    } catch (Throwable t) {
        DroolsEclipsePlugin.log(t);
    }
    return list;
}

From source file:org.drools.eclipse.editors.DRLRuleEditor.java

License:Apache License

protected List<String> getAllStaticMethodsInClass(String className) {
    final List<String> list = new ArrayList<String>();
    if (className != null) {
        IEditorInput input = getEditorInput();
        if (input instanceof IFileEditorInput) {
            IProject project = ((IFileEditorInput) input).getFile().getProject();
            IJavaProject javaProject = JavaCore.create(project);

            CompletionRequestor requestor = new CompletionRequestor() {
                public void accept(org.eclipse.jdt.core.CompletionProposal proposal) {
                    String functionName = new String(proposal.getCompletion());
                    if (proposal.getKind() == org.eclipse.jdt.core.CompletionProposal.METHOD_REF) {
                        list.add(functionName.substring(0, functionName.length() - 2)); // remove the ()
                    }/*  w ww. j a  v  a 2s  .co m*/
                    // ignore all other proposals
                }
            };

            try {
                javaProject.newEvaluationContext().codeComplete(className + ".", className.length() + 1,
                        requestor);
            } catch (Throwable t) {
                DroolsEclipsePlugin.log(t);
            }
        }
    }
    return list;
}

From source file:org.hibernate.eclipse.criteriaeditor.CriteriaEditor.java

License:Open Source License

protected IEvaluationContext getEvaluationContext(IJavaProject project) {
    IEvaluationContext evalCtx = null;/*from  ww w.ja v a  2s . co m*/
    if (project != null) {
        evalCtx = project.newEvaluationContext();
    }
    if (evalCtx != null) {
        evalCtx.setImports(getImports());
    }
    return evalCtx;
}

From source file:org.hibernate.eclipse.hqleditor.CompletionHelper.java

License:Open Source License

static public ICompletionProposal[] completeOnJavaTypes(IJavaProject javaProject, Settings settings,
        String packageName, String start, int offset) {

    if (javaProject != null) {
        IEvaluationContext context = javaProject.newEvaluationContext();
        if (packageName != null) {
            context.setPackageName(packageName);
        }/*from  w  w w.  j  a  v  a 2 s  . c  om*/

        HibernateResultCollector rc = new HibernateResultCollector(javaProject);
        rc.acceptContext(new CompletionContext());
        //rc.reset(offset, javaProject, null);
        rc.setAccepts(settings);
        try {
            // cannot send in my own document as it won't compile as
            // java - so we just send in
            // the smallest snippet possible
            context.codeComplete(start, start.length(), rc);
        } catch (JavaModelException jme) {
            HibernateConsolePlugin.getDefault().logErrorMessage(
                    HibernateConsoleMessages.CompletionHelper_could_not_complete_java_types, jme);
        }
        IJavaCompletionProposal[] results = rc.getJavaCompletionProposals();
        transpose(start, offset, results);
        return results;
    }
    return new ICompletionProposal[0];
}