Package org.drools.lang.descr

Examples of org.drools.lang.descr.FromDescr


    public void testSimpleFunctionCallWithFrom() throws Exception {

        final RuleDescr rule = parseResource( "test_SimpleFunctionCallWithFrom.drl" ).rule();
        final PatternDescr pattern = (PatternDescr) rule.getLhs().getDescrs().get( 0 );
        final FromDescr from = (FromDescr) pattern.getSource();
        final AccessorDescr func = (AccessorDescr) from.getDataSource();

        assertFalse( this.parser.getErrorMessages().toString(),
                     this.parser.hasErrors() );

        assertEquals( "doIt( foo,bar,42,\"hello\",{ a => \"b\", \"something\" => 42, \"a\" => foo, x => {x=>y}},\"end\", [a, \"b\", 42] )",
View Full Code Here


    public void testSimpleAccessorWithFrom() throws Exception {

        final RuleDescr rule = parseResource( "test_SimpleAccessorWithFrom.drl" ).rule();
        final PatternDescr pattern = (PatternDescr) rule.getLhs().getDescrs().get( 0 );
        final FromDescr from = (FromDescr) pattern.getSource();
        final AccessorDescr accessor = (AccessorDescr) from.getDataSource();

        assertFalse( this.parser.getErrorMessages().toString(),
                     this.parser.hasErrors() );

        assertNull( ((FieldAccessDescr) accessor.getInvokers().get( 0 )).getArgument() );
View Full Code Here

    public void testSimpleAccessorAndArgWithFrom() throws Exception {

        final RuleDescr rule = parseResource( "test_SimpleAccessorArgWithFrom.drl" ).rule();
        final PatternDescr pattern = (PatternDescr) rule.getLhs().getDescrs().get( 0 );
        final FromDescr from = (FromDescr) pattern.getSource();
        final AccessorDescr accessor = (AccessorDescr) from.getDataSource();

        assertFalse( this.parser.getErrorMessages().toString(),
                     this.parser.hasErrors() );

        assertNotNull( ((FieldAccessDescr) accessor.getInvokers().get( 0 )).getArgument() );
View Full Code Here

    }

    public void testComplexChainedAcessor() throws Exception {
        final RuleDescr rule = parseResource( "test_ComplexChainedCallWithFrom.drl" ).rule();
        final PatternDescr pattern = (PatternDescr) rule.getLhs().getDescrs().get( 0 );
        final FromDescr from = (FromDescr) pattern.getSource();
        final AccessorDescr accessor = (AccessorDescr) from.getDataSource();

        assertFalse( this.parser.getErrorMessages().toString(),
                     this.parser.hasErrors() );

        assertEquals( "doIt1( foo,bar,42,\"hello\",{ a => \"b\"}, [a, \"b\", 42] ).doIt2(bar, [a, \"b\", 42]).field[\"key\"]",
View Full Code Here

        final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
        assertNotNull( packageDescr );
        RuleDescr obj = (RuleDescr) packageDescr.getRules().get( 0 );
        PatternDescr patterndescr = (PatternDescr) obj.getLhs().getDescrs().get( 0 );
       
        FromDescr from = (FromDescr) patterndescr.getSource();
       
        AccessorDescr accessordescriptor =  (AccessorDescr) from.getDataSource();
        assertEquals( accessordescriptor.getVariableName(), "cheesery" );

        assertEquals( patterndescr.getObjectType(), "Cheese" );
        assertEquals( patterndescr.getIdentifier(), "cheese" );
       
View Full Code Here

    }

    public RuleConditionElement build(final RuleBuildContext context,
                                      final BaseDescr descr,
                                      final Pattern prefixPattern) {
        final FromDescr fromDescr = (FromDescr) descr;

        final MVELExprDescr expr = (MVELExprDescr) fromDescr.getDataSource();
        From from = null;
        try {
            // This builder is re-usable in other dialects, so specify by name
            MVELDialect dialect = (MVELDialect) context.getDialect( "mvel" );
           
View Full Code Here

        final String expression =((org.w3c.dom.Text)element.getChildNodes().item( 0 )).getWholeText();
       
        emptyContentCheck( localName, expression, parser );

        FromDescr parent = (FromDescr) parser.getParent();
        parent.setDataSource( new MVELExprDescr( expression.trim() ) );
        return null;
    }
View Full Code Here

    protected SourceDescrBuilderImpl(P parent) {
        super( parent, parent.getDescr() );
    }

    public P expression( String expression ) {
        FromDescr from = new FromDescr();
        from.setDataSource( new MVELExprDescr( expression ) );
        descr.setSource( from );
        return parent;
    }
View Full Code Here

    }

    public RuleConditionElement build(final RuleBuildContext context,
                                      final BaseDescr descr,
                                      final Pattern prefixPattern) {
        final FromDescr fromDescr = (FromDescr) descr;

        final AccessorDescr accessor = (AccessorDescr) fromDescr.getDataSource();
        From from = null;
        try {
            // This builder is re-usable in other dialects, so specify by name
            MVELDialect dialect = (MVELDialect) context.getDialect( "mvel" );
View Full Code Here

        final String expression =((org.w3c.dom.Text)element.getChildNodes().item( 0 )).getWholeText();
       
        emptyContentCheck( localName, expression, parser );

        FromDescr parent = (FromDescr) parser.getParent();

        final CharStream charStream = new ANTLRStringStream( expression.trim() );
        final DRLLexer lexer = new DRLLexer( charStream );
        final TokenStream tokenStream = new CommonTokenStream( lexer );
        final DRLParser drlParser = new DRLParser( tokenStream );
        drlParser.setTreeAdaptor(new DroolsTreeAdaptor());

        try {
          Tree fromSourceTree = (Tree) drlParser.from_source().getTree();
          if (!drlParser.hasErrors()){
        CommonTreeNodeStream nodes = new CommonTreeNodeStream(fromSourceTree);
        nodes.setTokenStream(tokenStream);
              DescrBuilderTree walker = new DescrBuilderTree(nodes);
              from_source_clause_return fromReturn = walker.from_source_clause();
              parent.setDataSource(fromReturn.retAccessorDescr);
              parent = fromReturn.fromDescr;
          } else {
                throw new SAXParseException( "<" + localName + "> must have a valid expression content ",
                        parser.getLocator() );           
          }
View Full Code Here

TOP

Related Classes of org.drools.lang.descr.FromDescr

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.