Package org.drools.compiler.lang.descr

Examples of org.drools.compiler.lang.descr.BindingDescr


        final PatternDescr pattern = new PatternDescr( Cheese.class.getName(),
                                                       "stilton" );
        lhs.addDescr( pattern );

        BindingDescr fieldBindingDescr = new BindingDescr( "x",
                                                           "price" );
        pattern.addConstraint( fieldBindingDescr );
        fieldBindingDescr = new BindingDescr( "y",
                                              "price" );
        pattern.addConstraint( fieldBindingDescr );

        packageDescr.addGlobal( new GlobalDescr( "map",
                                                 "java.util.Map" ) );
View Full Code Here


        ruleDescr.setLhs( lhs );

        final PatternDescr pattern1 = new PatternDescr( Cheese.class.getName() );
        lhs.addDescr( pattern1 );

        final BindingDescr fieldBindingDescr = new BindingDescr( "$type",
                                                                 "type" );

        final FieldConstraintDescr literalDescr = new FieldConstraintDescr( "type" );
        literalDescr.addRestriction( new LiteralRestrictionDescr( "==",
                                                                  "stilton" ) );
View Full Code Here

        final PatternDescr pattern = new PatternDescr( Cheese.class.getName(),
                                                       "stilton" );
        lhs.addDescr( pattern );

        BindingDescr fieldBindingDescr = new BindingDescr( "x",
                                                           "price" );
        pattern.addConstraint( fieldBindingDescr );
        fieldBindingDescr = new BindingDescr( "y",
                                              "price" );
        pattern.addConstraint( fieldBindingDescr );

        packageDescr.addGlobal( new GlobalDescr( "map",
                                                 "java.util.Map" ) );
View Full Code Here

        final PatternDescr pattern = new PatternDescr( Cheese.class.getName(),
                                                       "stilton" );
        lhs.addDescr( pattern );

        final BindingDescr fieldBindingDescr = new BindingDescr( "x",
                                                                 "price" );
        pattern.addConstraint( fieldBindingDescr );

        final BindingDescr fieldBindingDescr2 = new BindingDescr( "y",
                                                                  "price" );
        pattern.addConstraint( fieldBindingDescr2 );

        packageDescr.addGlobal( new GlobalDescr( "map",
                                                 "java.util.Map" ) );
View Full Code Here

        packageDescr.addRule( queryDescr );
        AndDescr lhs = new AndDescr();
        queryDescr.setLhs( lhs );
        PatternDescr pattern = new PatternDescr( Person.class.getName() );
        lhs.addDescr( pattern );
        pattern.addConstraint( new BindingDescr( "$name", "name", true ) );
        pattern.addConstraint( new BindingDescr( "$age", "age", true ) );
        pattern.addConstraint( new BindingDescr( "$likes", "likes", true ) );

        RuleDescr ruleDescr = new RuleDescr( "rule-1" );
        packageDescr.addRule( ruleDescr );
        lhs = new AndDescr();
        ruleDescr.setLhs( lhs );

        pattern = new PatternDescr( Cheese.class.getName() );
        lhs.addDescr( pattern );
        pattern.addConstraint( new BindingDescr( "$type",
                                              "type" ) );

        pattern = new PatternDescr( "query1" );
        pattern.setQuery( true );
        lhs.addDescr( pattern );
View Full Code Here

    Token var=null;
    Token COLON9=null;
    Token UNIFY10=null;
    BaseDescr left =null;

     boolean isLeft = false; BindingDescr bind = null;
    try {
      // src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:488:5: ( TILDE unaryExpression | NEGATION unaryExpression | ( castExpression )=> castExpression | ( ({...}? (var= ID COLON ) ) | ({...}? (var= ID UNIFY ) ) )? left= primary ( ( selector )=> selector )* ( ( INCR | DECR )=> ( INCR | DECR ) )? )
      int alt53=4;
      switch ( input.LA(1) ) {
      case TILDE:
        {
        alt53=1;
        }
        break;
      case NEGATION:
        {
        alt53=2;
        }
        break;
      case LEFT_PAREN:
        {
        int LA53_3 = input.LA(2);
        if ( (synpred14_DRL6Expressions()) ) {
          alt53=3;
        }
        else if ( (true) ) {
          alt53=4;
        }

        }
        break;
      case BOOL:
      case DECIMAL:
      case FLOAT:
      case HEX:
      case ID:
      case LEFT_SQUARE:
      case LESS:
      case NULL:
      case STAR:
      case STRING:
      case TIME_INTERVAL:
        {
        alt53=4;
        }
        break;
      default:
        if (state.backtracking>0) {state.failed=true; return retval;}
        NoViableAltException nvae =
          new NoViableAltException("", 53, 0, input);
        throw nvae;
      }
      switch (alt53) {
        case 1 :
          // src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:488:9: TILDE unaryExpression
          {
          match(input,TILDE,FOLLOW_TILDE_in_unaryExpressionNotPlusMinus2371); if (state.failed) return retval;
          pushFollow(FOLLOW_unaryExpression_in_unaryExpressionNotPlusMinus2373);
          unaryExpression();
          state._fsp--;
          if (state.failed) return retval;
          }
          break;
        case 2 :
          // src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:489:8: NEGATION unaryExpression
          {
          match(input,NEGATION,FOLLOW_NEGATION_in_unaryExpressionNotPlusMinus2382); if (state.failed) return retval;
          pushFollow(FOLLOW_unaryExpression_in_unaryExpressionNotPlusMinus2384);
          unaryExpression();
          state._fsp--;
          if (state.failed) return retval;
          }
          break;
        case 3 :
          // src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:490:9: ( castExpression )=> castExpression
          {
          pushFollow(FOLLOW_castExpression_in_unaryExpressionNotPlusMinus2398);
          castExpression();
          state._fsp--;
          if (state.failed) return retval;
          }
          break;
        case 4 :
          // src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:491:9: ( ({...}? (var= ID COLON ) ) | ({...}? (var= ID UNIFY ) ) )? left= primary ( ( selector )=> selector )* ( ( INCR | DECR )=> ( INCR | DECR ) )?
          {
          if ( state.backtracking==0 ) { isLeft = helper.getLeftMostExpr() == null;}
          // src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:492:9: ( ({...}? (var= ID COLON ) ) | ({...}? (var= ID UNIFY ) ) )?
          int alt50=3;
          int LA50_0 = input.LA(1);
          if ( (LA50_0==ID) ) {
            int LA50_1 = input.LA(2);
            if ( (LA50_1==COLON) ) {
              int LA50_3 = input.LA(3);
              if ( ((inMap == 0 && ternOp == 0 && input.LA(2) == DRL6Lexer.COLON)) ) {
                alt50=1;
              }
            }
            else if ( (LA50_1==UNIFY) ) {
              alt50=2;
            }
          }
          switch (alt50) {
            case 1 :
              // src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:492:11: ({...}? (var= ID COLON ) )
              {
              // src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:492:11: ({...}? (var= ID COLON ) )
              // src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:492:12: {...}? (var= ID COLON )
              {
              if ( !((inMap == 0 && ternOp == 0 && input.LA(2) == DRL6Lexer.COLON)) ) {
                if (state.backtracking>0) {state.failed=true; return retval;}
                throw new FailedPredicateException(input, "unaryExpressionNotPlusMinus", "inMap == 0 && ternOp == 0 && input.LA(2) == DRL6Lexer.COLON");
              }
              // src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:492:75: (var= ID COLON )
              // src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:492:76: var= ID COLON
              {
              var=(Token)match(input,ID,FOLLOW_ID_in_unaryExpressionNotPlusMinus2426); if (state.failed) return retval;
              COLON9=(Token)match(input,COLON,FOLLOW_COLON_in_unaryExpressionNotPlusMinus2428); 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 ); } }
              }

              }

              }
              break;
            case 2 :
              // src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:494:11: ({...}? (var= ID UNIFY ) )
              {
              // src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:494:11: ({...}? (var= ID UNIFY ) )
              // src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:494:12: {...}? (var= ID UNIFY )
              {
              if ( !((inMap == 0 && ternOp == 0 && input.LA(2) == DRL6Lexer.UNIFY)) ) {
                if (state.backtracking>0) {state.failed=true; return retval;}
                throw new FailedPredicateException(input, "unaryExpressionNotPlusMinus", "inMap == 0 && ternOp == 0 && input.LA(2) == DRL6Lexer.UNIFY");
              }
              // src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:494:75: (var= ID UNIFY )
              // src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:494:76: var= ID UNIFY
              {
              var=(Token)match(input,ID,FOLLOW_ID_in_unaryExpressionNotPlusMinus2467); if (state.failed) return retval;
              UNIFY10=(Token)match(input,UNIFY,FOLLOW_UNIFY_in_unaryExpressionNotPlusMinus2469); 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 ); } }
              }

              }

              }
              break;

          }

          pushFollow(FOLLOW_primary_in_unaryExpressionNotPlusMinus2514);
          left=primary();
          state._fsp--;
          if (state.failed) return retval;
          if ( state.backtracking==0 ) { if( buildDescr ) { retval.result = left; } }
          // src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:498:9: ( ( selector )=> selector )*
          loop51:
          while (true) {
            int alt51=2;
            int LA51_0 = input.LA(1);
            if ( (LA51_0==DOT) && (synpred15_DRL6Expressions())) {
              alt51=1;
            }
            else if ( (LA51_0==LEFT_SQUARE) && (synpred15_DRL6Expressions())) {
              alt51=1;
            }

            switch (alt51) {
            case 1 :
              // src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:498:10: ( selector )=> selector
              {
              pushFollow(FOLLOW_selector_in_unaryExpressionNotPlusMinus2531);
              selector();
              state._fsp--;
              if (state.failed) return retval;
              }
              break;

            default :
              break loop51;
            }
          }

          if ( state.backtracking==0 ) {
                      if( buildDescr ) {
                          String expr = input.toString(retval.start,input.LT(-1));
                          if( isLeft ) {
                              helper.setLeftMostExpr( expr );
                          }
                          if( bind != null ) {
                              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;
                          }
                      }
                  }
View Full Code Here

        MVELDumper.MVELDumperContext mvelCtx = new MVELDumper.MVELDumperContext().setRuleContext(context);
        for ( BaseDescr b : patternDescr.getDescrs() ) {
            String expression;
            boolean isPositional = false;
            if ( b instanceof BindingDescr ) {
                BindingDescr bind = (BindingDescr) b;
                expression = bind.getVariable() + (bind.isUnification() ? " := " : " : ") + bind.getExpression();
            } else if ( b instanceof ExprConstraintDescr ) {
                ExprConstraintDescr descr = (ExprConstraintDescr) b;
                expression = descr.getExpression();
                isPositional = descr.getType() == ExprConstraintDescr.Type.POSITIONAL;
            } else {
View Full Code Here

            String expr = descr.getExpression();
            boolean isSimpleIdentifier = isIdentifier(expr);

            if ( isSimpleIdentifier ) {
                // create a binding
                BindingDescr binder = new BindingDescr();
                binder.setUnification( true );
                binder.setExpression( field.getName() );
                binder.setVariable( descr.getExpression() );
                buildRuleBindings( context,
                                   patternDescr,
                                   pattern,
                                   binder );
            } else {
View Full Code Here

        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();
View Full Code Here

    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;
View Full Code Here

TOP

Related Classes of org.drools.compiler.lang.descr.BindingDescr

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.