public void visitFromEntryPointFactPattern( FromEntryPointFactPattern pattern, boolean isSubPattern ) { buf.append( indentation ); if ( !isSubPattern && isDSLEnhanced ) { // adding passthrough markup buf.append( ">" ); } if ( pattern.getFactPattern() != null ) { generateFactPattern( pattern.getFactPattern() ); } buf.append( " from entry-point \"" + pattern.getEntryPointName() + "\"\n" ); }
fp.setWindow( pattern.getWindow() ); if ( pattern.getEntryPointName() != null && pattern.getEntryPointName().length() > 0 ) { FromEntryPointFactPattern fep = new FromEntryPointFactPattern(); fep.setEntryPointName( pattern.getEntryPointName() ); fep.setFactPattern( fp ); patterns.add( fep ); ifp = fep; } else if ( ifp instanceof FromEntryPointFactPattern ) { FromEntryPointFactPattern fep = (FromEntryPointFactPattern) ifp; fp = fep.getFactPattern(); } else { throw new IllegalArgumentException( "Inexpected IFactPattern implementation found." );
@Test public void testFromCollectWithEmbeddedFromEntryPoint() { RuleModel m = new RuleModel(); m.name = "r1"; SingleFieldConstraint sfc = new SingleFieldConstraint( "bar" ); sfc.setFactType( SuggestionCompletionEngine.TYPE_NUMERIC_INTEGER ); sfc.setFieldBinding( "$a" ); sfc.setOperator( "==" ); sfc.setValue( "777" ); FactPattern fp = new FactPattern( "Foo" ); fp.addConstraint( sfc ); FromEntryPointFactPattern fep = new FromEntryPointFactPattern(); fep.setEntryPointName( "ep" ); fep.setFactPattern( fp ); FromCollectCompositeFactPattern fac = new FromCollectCompositeFactPattern(); fac.setRightPattern( fep ); fac.setFactPattern( new FactPattern( "java.util.List" ) ); m.addLhsItem( fac ); String actual = BRDRLPersistence.getInstance().marshal( m ); String expected = "rule \"r1\"\n" + "dialect \"mvel\"\n" + "when\n" + "java.util.List( ) from collect ( Foo( $a : bar == 777 ) from entry-point \"ep\" ) \n" + "then\n" + "end"; assertEqualsIgnoreWhitespace( expected, actual ); }
private IPattern findByFactPattern(List<IPattern> patterns, String boundName) { if ( boundName == null ) { return null; } for ( IPattern ifp : patterns ) { if ( ifp instanceof FactPattern ) { FactPattern fp = (FactPattern) ifp; if ( fp.getBoundName() != null && fp.getBoundName().equals( boundName ) ) { return fp; } } else if ( ifp instanceof FromEntryPointFactPattern ) { FromEntryPointFactPattern fefp = (FromEntryPointFactPattern) ifp; FactPattern fp = fefp.getFactPattern(); if ( fp.getBoundName() != null && fp.getBoundName().equals( boundName ) ) { return fp; } } } return null; }
fp.setWindow( pattern.getWindow() ); if ( pattern.getEntryPointName() != null && pattern.getEntryPointName().length() > 0 ) { FromEntryPointFactPattern fep = new FromEntryPointFactPattern(); fep.setEntryPointName( pattern.getEntryPointName() ); fep.setFactPattern( fp ); patterns.add( fep ); ifp = fep; } else if ( ifp instanceof FromEntryPointFactPattern ) { FromEntryPointFactPattern fep = (FromEntryPointFactPattern) ifp; fp = fep.getFactPattern(); } else { throw new IllegalArgumentException( "Inexpected IFactPattern implementation found." );
@Test public void testFromAccumulateWithEmbeddedFromEntryPoint() { RuleModel m = new RuleModel(); m.name = "r1"; SingleFieldConstraint sfc = new SingleFieldConstraint( "bar" ); sfc.setFactType( SuggestionCompletionEngine.TYPE_NUMERIC_INTEGER ); sfc.setFieldBinding( "$a" ); sfc.setOperator( "==" ); sfc.setValue( "777" ); FactPattern fp = new FactPattern( "Foo" ); fp.addConstraint( sfc ); FromEntryPointFactPattern fep = new FromEntryPointFactPattern(); fep.setEntryPointName( "ep" ); fep.setFactPattern( fp ); FromAccumulateCompositeFactPattern fac = new FromAccumulateCompositeFactPattern(); fac.setSourcePattern( fep ); fac.setFactPattern( new FactPattern( "java.util.List" ) ); fac.setFunction( "max($a)" ); m.addLhsItem( fac ); String actual = BRDRLPersistence.getInstance().marshal( m ); String expected = "rule \"r1\"\n" + "dialect \"mvel\"\n" + "when\n" + "java.util.List( ) from accumulate ( Foo( $a : bar == 777 ) from entry-point \"ep\", \n" + "max($a))\n" + "then\n" + "end"; assertEqualsIgnoreWhitespace( expected, actual ); }
private IPattern findByFactPattern(List<IPattern> patterns, String boundName) { if ( boundName == null ) { return null; } for ( IPattern ifp : patterns ) { if ( ifp instanceof FactPattern ) { FactPattern fp = (FactPattern) ifp; if ( fp.getBoundName() != null && fp.getBoundName().equals( boundName ) ) { return fp; } } else if ( ifp instanceof FromEntryPointFactPattern ) { FromEntryPointFactPattern fefp = (FromEntryPointFactPattern) ifp; FactPattern fp = fefp.getFactPattern(); if ( fp.getBoundName() != null && fp.getBoundName().equals( boundName ) ) { return fp; } } } return null; }
public void visitFromEntryPointFactPattern( FromEntryPointFactPattern pattern, boolean isSubPattern ) { buf.append( indentation ); if ( !isSubPattern && isDSLEnhanced ) { // adding passthrough markup buf.append( ">" ); } if ( pattern.getFactPattern() != null ) { generateFactPattern( pattern.getFactPattern() ); } buf.append( " from entry-point \"" + pattern.getEntryPointName() + "\"\n" ); }