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,
"-2,2"),
new SelfReferenceClassFieldReader( StockTick.class, "this" ) ) );
Pattern c = new Pattern( 2, ot, "$c" );
c.addConstraint( new EvaluatorConstraint( new Declaration[] { a.getDeclaration() },
evals.getEvaluator( ValueType.OBJECT_TYPE,
AfterEvaluatorDefinition.AFTER,
"-3,4"),
new SelfReferenceClassFieldReader( StockTick.class, "this" ) ) );
Pattern d = new Pattern( 3, ot, "$d" );
d.addConstraint( new EvaluatorConstraint( new Declaration[] { b.getDeclaration() },
evals.getEvaluator( ValueType.OBJECT_TYPE,
AfterEvaluatorDefinition.AFTER,
"1,2"),
new SelfReferenceClassFieldReader( StockTick.class, "this" ) ) );
d.addConstraint( new EvaluatorConstraint( new Declaration[] { c.getDeclaration() },
evals.getEvaluator( ValueType.OBJECT_TYPE,
AfterEvaluatorDefinition.AFTER,
"2,3"),
new SelfReferenceClassFieldReader( StockTick.class, "this" ) ) );
Pattern e = new Pattern( 4, ot, "$e" );
e.addConstraint(new EvaluatorConstraint(new Declaration[]{d.getDeclaration()},
evals.getEvaluator(ValueType.OBJECT_TYPE,
AfterEvaluatorDefinition.AFTER,
"1,10"),
new SelfReferenceClassFieldReader(StockTick.class, "this")));