read.unlock();
}
}
public Matcher getSingleFilterMatcher(FilterSubscription filterSubscription, final FilterCallback filterCallback) {
final FilterSubscriptionImpl filterSubscriptionImpl = (FilterSubscriptionImpl) filterSubscription;
final Set<String> types = Collections.singleton(filterSubscriptionImpl.getEntityTypeName());
final PredicateIndex<AttributeId> predicateIndex = new PredicateIndex<AttributeId>();
for (BENode node : filterSubscriptionImpl.getBETree().getNodes()) {
if (node instanceof PredicateNode) {
final PredicateNode<AttributeId> predicateNode = (PredicateNode<AttributeId>) node;
Predicate.Callback predicateCallback = new Predicate.Callback() {
@Override
public void handleValue(MatcherEvalContext<?> ctx, boolean isMatching) {