List of usage examples for org.eclipse.jdt.core.eval IEvaluationContext setImports
public void setImports(String[] imports);
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;/*w w w .ja v a2s . 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.hibernate.eclipse.criteriaeditor.CriteriaEditor.java
License:Open Source License
protected IEvaluationContext getEvaluationContext(IJavaProject project) { IEvaluationContext evalCtx = null; if (project != null) { evalCtx = project.newEvaluationContext(); }//from w w w. j a va2s. co m if (evalCtx != null) { evalCtx.setImports(getImports()); } return evalCtx; }