public Pattern getPattern(int index, String type) throws ClassNotFoundException { return new Pattern(index, new ClassObjectType(typeResolver.resolveType(type))); }
@Test public void testDeclarationsObjectType() throws Exception { final ObjectType type = new ClassObjectType( Cheese.class ); final Pattern col = new Pattern( 0, type, "foo" ); final Declaration dec = col.getDeclaration(); final InternalReadAccessor ext = dec.getExtractor(); assertEquals( Cheese.class, ext.getExtractToClass() ); final Cheese stilton = new Cheese( "stilton", 42 ); assertEquals( stilton, dec.getValue( null, stilton ) ); }
private PredicateConstraint getPredicateConstraint(Pattern pattern) { for (Constraint constraint : pattern.getConstraints()) { if (constraint instanceof PredicateConstraint) return (PredicateConstraint)constraint; } return null; }
@Test public void testDeclaration() { final InternalReadAccessor extractor = store.getReader( Cheese.class, "type" ); final Pattern pattern = new Pattern( 5, new ClassObjectType( Cheese.class ) ); // Bind the extractor to a decleration // Declarations know the pattern they derive their value from final Declaration declaration = new Declaration( "typeOfCheese", extractor, pattern ); assertEquals( "typeOfCheese", declaration.getIdentifier() ); assertSame( String.class, declaration.getDeclarationClass() ); assertSame( extractor, declaration.getExtractor() ); assertEquals( 5, declaration.getPattern().getOffset() ); }
ClassObjectType ot = new ClassObjectType(StockTick.class, true); Pattern a = new Pattern( 0, ot, "$a" ); Pattern b = new Pattern( 1, ot, "$b" ); b.addConstraint( new EvaluatorConstraint( new Declaration[] { a.getDeclaration() }, evals.getEvaluator( ValueType.OBJECT_TYPE, AfterEvaluatorDefinition.AFTER, Pattern c = new Pattern( 2, ot, "$c" ); c.addConstraint( new EvaluatorConstraint( new Declaration[] { a.getDeclaration() }, evals.getEvaluator( ValueType.OBJECT_TYPE, AfterEvaluatorDefinition.AFTER, Pattern d = new Pattern( 3, ot, "$d" ); d.addConstraint( new EvaluatorConstraint( new Declaration[] { b.getDeclaration() }, evals.getEvaluator( ValueType.OBJECT_TYPE, AfterEvaluatorDefinition.AFTER, d.addConstraint( new EvaluatorConstraint( new Declaration[] { c.getDeclaration() }, evals.getEvaluator( ValueType.OBJECT_TYPE, AfterEvaluatorDefinition.AFTER, Pattern e = new Pattern( 4, ot, "$e" ); e.addConstraint(new EvaluatorConstraint(new Declaration[]{d.getDeclaration()}, evals.getEvaluator(ValueType.OBJECT_TYPE, AfterEvaluatorDefinition.AFTER,
final Pattern pattern = new Pattern( 0, cheeseObjectType ); pattern.addConstraint( constraint ); rule1.addPattern( pattern ); final Pattern pattern2 = new Pattern( 0, cheeseObjectType2 ); pattern2.addConstraint( constraint2 ); rule2.addPattern( pattern2 );
reg.getDialect( pkgRegistry.getDialect() ) ); rule.addPattern( new Pattern( 0, new ClassObjectType( Cheese.class ), "$cheese" ) ); Pattern p = new Pattern( 1, new ClassObjectType( Person.class ), "$persone" ); Declaration declr = p.addDeclaration( "age" );
((ClassObjectType) pattern.getObjectType()).getClassType().getName() ); final Behavior window = pattern.getBehaviors().get( 0 ); assertEquals( Behavior.BehaviorType.TIME_WINDOW, window.getType() );
public AlphaNodeFieldConstraint getLiteralConstraint(final Pattern pattern, final String fieldName, final String evaluatorString, final String value) { final Class<?> clazz = ((ClassObjectType) pattern.getObjectType()).getClassType(); final InternalReadAccessor extractor = store.getReader(clazz, fieldName); FieldValue fieldValue = FieldFactory.getInstance().getFieldValue(value, extractor.getValueType()); return new MvelConstraintTestUtil(fieldName + evaluatorString + value, fieldValue, extractor); }
final Pattern pattern = new Pattern( 0, cheeseObjectType ); pattern.addConstraint( constraint ); rule1.addPattern( pattern ); final Pattern pattern2 = new Pattern( 0, cheeseObjectType2 ); pattern2.addConstraint( constraint2 ); rule2.addPattern( pattern2 );
reg.getDialect( pkgRegistry.getDialect() ) ); rule.addPattern( new Pattern( 0, new ClassObjectType( Cheese.class ), "$cheese" ) ); Pattern p = new Pattern( 1, new ClassObjectType( Person.class ), "$persone" ); Declaration declr = p.addDeclaration( "age" );
@Test public void testAddMultipleChildsIntoNot() { final GroupElement not = GroupElementFactory.newNotInstance(); final Pattern pattern1 = new Pattern( 0, null ); try { not.addChild( pattern1 ); } catch ( final RuntimeException rde ) { fail( "Adding a single child is not supposed to throw Exception for NOT GE: " + rde.getMessage() ); } final Pattern pattern2 = new Pattern( 0, null ); try { not.addChild( pattern2 ); fail( "Adding a second child into a NOT GE should throw Exception" ); } catch ( final RuntimeException rde ) { // everything is fine } }
@Test public void testDeclarationOrdering() { final GroupElement and1 = GroupElementFactory.newAndInstance(); final Pattern pattern1 = new Pattern( 0, new ClassObjectType( Person.class), "x" ); and1.addChild( pattern1 ); final Pattern pattern2 = new Pattern( 2, new ClassObjectType( Person.class), "y" ); and2.addChild( and1 ); final Pattern pattern3 = new Pattern( 3, new ClassObjectType( Person.class), "x" ); assertSame( x2, pattern3.getDeclaration() ); assertSame( y1, y2); assertSame( z1, z2);
rule.setAgendaGroup( "test group" ); final ClassObjectType cheeseObjectType = new ClassObjectType( Cheese.class ); final Pattern pattern = new Pattern( 0, cheeseObjectType ); pattern.addConstraint( constraint ); rule.addPattern( pattern );
final Constraint returnValue1 = pattern1.getConstraints().get( 0 ); builder2.addPackage( packageDescr2 ); final Pattern pattern2 = (Pattern) ((RuleImpl)builder2.getPackage("package2").getRules().iterator().next()).getLhs().getChildren().get( 0 ); final Constraint returnValue2 = pattern2.getConstraints().get( 0 ); builder3.addPackage( packageDescr3 ); final Pattern pattern3 = (Pattern) ((RuleImpl)builder3.getPackage("package3").getRules().iterator().next()).getLhs().getChildren().get( 0 ); final Constraint returnValue3 = pattern3.getConstraints().get( 0 );
protected BetaNodeFieldConstraint getConstraint(String identifier, Operator operator, String fieldName, Class clazz) { ClassFieldAccessorStore store = new ClassFieldAccessorStore(); store.setClassFieldAccessorCache( new ClassFieldAccessorCache( Thread.currentThread().getContextClassLoader() ) ); store.setEagerWire( true ); InternalReadAccessor extractor = store.getReader( clazz, fieldName ); Declaration declaration = new Declaration( identifier, extractor, new Pattern( 0, new ClassObjectType( clazz ) ) ); String expression = fieldName + " " + operator.getOperatorString() + " " + declaration.getIdentifier(); return new MvelConstraintTestUtil(expression, declaration, extractor); }
@Test public void testDeclarationsFactTemplate() throws Exception { InternalKnowledgePackage pkg = new KnowledgePackageImpl( "org.store" ); final FieldTemplate cheeseName = new FieldTemplateImpl( "name", 0, String.class ); final FieldTemplate cheesePrice = new FieldTemplateImpl( "price", 1, Integer.class ); final FieldTemplate[] fields = new FieldTemplate[]{cheeseName, cheesePrice}; final FactTemplate cheese = new FactTemplateImpl( pkg, "Cheese", fields ); final ObjectType type = new FactTemplateObjectType( cheese ); final Pattern col = new Pattern( 0, type, "foo" ); final Declaration dec = col.getDeclaration(); final InternalReadAccessor ext = dec.getExtractor(); assertEquals( Fact.class, ext.getExtractToClass() ); final Fact stilton = cheese.createFact( 10 ); stilton.setFieldValue( "name", "stilton" ); stilton.setFieldValue( "price", new Integer( 200 ) ); assertEquals( stilton, dec.getValue( null, stilton ) ); }
final PredicateConstraint predicate1 = (PredicateConstraint) pattern1.getConstraints().get( 0 ); final PredicateConstraint predicate2 = (PredicateConstraint) pattern2.getConstraints().get( 0 ); builder3.addPackage( packageDescr3 ); final Pattern pattern3 = (Pattern) ((RuleImpl)builder3.getPackage("package3").getRules().iterator().next()).getLhs().getChildren().get( 0 ); final PredicateConstraint predicate3 = (PredicateConstraint) pattern3.getConstraints().get( 0 );
protected BetaNodeFieldConstraint getConstraint(String identifier, Operator operator, String fieldName, Class clazz) { ClassFieldAccessorStore store = new ClassFieldAccessorStore(); store.setClassFieldAccessorCache( new ClassFieldAccessorCache( Thread.currentThread().getContextClassLoader() ) ); store.setEagerWire( true ); InternalReadAccessor extractor = store.getReader( clazz, fieldName ); Declaration declaration = new Declaration( identifier, extractor, new Pattern( 0, new ClassObjectType( clazz ) ) ); String expression = fieldName + " " + operator.getOperatorString() + " " + identifier; return new MvelConstraintTestUtil(expression, operator.getOperatorString(), declaration, extractor); }
final Pattern pattern = new Pattern( 0, cheeseObjeectType, "cheese" ); final Map<String, Declaration> map = new HashMap<String, Declaration>(); map.put( "cheese", pattern.getDeclaration() ); declarationResolver.setDeclarations( map ); context.setDeclarationResolver( declarationResolver );