Package org.drools.compiler.lang.descr

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


                    literal11=literal();

                    state._fsp--;
                    if (state.failed) return result;
                    if ( state.backtracking==0 ) {
                       if( buildDescr  ) { result = new AtomicExprDescr( (literal11!=null?input.toString(literal11.start,literal11.stop):null), true );
                    }

                    }
                    break;
                case 4 :
View Full Code Here


    }

    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.");
        }
View Full Code Here

    @Test
    public void testProcessInlineCast() throws Exception {
        String expr = "field1#Class.field2";
        String expectedInstanceof = "field1 instanceof Class && ";
        String expectedcasted = "((Class)field1).field2";
        AtomicExprDescr atomicExpr = new AtomicExprDescr(expr);
        String[] instanceofAndCastedExpr = dumper.processImplicitConstraints(expr, atomicExpr, null);
        assertEquals(expectedInstanceof, instanceofAndCastedExpr[0]);
        assertEquals(expectedcasted, instanceofAndCastedExpr[1]);
        assertEquals(expectedcasted, atomicExpr.getRewrittenExpression());

        expr = "field1#Class1.field2#Class2.field3";
        expectedInstanceof = "field1 instanceof Class1 && ((Class1)field1).field2 instanceof Class2 && ";
        expectedcasted = "((Class2)((Class1)field1).field2).field3";
        atomicExpr = new AtomicExprDescr(expr);
        instanceofAndCastedExpr = dumper.processImplicitConstraints(expr, atomicExpr, null);
        assertEquals(expectedInstanceof, instanceofAndCastedExpr[0]);
        assertEquals(expectedcasted, instanceofAndCastedExpr[1]);
        assertEquals(expectedcasted, atomicExpr.getRewrittenExpression());
    }
View Full Code Here

    @Test
    public void testProcessNullSafeDereferencing() throws Exception {
        String expr = "field1!.field2";
        String expectedNullCheck = "field1 != null && ";
        String expectedExpr = "field1.field2";
        AtomicExprDescr atomicExpr = new AtomicExprDescr(expr);
        String[] nullCheckAndExpr = dumper.processImplicitConstraints( expr, atomicExpr, null );
        assertEquals(expectedNullCheck, nullCheckAndExpr[0]);
        assertEquals(expectedExpr, nullCheckAndExpr[1]);
        assertEquals(expectedExpr, atomicExpr.getRewrittenExpression());

        expr = "field1!.field2!.field3";
        expectedNullCheck = "field1 != null && field1.field2 != null && ";
        expectedExpr = "field1.field2.field3";
        atomicExpr = new AtomicExprDescr(expr);
        nullCheckAndExpr = dumper.processImplicitConstraints( expr, atomicExpr, null );
        assertEquals(expectedNullCheck, nullCheckAndExpr[0]);
        assertEquals(expectedExpr, nullCheckAndExpr[1]);
        assertEquals(expectedExpr, atomicExpr.getRewrittenExpression());
    }
View Full Code Here

    @Test
    public void testProcessImplicitConstraints() throws Exception {
        String expr = "field1#Class!.field2";
        String expectedConstraints = "field1 instanceof Class && ";
        String expectedExpr = "((Class)field1).field2";
        AtomicExprDescr atomicExpr = new AtomicExprDescr(expr);
        String[] constraintsAndExpr = dumper.processImplicitConstraints( expr, atomicExpr, null );
        assertEquals(expectedConstraints, constraintsAndExpr[0]);
        assertEquals(expectedExpr, constraintsAndExpr[1]);
        assertEquals(expectedExpr, atomicExpr.getRewrittenExpression());

        expr = "field1!.field2#Class.field3";
        expectedConstraints = "field1 != null && field1.field2 instanceof Class && ";
        expectedExpr = "((Class)field1.field2).field3";
        atomicExpr = new AtomicExprDescr(expr);
        constraintsAndExpr = dumper.processImplicitConstraints( expr, atomicExpr, null );
        assertEquals(expectedConstraints, constraintsAndExpr[0]);
        assertEquals(expectedExpr, constraintsAndExpr[1]);
        assertEquals(expectedExpr, atomicExpr.getRewrittenExpression());

        expr = "field1#Class.field2!.field3";
        expectedConstraints = "field1 instanceof Class && ((Class)field1).field2 != null && ";
        expectedExpr = "((Class)field1).field2.field3";
        atomicExpr = new AtomicExprDescr(expr);
        constraintsAndExpr = dumper.processImplicitConstraints( expr, atomicExpr, null );
        assertEquals(expectedConstraints, constraintsAndExpr[0]);
        assertEquals(expectedExpr, constraintsAndExpr[1]);
        assertEquals(expectedExpr, atomicExpr.getRewrittenExpression());
    }
View Full Code Here

                                            final Map<String, OperatorDescr> aliases ) {
        String value1;
        String value2;
        boolean usesThisRef;
        if ( relDescr.getRight() instanceof AtomicExprDescr ) {
            AtomicExprDescr rdescr = ((AtomicExprDescr) relDescr.getRight());
            value2 = rdescr.getRewrittenExpression().trim();
            usesThisRef = "this".equals( value2 ) || value2.startsWith( "this." );
        } else {
            BindingDescr rdescr = ((BindingDescr) relDescr.getRight());
            value2 = rdescr.getExpression().trim();
            usesThisRef = "this".equals( value2 ) || value2.startsWith( "this." );
        }
        if ( relDescr.getLeft() instanceof AtomicExprDescr ) {
            AtomicExprDescr ldescr = (AtomicExprDescr) relDescr.getLeft();
            value1 = ldescr.getRewrittenExpression();
            usesThisRef = usesThisRef || "this".equals( value1 ) || value1.startsWith( "this." );
        } else {
            value1 = ((BindingDescr) relDescr.getLeft()).getExpression();
            usesThisRef = usesThisRef || "this".equals( value1 ) || value1.startsWith( "this." );
        }
View Full Code Here

                                            final Map<String, OperatorDescr> aliases ) {
        String value1;
        String value2;
        boolean usesThisRef;
        if ( relDescr.getRight() instanceof AtomicExprDescr ) {
            AtomicExprDescr rdescr = ((AtomicExprDescr) relDescr.getRight());
            value2 = rdescr.getRewrittenExpression().trim();
            usesThisRef = "this".equals( value2 ) || value2.startsWith( "this." );
        } else {
            BindingDescr rdescr = ((BindingDescr) relDescr.getRight());
            value2 = rdescr.getExpression().trim();
            usesThisRef = "this".equals( value2 ) || value2.startsWith( "this." );
        }
        if ( relDescr.getLeft() instanceof AtomicExprDescr ) {
            AtomicExprDescr ldescr = (AtomicExprDescr) relDescr.getLeft();
            value1 = ldescr.getRewrittenExpression();
            usesThisRef = usesThisRef || "this".equals( value1 ) || value1.startsWith( "this." );
        } else {
            value1 = ((BindingDescr) relDescr.getLeft()).getExpression();
            usesThisRef = usesThisRef || "this".equals( value1 ) || value1.startsWith( "this." );
        }
View Full Code Here

          pushFollow(FOLLOW_type_in_instanceOfExpression1456);
          right=type();
          state._fsp--;
          if (state.failed) return result;
          if ( state.backtracking==0 ) { if( buildDescr  ) {
                         result = new RelationalExprDescr( (op!=null?input.toString(op.start,op.stop):null), false, null, left, new AtomicExprDescr((right!=null?input.toString(right.start,right.stop):null)) );
                     }
                   }
          }
          break;
View Full Code Here

      state._fsp--;
      if (state.failed) return result;
      if ( state.backtracking==0 ) { if( buildDescr  ) { result = left; }
            if( left instanceof BindingDescr ) {
                binding = (BindingDescr)left;
                leftDescr = new AtomicExprDescr( binding.getExpression() );
            } else {
                leftDescr = left;
            }
          }
      // src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:321:5: ( ( not_key in_key )=> not_key in= in_key LEFT_PAREN e1= expression ( COMMA e2= expression )* RIGHT_PAREN |in= in_key LEFT_PAREN e1= expression ( COMMA e2= expression )* RIGHT_PAREN )?
View Full Code Here

      if ( state.backtracking==0 ) { if( buildDescr  ) {
                result = ( (left!=null?((DRL6Expressions.shiftExpression_return)left).result:null) != null &&
                            ( (!((left!=null?((DRL6Expressions.shiftExpression_return)left).result:null) instanceof AtomicExprDescr)) ||
                              ((left!=null?input.toString(left.start,left.stop):null).equals(((AtomicExprDescr)(left!=null?((DRL6Expressions.shiftExpression_return)left).result:null)).getExpression())) )) ?
                          (left!=null?((DRL6Expressions.shiftExpression_return)left).result:null) :
                          new AtomicExprDescr( (left!=null?input.toString(left.start,left.stop):null) ) ;
                relationalExpression_stack.peek().lsd = result;
            }
          }
      // src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:365:3: ( ( operator | LEFT_PAREN )=>right= orRestriction )*
      loop35:
 
View Full Code Here

TOP

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

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.