private FromAccumulateCompositeFactPattern visitFromAccumulateCompositeFactPattern( FromAccumulateCompositeFactPattern pattern ) { FromAccumulateCompositeFactPattern clone = new FromAccumulateCompositeFactPattern(); clone.setActionCode( pattern.getActionCode() ); clone.setExpression( (ExpressionFormLine) visit( pattern.getExpression() ) ); clone.setFactPattern( (FactPattern) visit( pattern.getFactPattern() ) ); clone.setFunction( pattern.getFunction() ); clone.setInitCode( pattern.getInitCode() ); clone.setResultCode( pattern.getResultCode() ); clone.setReverseCode( pattern.getReverseCode() ); clone.setSourcePattern( (IPattern) visit( pattern.getSourcePattern() ) ); return clone; }
private void visitFromAccumulateCompositeFactPattern( FromAccumulateCompositeFactPattern pattern ) { visit( pattern.getFactPattern() ); visit( pattern.getSourcePattern() ); parseStringPattern( pattern.getActionCode() ); parseStringPattern( pattern.getInitCode() ); parseStringPattern( pattern.getReverseCode() ); }
if ( pattern.getFactPattern() != null ) { generateFactPattern( pattern.getFactPattern() ); if ( pattern.getSourcePattern() != null ) { if ( pattern.getSourcePattern() instanceof FactPattern ) { generateFactPattern( (FactPattern) pattern.getSourcePattern() ); } else if ( pattern.getSourcePattern() instanceof FromAccumulateCompositeFactPattern ) { visitFromAccumulateCompositeFactPattern( (FromAccumulateCompositeFactPattern) pattern.getSourcePattern(), isSubPattern ); } else if ( pattern.getSourcePattern() instanceof FromCollectCompositeFactPattern ) { visitFromCollectCompositeFactPattern( (FromCollectCompositeFactPattern) pattern.getSourcePattern(), isSubPattern ); } else if ( pattern.getSourcePattern() instanceof FromEntryPointFactPattern ) { visitFromEntryPointFactPattern( (FromEntryPointFactPattern) pattern.getSourcePattern(), isSubPattern ); } else if ( pattern.getSourcePattern() instanceof FromCompositeFactPattern ) { visitFromCompositeFactPattern( (FromCompositeFactPattern) pattern.getSourcePattern(), isSubPattern ); } else { throw new IllegalArgumentException( "Unsupported pattern " + pattern.getSourcePattern() + " for FROM ACCUMULATE" ); if ( pattern.useFunctionOrCode().equals( FromAccumulateCompositeFactPattern.USE_FUNCTION ) ) { buf.append( indentation + "\t" ); buf.append( pattern.getFunction() ); } else { buf.append( indentation + "\tinit( " ); buf.append( pattern.getInitCode() ); buf.append( " ),\n" ); buf.append( indentation + "\taction( " );
if ( patternSource instanceof AccumulateDescr ) { AccumulateDescr accumulate = (AccumulateDescr) patternSource; FromAccumulateCompositeFactPattern fac = new FromAccumulateCompositeFactPattern(); fac.setSourcePattern( parseBaseDescr( accumulate.getInput(), boundParams ) ); fac.setFactPattern( new FactPattern( pattern.getObjectType() ) ); for ( AccumulateDescr.AccumulateFunctionCallDescr func : accumulate.getFunctions() ) { String funcName = func.getFunction(); fac.setFunction( funcName + "(" + sb + ")" ); break;
setModified( true ); if ( sender == initField ) { getFromAccumulatePattern().setFunction( null ); functionField.setText( "" ); getFromAccumulatePattern().setInitCode( code ); } else if ( sender == actionField ) { getFromAccumulatePattern().setFunction( null ); functionField.setText( "" ); getFromAccumulatePattern().setActionCode( code ); } else if ( sender == reverseField ) { getFromAccumulatePattern().setFunction( null ); functionField.setText( "" ); getFromAccumulatePattern().setReverseCode( code ); } else if ( sender == resultField ) { getFromAccumulatePattern().setFunction( null ); functionField.setText( "" ); getFromAccumulatePattern().setResultCode( code ); } else if ( sender == functionField ) { getFromAccumulatePattern().clearCodeFields(); initField.setText( "" ); actionField.setText( "" ); reverseField.setText( "" ); resultField.setText( "" ); getFromAccumulatePattern().setFunction( code );
public void onClick( ClickEvent event ) { Widget sender = (Widget) event.getSource(); if ( sender == fromBtn ) { getFromAccumulatePattern().setSourcePattern( new FromCompositeFactPattern() ); } else if ( sender == fromAccumulateBtn ) { getFromAccumulatePattern().setSourcePattern( new FromAccumulateCompositeFactPattern() ); } else if ( sender == fromCollectBtn ) { getFromAccumulatePattern().setSourcePattern( new FromCollectCompositeFactPattern() ); } else if ( sender == fromEntryPointBtn ) { getFromAccumulatePattern().setSourcePattern( new FromEntryPointFactPattern() ); } else { throw new IllegalArgumentException( "Unknown sender: " + sender ); } setModified( true ); getModeller().refreshWidget(); popup.hide(); } };
private void addNewFCE( String type, int position ) { FromCompositeFactPattern p = null; if ( type.equals( "from" ) ) { p = new FromCompositeFactPattern(); } else if ( type.equals( "from accumulate" ) ) { p = new FromAccumulateCompositeFactPattern(); } else if ( type.equals( "from collect" ) ) { p = new FromCollectCompositeFactPattern(); } else if ( type.equals( "from entry-point" ) ) { p = new FromEntryPointFactPattern(); } this.model.addLhsItem( p, position ); }
public void onClick( ClickEvent event ) { if ( Window.confirm( Constants.INSTANCE.RemoveThisBlockOfData() ) ) { setModified( true ); getFromAccumulatePattern().setSourcePattern( null ); getModeller().refreshWidget(); } } } ) );
if ( this.getFromAccumulatePattern().getSourcePattern() == null ) { panel.setWidget( r++, 0, !this.readOnly ) ); } else { IPattern rPattern = this.getFromAccumulatePattern().getSourcePattern(); initField.setText( getFromAccumulatePattern().getInitCode() ); initField.setEnabled( !this.readOnly ); codeTable.setWidget( codeTableRow++, final TextBox actionField = new TextBox(); actionField.setTitle( "action code" ); actionField.setText( getFromAccumulatePattern().getActionCode() ); actionField.setEnabled( !this.readOnly ); codeTable.setWidget( codeTableRow++, final TextBox reverseField = new TextBox(); reverseField.setTitle( "reverse code." ); reverseField.setText( getFromAccumulatePattern().getReverseCode() ); reverseField.setEnabled( !this.readOnly ); codeTable.setWidget( codeTableRow++, final TextBox resultField = new TextBox(); resultField.setTitle( "result code" ); resultField.setText( getFromAccumulatePattern().getResultCode() ); resultField.setEnabled( !this.readOnly ); codeTable.setWidget( codeTableRow++,
@Test public void testFromAccumulateWithEmbeddedFromEntryPoint() { RuleModel m = new RuleModel(); m.name = "r1"; SingleFieldConstraint sfc = new SingleFieldConstraint( "bar" ); sfc.setFactType( DataType.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 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"; checkMarshallUnmarshall( expected, m ); }
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(); } };
public void onChange( ChangeEvent event ) { getFromAccumulatePattern().setSourcePattern( new FactPattern( box.getItemText( box.getSelectedIndex() ) ) ); setModified( true ); getModeller().refreshWidget(); popup.hide(); } } );
public void onClick( ClickEvent event ) { Widget sender = (Widget) event.getSource(); if ( sender == fromBtn ) { getFromCollectPattern().setRightPattern( new FromCompositeFactPattern() ); } else if ( sender == fromAccumulateBtn ) { getFromCollectPattern().setRightPattern( new FromAccumulateCompositeFactPattern() ); } else if ( sender == fromCollectBtn ) { getFromCollectPattern().setRightPattern( new FromCollectCompositeFactPattern() ); } else if ( sender == freeFormDRLBtn ) { getFromCollectPattern().setRightPattern( new FreeFormLine() ); } else if ( sender == fromEntryPointBtn ) { getFromCollectPattern().setRightPattern( new FromEntryPointFactPattern() ); } else { throw new IllegalArgumentException( "Unknown sender: " + sender ); } setModified( true ); getModeller().refreshWidget(); popup.hide(); } };