public void addFactPatterns( IFactPattern[] patterns ) { for ( int i = 0; i < patterns.length; i++ ) { IFactPattern iFactPattern = patterns[ i ]; this.addFactPattern( iFactPattern ); } }
private void addPatternToComposite( ConditionalElementDescr conditionalDescr, CompositeFactPattern comp, Map<String, String> boundParams ) { for ( Object descr : conditionalDescr.getDescrs() ) { if ( descr instanceof PatternDescr ) { comp.addFactPattern( parsePatternDescr( (PatternDescr) descr, boundParams ) ); } else if ( descr instanceof ConditionalElementDescr ) { addPatternToComposite( (ConditionalElementDescr) descr, comp, boundParams ); } } }
public void onClick( ClickEvent event ) { Widget sender = (Widget) event.getSource(); if ( sender == fromBtn ) { pattern.addFactPattern( new FromCompositeFactPattern() ); } else if ( sender == fromAccumulateBtn ) { pattern.addFactPattern( new FromAccumulateCompositeFactPattern() ); } else if ( sender == fromCollectBtn ) { pattern.addFactPattern( new FromCollectCompositeFactPattern() ); } else { throw new IllegalArgumentException( "Unknown sender: " + sender ); } setModified( true ); getModeller().refreshWidget(); popup.hide(); } };
private CompositeFactPattern visitCompositeFactPattern( CompositeFactPattern pattern ) { CompositeFactPattern clone = new CompositeFactPattern(); clone.setType( pattern.getType() ); if ( pattern.getPatterns() != null ) { for ( IFactPattern fp : pattern.getPatterns() ) { clone.addFactPattern( (IFactPattern) visit( fp ) ); } } return clone; }
public void onChange( ChangeEvent event ) { pattern.addFactPattern( new FactPattern( box.getItemText( box.getSelectedIndex() ) ) ); setModified( true ); getModeller().refreshWidget(); popup.hide(); } } );
private RuleModel getCompositeFOL( String type ) { RuleModel m = new RuleModel(); m.name = "or"; CompositeFactPattern cp = new CompositeFactPattern( type ); FactPattern p1 = new FactPattern( "Person" ); SingleFieldConstraint sf1 = new SingleFieldConstraint( "age" ); sf1.setOperator( "==" ); sf1.setValue( "42" ); p1.addConstraint( sf1 ); cp.addFactPattern( p1 ); FactPattern p2 = new FactPattern( "Person" ); SingleFieldConstraint sf2 = new SingleFieldConstraint( "age" ); sf2.setOperator( "==" ); sf2.setValue( "43" ); p2.addConstraint( sf2 ); cp.addFactPattern( p2 ); m.addLhsItem( cp ); return m; }
@Test public void testOrComposite() throws Exception { RuleModel m = new RuleModel(); m.name = "or"; CompositeFactPattern cp = new CompositeFactPattern( CompositeFactPattern.COMPOSITE_TYPE_OR ); FactPattern p1 = new FactPattern( "Person" ); SingleFieldConstraint sf1 = new SingleFieldConstraint( "age" ); sf1.setOperator( "==" ); sf1.setValue( "42" ); p1.addConstraint( sf1 ); cp.addFactPattern( p1 ); FactPattern p2 = new FactPattern( "Person" ); SingleFieldConstraint sf2 = new SingleFieldConstraint( "age" ); sf2.setOperator( "==" ); sf2.setValue( "43" ); p2.addConstraint( sf2 ); cp.addFactPattern( p2 ); m.addLhsItem( cp ); String result = BRDRLPersistence.getInstance().marshal( m ); assertTrue( result.indexOf( "( Person( age == 42 ) or Person( age == 43 ) )" ) > 0 ); checkMarshallUnmarshall( result, m ); }
@Test public void testSingleExists() throws Exception { RuleModel m = new RuleModel(); m.name = "or"; CompositeFactPattern cp = new CompositeFactPattern( CompositeFactPattern.COMPOSITE_TYPE_EXISTS ); FactPattern p1 = new FactPattern( "Person" ); SingleFieldConstraint sf1 = new SingleFieldConstraint( "age" ); sf1.setOperator( "==" ); sf1.setValue( "42" ); p1.addConstraint( sf1 ); cp.addFactPattern( p1 ); m.addLhsItem( cp ); String result = BRDRLPersistence.getInstance().marshal( m ); assertTrue( result.indexOf( "exists (Person( age == 42 )) " ) > 0 ); checkMarshallUnmarshall( result, m ); }
@Test public void testCompositeFactPatternWithFromWithDSL() { final RuleModel m = new RuleModel(); m.name = "model"; final DSLSentence sen = new DSLSentence(); sen.setDefinition( "A DSL phrase" ); m.addLhsItem( sen ); final FactPattern fp1 = new FactPattern( "Data" ); fp1.setBoundName( "$d" ); m.addLhsItem( fp1 ); final CompositeFactPattern cp = new CompositeFactPattern( CompositeFactPattern.COMPOSITE_TYPE_NOT ); final FactPattern fp2 = new FactPattern( "Person" ); final FromCompositeFactPattern ffp1 = new FromCompositeFactPattern(); ffp1.setExpression( new ExpressionFormLine( new ExpressionVariable( fp1 ) ) ); ffp1.setFactPattern( fp2 ); cp.addFactPattern( ffp1 ); m.addLhsItem( cp ); final String actual = BRDRLPersistence.getInstance().marshal( m ); final String expected = "rule \"model\"\n" + "dialect \"mvel\"\n" + "when\n" + "A DSL phrase\n" + ">$d : Data( )\n" + ">not ( Person( ) from $d\n" + ")\n" + "then\n" + "end\n"; assertEqualsIgnoreWhitespace( expected, actual ); }
comp.addFactPattern( new FactPattern( "Cancel" ) ); m.addLhsItem( comp );