protected static Declaration createDeclarationObject( final RuleBuildContext context, final String identifier, final String expr, final Pattern pattern ) { final BindingDescr implicitBinding = new BindingDescr( identifier, expr ); final Declaration declaration = new Declaration( identifier, null, pattern, true ); InternalReadAccessor extractor = getFieldReadAccessor( context, implicitBinding, pattern.getObjectType(), implicitBinding.getExpression(), declaration, false ); if ( extractor == null ) { return null; } declaration.setReadAccessor( extractor ); return declaration; }
private void processBinding(StringBuilder sbuilder, BindingDescr bind, ConstraintConnectiveDescr parent, boolean isInsideRelCons, MVELDumperContext context) { String expr = bind.getExpression().trim(); AtomicExprDescr atomicExpr = new AtomicExprDescr(expr); String[] constrAndExpr = processImplicitConstraints(expr, atomicExpr, parent, parent.getDescrs().indexOf( bind ), context ); if ( isInsideRelCons ) { sbuilder.append( constrAndExpr[0] ).append( constrAndExpr[1] ); } else if ( constrAndExpr[0].length() > 4 ) { sbuilder.append( constrAndExpr[ 0 ].substring( 0, constrAndExpr[ 0 ].length() - 4 ) ); } if (bind.getExpression().equals(bind.getBindingField())) { bind.setExpressionAndBindingField( constrAndExpr[1] ); } else { bind.setExpression( constrAndExpr[1] ); } context.addBinding(bind); }
fieldBindingDescr.getVariable(), null ) ) { processDuplicateBindings( fieldBindingDescr.isUnification(), patternDescr, pattern, fieldBindingDescr, fieldBindingDescr.getBindingField(), fieldBindingDescr.getVariable(), context ); if ( fieldBindingDescr.isUnification() ) { return; Declaration declr = pattern.addDeclaration( fieldBindingDescr.getVariable() ); fieldBindingDescr.getBindingField(), declr, true );
public void visitBindingDescr(final BindingDescr descr) { this.template = new String(); this.template = "<field-binding field-name=\"" + descr.getExpression() + "\" identifier=\"" + descr.getVariable() + "\" />" + XmlDumper.eol; }
if ( (left!=null?input.toString(left.start,left.stop):null).equals(((BindingDescr)(left!=null?left.result:null)).getExpression()) ) { result = (left!=null?left.result:null); } else { BindingDescr bind = (BindingDescr) (left!=null?left.result:null); int offset = bind.isUnification() ? 2 : 1; String fullExpression = (left!=null?input.toString(left.start,left.stop):null).substring( (left!=null?input.toString(left.start,left.stop):null).indexOf( ":" ) + offset ).trim(); result = new BindingDescr( bind.getVariable(), bind.getExpression(), fullExpression, bind.isUnification() );
ConstraintConnectiveDescr result ) { Declaration declr = context.getDeclarationResolver().getDeclaration( context.getRule(), bind.getVariable() ); if ( declr != null ) { int pos = getPos( bind.getExpression(), params ); if ( pos >= 0 ) { String slot = bind.getExpression(); String var = bind.getVariable(); bind.setVariable( slot ); bind.setExpression( var ); } else { int pos = getPos( bind.getVariable(), params ); if ( pos >= 0 ) { bind.getExpression() ); if ( declr != null ) { arguments.set( pos, ConstraintConnectiveDescr bresult = parser.parse( bind.getExpression() ); if ( parser.hasErrors() ) { for ( DroolsParserException error : parser.getErrors() ) { declr = pattern.addDeclaration( bind.getVariable() );
if ( b instanceof BindingDescr ) { BindingDescr bind = (BindingDescr) b; expression = bind.getVariable() + (bind.isUnification() ? " := " : " : ") + bind.getExpression(); } else if ( b instanceof ExprConstraintDescr ) { ExprConstraintDescr descr = (ExprConstraintDescr) b;
BindingDescr binder = new BindingDescr(); binder.setUnification( true ); binder.setExpression( field.getName() ); binder.setVariable( descr.getExpression() ); buildRuleBindings( context, patternDescr,
COLON9=(Token)match(input,COLON,FOLLOW_COLON_in_unaryExpressionNotPlusMinus2419); if (state.failed) return retval; if ( state.backtracking==0 ) { hasBindings = true; helper.emit(var, DroolsEditorType.IDENTIFIER_VARIABLE); helper.emit(COLON9, DroolsEditorType.SYMBOL); if( buildDescr ) { bind = new BindingDescr((var!=null?var.getText():null), null, false); helper.setStart( bind, var ); } UNIFY10=(Token)match(input,UNIFY,FOLLOW_UNIFY_in_unaryExpressionNotPlusMinus2460); if (state.failed) return retval; if ( state.backtracking==0 ) { hasBindings = true; helper.emit(var, DroolsEditorType.IDENTIFIER_VARIABLE); helper.emit(UNIFY10, DroolsEditorType.SYMBOL); if( buildDescr ) { bind = new BindingDescr((var!=null?var.getText():null), null, true); helper.setStart( bind, var ); } if( bind.isUnification() ) { expr = expr.substring( expr.indexOf( ":=" ) + 2 ).trim(); } else { expr = expr.substring( expr.indexOf( ":" ) + 1 ).trim(); bind.setExpressionAndBindingField( expr ); helper.setEnd( bind ); retval.result = bind;
private boolean findExpressionValues(RelationalExprDescr relDescr, String[] values) { boolean usesThisRef; if ( relDescr.getRight() instanceof AtomicExprDescr ) { AtomicExprDescr rdescr = ((AtomicExprDescr) relDescr.getRight()); values[1] = rdescr.getRewrittenExpression().trim(); usesThisRef = "this".equals( values[1] ) || values[1].startsWith("this."); } else { BindingDescr rdescr = ((BindingDescr) relDescr.getRight()); values[1] = rdescr.getExpression().trim(); usesThisRef = "this".equals( values[1] ) || values[1].startsWith("this."); } if ( relDescr.getLeft() instanceof AtomicExprDescr ) { AtomicExprDescr ldescr = (AtomicExprDescr) relDescr.getLeft(); values[0] = ldescr.getRewrittenExpression(); usesThisRef = usesThisRef || "this".equals( values[0] ) || values[0].startsWith("this."); } else { values[0] = ((BindingDescr) relDescr.getLeft()).getExpression(); usesThisRef = usesThisRef || "this".equals( values[0] ) || values[0].startsWith("this."); } return usesThisRef; }
public PatternDescrBuilder<P> bind( String var, String target, boolean isUnification ) { descr.addConstraint( new BindingDescr( var, target, isUnification ) ); return this; }
if ( base instanceof BindingDescr ) { bind = (BindingDescr) base; expression = bind.getVariable() + (bind.isUnification() ? " := " : " : ") + bind.getExpression(); isBinding = true; } else {
result = new RelationalExprDescr( (op!=null?op.opr:null), (op!=null?op.negated:false), sa, ((relationalExpression_scope)relationalExpression_stack.peek()).lsd, descr ); if( ((relationalExpression_scope)relationalExpression_stack.peek()).lsd instanceof BindingDescr ) { ((relationalExpression_scope)relationalExpression_stack.peek()).lsd = new AtomicExprDescr( ((BindingDescr)((relationalExpression_scope)relationalExpression_stack.peek()).lsd).getExpression() );
public Object start( final String uri, final String localName, final Attributes attrs, final ExtensibleXmlParser parser ) throws SAXException { parser.startElementBuilder( localName, attrs ); final String identifier = attrs.getValue( "identifier" ); final String fieldName = attrs.getValue( "field-name" ); emptyAttributeCheck( localName, "identifier", identifier, parser ); emptyAttributeCheck( localName, "fieldName", fieldName, parser ); final BindingDescr fieldBindingDescr = new BindingDescr( identifier, fieldName); return fieldBindingDescr; }
if( left instanceof BindingDescr ) { binding = (BindingDescr)left; leftDescr = new AtomicExprDescr( binding.getExpression() ); } else { leftDescr = left;