public void onChange( ChangeEvent event ) { String fieldName = box.getItemText( box.getSelectedIndex() ); String fieldType = completions.getFieldType( model.getFactType(), fieldName ); model.addFieldValue( new ActionFieldValue( fieldName, "", fieldType ) ); setModified( true ); getModeller().refreshWidget(); popup.hide(); } } );
private ActionInsertFact visitActionFieldList( ActionInsertFact afl ) { ActionInsertFact clone = new ActionInsertFact(); clone.setFactType( afl.getFactType() ); clone.setBoundName( afl.getBoundName() ); for ( ActionFieldValue afv : afl.getFieldValues() ) { ActionFieldValue afvClone = new ActionFieldValue(); afvClone.setField( afv.getField() ); afvClone.setNature( afv.getNature() ); afvClone.setType( afv.getType() ); afvClone.setValue( afv.getValue() ); clone.addFieldValue( afvClone ); } return clone; }
"BooleanResult", Boolean.class.getName() ); aif.addFieldValue( fv1 ); ActionWorkItemFieldValue fv2 = new ActionWorkItemFieldValue( "ResultsFloatResult", DataType.TYPE_NUMERIC_FLOAT, "FloatResult", Float.class.getName() ); aif.addFieldValue( fv2 ); ActionWorkItemFieldValue fv3 = new ActionWorkItemFieldValue( "ResultsIntegerResult", DataType.TYPE_NUMERIC_INTEGER, "IntegerResult", Integer.class.getName() ); aif.addFieldValue( fv3 ); ActionWorkItemFieldValue fv4 = new ActionWorkItemFieldValue( "ResultsStringResult", DataType.TYPE_STRING, "StringResult", String.class.getName() ); aif.addFieldValue( fv4 );
DataType.TYPE_STRING ); brl1DefinitionAction1FieldValue1.setNature( BaseSingleFieldConstraint.TYPE_LITERAL ); brl1DefinitionAction1.addFieldValue( brl1DefinitionAction1FieldValue1 ); brl1Definition.add( brl1DefinitionAction1 ); DataType.TYPE_STRING ); brl1DefinitionAction2FieldValue1.setNature( BaseSingleFieldConstraint.TYPE_TEMPLATE ); brl1DefinitionAction2.addFieldValue( brl1DefinitionAction2FieldValue1 ); ActionFieldValue brl1DefinitionAction2FieldValue2 = new ActionFieldValue( "age", "$age", DataType.TYPE_NUMERIC_INTEGER ); brl1DefinitionAction2FieldValue2.setNature( BaseSingleFieldConstraint.TYPE_TEMPLATE ); brl1DefinitionAction2.addFieldValue( brl1DefinitionAction2FieldValue2 ); brl1Definition.add( brl1DefinitionAction2 );
ai.addFieldValue( new ActionFieldValue( "dob", "31-Jan-2000", DataType.TYPE_DATE ) );
DataType.TYPE_STRING ); brl1DefinitionAction1FieldValue1.setNature( BaseSingleFieldConstraint.TYPE_LITERAL ); brl1DefinitionAction1.addFieldValue( brl1DefinitionAction1FieldValue1 ); brl1Definition.add( brl1DefinitionAction1 );
DataType.TYPE_STRING ); brl1DefinitionAction1FieldValue1.setNature( BaseSingleFieldConstraint.TYPE_TEMPLATE ); brl1DefinitionAction1.addFieldValue( brl1DefinitionAction1FieldValue1 ); ActionFieldValue brl1DefinitionAction1FieldValue2 = new ActionFieldValue( "age", "$age", DataType.TYPE_NUMERIC_INTEGER ); brl1DefinitionAction1FieldValue2.setNature( BaseSingleFieldConstraint.TYPE_TEMPLATE ); brl1DefinitionAction1.addFieldValue( brl1DefinitionAction1FieldValue2 ); brl1Definition.add( brl1DefinitionAction1 ); brl1.setDefinition( brl1Definition );
ActionInsertFact aif = new ActionInsertFact( "Person" ); aif.setBoundName( "$aif" ); aif.addFieldValue( new ActionFieldValue( "rating", null, DataType.TYPE_STRING ) );
@Test public void testLiteralBigIntegerJava() { RuleModel m = new RuleModel(); m.name = "test literal biginteger"; m.addAttribute( new RuleAttribute( "dialect", "java" ) ); FactPattern p = new FactPattern( "Person" ); SingleFieldConstraint con = new SingleFieldConstraint(); con.setFieldType( DataType.TYPE_NUMERIC_BIGINTEGER ); con.setFieldName( "field1" ); con.setOperator( "==" ); con.setValue( "44" ); con.setConstraintValueType( SingleFieldConstraint.TYPE_LITERAL ); p.addConstraint( con ); m.addLhsItem( p ); ActionInsertFact ai = new ActionInsertFact( "Person" ); ai.addFieldValue( new ActionFieldValue( "field1", "55", DataType.TYPE_NUMERIC_BIGINTEGER ) ); m.addRhsItem( ai ); String expected = "rule \"test literal biginteger\" \n" + "\tdialect \"java\"\n when \n" + " Person(field1 == 44I ) \n" + " then \n" + "Person fact0 = new Person(); \n" + "fact0.setField1( new java.math.BigInteger( \"55\" ) ); \n" + "insert( fact0 ); \n" + "end"; checkMarshallUnmarshall( expected, m ); }
ActionInsertFact aif1 = new ActionInsertFact( "Person" ); aif1.setBoundName( "$aif" ); aif1.addFieldValue( new ActionFieldValue( "rating", null, DataType.TYPE_STRING ) ); ActionInsertFact aif2 = new ActionInsertFact( "Person" ); aif2.setBoundName( "$aif" ); aif2.addFieldValue( new ActionFieldValue( "rating", null, DataType.TYPE_STRING ) );
@Test public void testLiteralBigDecimalMvel() { RuleModel m = new RuleModel(); m.name = "test literal bigdecimal"; m.addAttribute( new RuleAttribute( "dialect", "mvel" ) ); FactPattern p = new FactPattern( "Person" ); SingleFieldConstraint con = new SingleFieldConstraint(); con.setFieldType( DataType.TYPE_NUMERIC_BIGDECIMAL ); con.setFieldName( "field1" ); con.setOperator( "==" ); con.setValue( "44" ); con.setConstraintValueType( SingleFieldConstraint.TYPE_LITERAL ); p.addConstraint( con ); m.addLhsItem( p ); ActionInsertFact ai = new ActionInsertFact( "Person" ); ai.addFieldValue( new ActionFieldValue( "field1", "55", DataType.TYPE_NUMERIC_BIGDECIMAL ) ); m.addRhsItem( ai ); String expected = "rule \"test literal bigdecimal\" \n" + "\tdialect \"mvel\"\n when \n" + " Person(field1 == 44B) \n" + " then \n" + "Person fact0 = new Person(); \n" + "fact0.setField1( 55B ); \n" + "insert( fact0 ); \n" + "end"; checkMarshallUnmarshall( expected, m ); }
@Test public void testLiteralBigDecimalJava() { RuleModel m = new RuleModel(); m.name = "test literal bigdecimal"; m.addAttribute( new RuleAttribute( "dialect", "java" ) ); FactPattern p = new FactPattern( "Person" ); SingleFieldConstraint con = new SingleFieldConstraint(); con.setFieldType( DataType.TYPE_NUMERIC_BIGDECIMAL ); con.setFieldName( "field1" ); con.setOperator( "==" ); con.setValue( "44" ); con.setConstraintValueType( SingleFieldConstraint.TYPE_LITERAL ); p.addConstraint( con ); m.addLhsItem( p ); ActionInsertFact ai = new ActionInsertFact( "Person" ); ai.addFieldValue( new ActionFieldValue( "field1", "55", DataType.TYPE_NUMERIC_BIGDECIMAL ) ); m.addRhsItem( ai ); String expected = "rule \"test literal bigdecimal\" \n" + "\tdialect \"java\"\n when \n" + " Person(field1 == 44B) \n" + " then \n" + "Person fact0 = new Person(); \n" + "fact0.setField1( new java.math.BigDecimal( \"55\" ) ); \n" + "insert( fact0 ); \n" + "end"; checkMarshallUnmarshall( expected, m ); }
ai.addFieldValue( new ActionFieldValue( "field1", "55", DataType.TYPE_NUMERIC_BIGINTEGER ) );
ActionInsertFact aif = new ActionInsertFact( "Person" ); aif.setBoundName( "$aif" ); aif.addFieldValue( new ActionFieldValue( "rating", null, DataType.TYPE_STRING ) );
ActionInsertFact aif = new ActionInsertFact( "Person" ); aif.setBoundName( "$aif" ); aif.addFieldValue( new ActionFieldValue( "rating", null, DataType.TYPE_STRING ) );
DataType.TYPE_STRING ); brl1DefinitionAction1FieldValue1.setNature( BaseSingleFieldConstraint.TYPE_TEMPLATE ); brl1DefinitionAction1.addFieldValue( brl1DefinitionAction1FieldValue1 ); ActionFieldValue brl1DefinitionAction1FieldValue2 = new ActionFieldValue( "age", "$age", DataType.TYPE_NUMERIC_INTEGER ); brl1DefinitionAction1FieldValue2.setNature( BaseSingleFieldConstraint.TYPE_TEMPLATE ); brl1DefinitionAction1.addFieldValue( brl1DefinitionAction1FieldValue2 ); brl1Definition.add( brl1DefinitionAction1 ); brl1.setDefinition( brl1Definition );