[jboss-svn-commits] JBL Code SVN: r26518 - in labs/jbossrules/trunk/drools-compiler/src: test/java/org/drools/lang/dsl and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed May 13 18:31:30 EDT 2009


Author: tirelli
Date: 2009-05-13 18:31:29 -0400 (Wed, 13 May 2009)
New Revision: 26518

Modified:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/dsl/AntlrDSLMappingEntry.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/lang/dsl/DSLMappingEntryTest.java
Log:
JBRULES-2000: fixing line break support on DSL

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/dsl/AntlrDSLMappingEntry.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/dsl/AntlrDSLMappingEntry.java	2009-05-13 22:26:14 UTC (rev 26517)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/dsl/AntlrDSLMappingEntry.java	2009-05-13 22:31:29 UTC (rev 26518)
@@ -189,9 +189,10 @@
                 int tailIndex = getVariables().get( TAIL_TAG ).intValue();
                 valuePatternBuffer.append( "$" + tailIndex );
             }
-            // unescaping the special character #
+            // unescaping the special character # and creating the line breaks
             String pat = valuePatternBuffer.toString().replaceAll( "\\\\#",
-                                                                   "#" );
+                                                                   "#" ).replaceAll( "\\\\n", 
+                                                                                     "\n" );
             for ( Map.Entry<String, Integer> entry : getVariables().entrySet() ) {
                 pat = pat.replaceAll( "\\{" + entry.getKey() + "(:(.*?))?\\}",
                                       "\\$" + entry.getValue() );

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/lang/dsl/DSLMappingEntryTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/lang/dsl/DSLMappingEntryTest.java	2009-05-13 22:26:14 UTC (rev 26517)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/lang/dsl/DSLMappingEntryTest.java	2009-05-13 22:31:29 UTC (rev 26518)
@@ -282,6 +282,26 @@
                       result );
     }
 
+    public void testExpandWithLineBreaks() throws IOException {
+        final String inputKey = "This is a sentence with line breaks";
+        final String inputValue = "Cheese\\n(price == 10)";
+
+        DSLMappingEntry entry = createEntry( inputKey,
+                                  inputValue );
+
+        assertEquals( "(\\W|^)This\\s+is\\s+a\\s+sentence\\s+with\\s+line\\s+breaks(\\W|$)",
+                      entry.getKeyPattern().toString() );
+        assertEquals( "$1Cheese\n(price == 10)$2",
+                      entry.getValuePattern());
+        
+        
+        String result = entry.getKeyPattern().matcher( "This is a sentence with line breaks" ).replaceAll( entry.getValuePattern() );
+
+        assertEquals( result,
+                      "Cheese\n(price == 10)",
+                      result );
+    }
+    
     public void testExpandWithPound() throws IOException {
         final String inputKey = "Bedingung-\\#19-MKM4";
         final String inputValue = "eval ( $p.getTempVal(\"\\#UML-ATZ-1\") < $p.getZvUmlStfr() )";




More information about the jboss-svn-commits mailing list