[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