[jboss-svn-commits] JBL Code SVN: r14230 - labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/editors/completion.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Aug 14 20:52:24 EDT 2007


Author: pombredanne
Date: 2007-08-14 20:52:24 -0400 (Tue, 14 Aug 2007)
New Revision: 14230

Modified:
   labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/editors/completion/RuleCompletionProcessor.java
Log:
JBRULES-1080: Applied Macro processing on mvel compilable consequence (same as in MvelConsequenceBuilder) to have consequences with macros properly handled and compiled by MVEL. Fixed a related completion issue where the standard java proposal where NOT listed when requesting completion with a prefix at the begining of a new expression (in which case the available types should be listed)

Modified: labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/editors/completion/RuleCompletionProcessor.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/editors/completion/RuleCompletionProcessor.java	2007-08-15 00:49:32 UTC (rev 14229)
+++ labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/editors/completion/RuleCompletionProcessor.java	2007-08-15 00:52:24 UTC (rev 14230)
@@ -943,14 +943,13 @@
 
 		final Set proposals = new HashSet();
 
-		if (!(getEditor() instanceof DRLRuleEditor)) {
-			return proposals;
-		}
+		if ( !(getEditor() instanceof DRLRuleEditor) ) {
+            return proposals;
+        }
 
-		String compilableConsequence = CompletionUtil
-				.getCompilableText(consequence);
-		compilableConsequence = MVELConsequenceBuilder
-				.delimitExpressions(compilableConsequence);
+		String compilableConsequence = CompletionUtil.getCompilableText( consequence );
+        MVELConsequenceBuilder builder = new MVELConsequenceBuilder();
+        compilableConsequence = builder.processMacros( compilableConsequence );
 
 
 		// attempt to compile and analyze
@@ -958,11 +957,12 @@
 			DRLInfo drlInfo = DroolsEclipsePlugin.getDefault().parseResource(
 					(DRLRuleEditor) getEditor(), true, true);
 
-			ParserContext compilationContext = createMvelAnalysisContext(
-					params, drlInfo, compilableConsequence);
+			ParserContext compilationContext = createMvelAnalysisContext( params,
+                                                                          drlInfo,
+                                                                          compilableConsequence );
 
 			if (startOfExpression) {
-				Collection jdtProps = getJavaMvelCompletionProposals(documentOffset, "", prefix, params);
+				Collection jdtProps = getJavaCompletionProposals(documentOffset, prefix, prefix, params);
 				proposals.addAll(jdtProps);
 
                 addMvelCompletions( proposals,
@@ -988,11 +988,13 @@
                     //FIXME: there is a small chance of var name collision using this arbitrary mvdrlofc as a variable name.
                     //ideally the varibale name should be inferred from the last memeber of the expression
 					String syntheticVarName = "mvdrlofc";
-                    String javaText = "\n" + lastType.getName().replace( '$', '.' ) + " " + syntheticVarName +
-                            ";\n" + syntheticVarName + ".";
-					Collection jdtProps = getJavaMvelCompletionProposals(
-							documentOffset, javaText, prefix, params);
-					proposals.addAll(jdtProps);
+                    String javaText = "\n" + lastType.getName().replace( '$',
+                                                                         '.' ) + " " + syntheticVarName + ";\n" + syntheticVarName + ".";
+                    Collection jdtProps = getJavaMvelCompletionProposals( documentOffset,
+                                                                          javaText,
+                                                                          prefix,
+                                                                          params );
+                    proposals.addAll( jdtProps );
 				}
 			}
 
@@ -1056,6 +1058,9 @@
             ParserContext compilationContext = compiler.getParserContextState();
 
             Class lastType = expression.getKnownEgressType();
+            if (lastType == null) {
+                lastType =Object.class;
+            }
             context.setMvelReturnedType( lastType );
 
 




More information about the jboss-svn-commits mailing list