[jboss-svn-commits] JBL Code SVN: r9274 - labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/dsl/template.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Feb 1 20:16:48 EST 2007


Author: woolfel
Date: 2007-02-01 20:16:47 -0500 (Thu, 01 Feb 2007)
New Revision: 9274

Modified:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/dsl/template/NLGrammar.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/dsl/template/NLMappingItem.java
Log:
here goes nothing. the enhancements to NLGrammar which supports the object metadata, which is used by the enhancements for the DSL auto-completion and dsl editor
peter

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/dsl/template/NLGrammar.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/dsl/template/NLGrammar.java	2007-02-01 23:20:26 UTC (rev 9273)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/dsl/template/NLGrammar.java	2007-02-02 01:16:47 UTC (rev 9274)
@@ -40,7 +40,8 @@
 
     private static final long    serialVersionUID = 1L;
     private final List                 mappings         = new ArrayList();
-    private static final Pattern itemPrefix       = Pattern.compile( "\\[\\s*(when|then)\\s*\\].*" );
+    // private static final Pattern itemPrefix       = Pattern.compile( "\\[\\s*(when|then)\\s*\\].*" );
+    private static final Pattern itemMetadata     = Pattern.compile( "\\[[a-zA-Z\\d\\.]+\\]" );
 
     private String               description;
 
@@ -54,7 +55,7 @@
     public List getMappings() {
         return this.mappings;
     }
-
+    
     /** Get the human readable description of this language definition. This should just be a comment. */
     public String getDescription() {
         return this.description;
@@ -119,9 +120,14 @@
             for ( final Iterator iter = this.mappings.iterator(); iter.hasNext(); ) {
                 final NLMappingItem item = (NLMappingItem) iter.next();
                 if ( item.getScope().equals( "*" ) ) {
-                    buffer.write( item.getNaturalTemplate() + "=" + item.getTargetTemplate() + "\n" );
+                    buffer.write("[" + item.getObjectName() + "]"
+							+ item.getNaturalTemplate() + "="
+							+ item.getTargetTemplate() + "\n");
                 } else {
-                    buffer.write( "[" + item.getScope() + "]" + item.getNaturalTemplate() + "=" + item.getTargetTemplate() + "\n" );
+                    buffer.write("[" + item.getScope() + "]["
+							+ item.getObjectName() + "]"
+							+ item.getNaturalTemplate() + "="
+							+ item.getTargetTemplate() + "\n");
                 }
             }
             buffer.flush();
@@ -158,19 +164,31 @@
                                     "\\",
                                     "" );
 
-        final Matcher matcher = NLGrammar.itemPrefix.matcher( left );
-        if ( matcher.matches() ) {
+        final Matcher m2 = NLGrammar.itemMetadata.matcher(left);
+        //final Matcher matcher = NLGrammar.itemPrefix.matcher( left );
+        if ( m2.find()) {
             //get out priority, association
-            final String type = matcher.group( 1 );
-            left = left.substring( left.indexOf( "]" ) + 1 ).trim();
+            String type = m2.group( 0 );
+            type = type.substring(1,type.length() - 1);
+            if (m2.find()) {
+                String obj = m2.group( 0 );
+                obj = obj.substring(1,obj.length() - 1);
+                left = left.substring( left.lastIndexOf( "]" ) + 1 ).trim();
+                return new NLMappingItem( left,
+                                          right,
+                                          type,
+                                          obj);
+            }
+            left = left.substring( left.lastIndexOf( "]" ) + 1 ).trim();
             return new NLMappingItem( left,
                                       right,
-                                      type );
-
+                                      type,
+                                      "*");
         } else {
             return new NLMappingItem( left,
                                       right,
-                                      "*" );
+                                      "*",
+                                      "*");
 
         }
     }

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/dsl/template/NLMappingItem.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/dsl/template/NLMappingItem.java	2007-02-01 23:20:26 UTC (rev 9273)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/dsl/template/NLMappingItem.java	2007-02-02 01:16:47 UTC (rev 9274)
@@ -43,7 +43,12 @@
     private String               naturalTemplate;
     private String               targetTemplate;
     private String               scope;
+    private String               objectName;
 
+    public void setObjectName(String name) {
+        this.objectName = name;
+    }
+    
     public void setNaturalTemplate(final String naturalTemplate) {
         this.naturalTemplate = naturalTemplate.replaceAll( "\\s*,\\s*",
                                                            " , " );
@@ -59,12 +64,26 @@
 
     public NLMappingItem(final String naturalTemplate,
                          final String targetTemplate,
-                         final String scope) {
+                         final String scope,
+                         final String objectName) {
         this.setNaturalTemplate( naturalTemplate );
         this.setTargetTemplate( targetTemplate );
         this.setScope( scope );
+        this.setObjectName(objectName);
     }
 
+    public NLMappingItem(final String naturalTemplate,
+            final String targetTemplate,
+            final String scope) {
+    	this.setNaturalTemplate( naturalTemplate );
+    	this.setTargetTemplate( targetTemplate );
+    	this.setScope( scope );
+    }
+    
+    public String getObjectName() {
+        return this.objectName;
+    }
+    
     public String getNaturalTemplate() {
         return this.naturalTemplate;
     }




More information about the jboss-svn-commits mailing list