private FromCompositeFactPattern visitFromCompositeFactPattern( FromCompositeFactPattern pattern ) { FromCompositeFactPattern clone = new FromCompositeFactPattern(); clone.setExpression( (ExpressionFormLine) visit( pattern.getExpression() ) ); clone.setFactPattern( (FactPattern) visit( pattern.getFactPattern() ) ); return clone; }
public void visitFromCompositeFactPattern( final FromCompositeFactPattern pattern, final boolean isSubPattern ) { buf.append( indentation ); if ( !isSubPattern && isDSLEnhanced ) { // adding passthrough markup buf.append( ">" ); } if ( pattern.getFactPattern() != null ) { generateFactPattern( pattern.getFactPattern() ); } buf.append( " from " ); renderExpression( pattern.getExpression() ); buf.append( "\n" ); }
protected void calculateReadOnly() { if ( this.pattern.getFactPattern() != null ) { this.isFactTypeKnown = this.getModeller().getSuggestionCompletions().isFactTypeRecognized( this.pattern.getFactPattern().getFactType() ); this.readOnly = !this.isFactTypeKnown; } }
@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 ); }
final FromCompositeFactPattern fcfp = new FromCompositeFactPattern(); final FactPattern x = new FactPattern( "Car" ); x.setBoundName( "x" ); a.setFieldType( "String" ); x.addConstraint( a ); fcfp.setFactPattern( x );
public void onClick( ClickEvent event ) { if ( Window.confirm( Constants.INSTANCE.RemoveThisEntireConditionQ() ) ) { setModified( true ); pattern.setFactPattern( null ); getModeller().refreshWidget(); } } };
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 ); }
@Override protected void calculateReadOnly() { if ( this.pattern.getFactPattern() != null ) { this.readOnly = !( this.getExtraLeftSidePatternFactTypes().containsValue( this.pattern.getFactPattern().getFactType() ) || this.getModeller().getSuggestionCompletions().isFactTypeRecognized( this.pattern.getFactPattern().getFactType() ) ); } }
private void visitFromCompositeFactPattern( FromCompositeFactPattern pattern ) { visit( pattern.getFactPattern() ); parseStringPattern( pattern.getExpression().getText() ); }
public void onChange( ChangeEvent event ) { pattern.setFactPattern( 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 ) { 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(); } };
/** * This will return a List<String> of all FactPattern bindings * @return The bindings or an empty list if no bindings are found. */ public List<String> getLHSBoundFacts() { if ( this.lhs == null ) { return Collections.emptyList(); } final List<String> list = new ArrayList<String>(); for ( int i = 0; i < this.lhs.length; i++ ) { IPattern pat = this.lhs[ i ]; if ( pat instanceof FromCompositeFactPattern ) { pat = ( (FromCompositeFactPattern) pat ).getFactPattern(); } if ( pat instanceof FactPattern ) { final FactPattern p = (FactPattern) pat; if ( p.getBoundName() != null ) { list.add( p.getBoundName() ); } } } return list; }
if ( pattern.getFactPattern() == null ) { panel.setWidget( r, 0, ExpressionBuilder expressionBuilder = new ExpressionBuilder( this.getModeller(), this.getEventBus(), this.pattern.getExpression(), this.readOnly ); expressionBuilder.addOnModifiedCommand( new Command() {
public void onChange( ChangeEvent event ) { pattern.setFactPattern( 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 ) { 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(); } };
protected void doLayout() { int row = 0; if ( pattern.getFactPattern() != null ) { FactPattern fact = pattern.getFactPattern(); if ( fact != null ) { this.layout.setWidget( row++, 0, createFactPatternWidget( fact ) ); } } this.layout.setWidget( row++, 0, getCompositeLabel() ); }
public void onChange( ChangeEvent event ) { pattern.setFactPattern( new FactPattern( box.getValue( 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(); } };
/** * This will return the FactPattern that a variable is bound Eto. * @param var The bound fact variable (NOT bound field). * @return null or the FactPattern found. */ public FactPattern getLHSBoundFact( final String var ) { if ( this.lhs == null ) { return null; } for ( int i = 0; i < this.lhs.length; i++ ) { IPattern pat = this.lhs[ i ]; if ( pat instanceof FromCompositeFactPattern ) { pat = ( (FromCompositeFactPattern) pat ).getFactPattern(); } if ( pat instanceof FactPattern ) { final FactPattern p = (FactPattern) pat; if ( p.getBoundName() != null && var.equals( p.getBoundName() ) ) { return p; } } } return null; }
/** * This will return the FieldConstraint that a variable is bound to. * @param var The bound field variable (NOT bound fact). * @return null or the FieldConstraint found. */ public FieldConstraint getLHSBoundField( final String var ) { if ( this.lhs == null ) { return null; } for ( int i = 0; i < this.lhs.length; i++ ) { IPattern pat = this.lhs[ i ]; if ( pat instanceof FromCompositeFactPattern ) { pat = ( (FromCompositeFactPattern) pat ).getFactPattern(); } if ( pat instanceof FactPattern ) { final FactPattern p = (FactPattern) pat; for ( int j = 0; j < p.getFieldConstraints().length; j++ ) { FieldConstraint fc = p.getFieldConstraints()[ j ]; List<String> fieldBindings = getFieldBinding( fc ); if ( fieldBindings.contains( var ) ) { return fc; } } } } return null; }