package org.infinispan.objectfilter.impl.predicateindex;
import org.infinispan.objectfilter.impl.syntax.parser.RowPropertyHelper;
/**
* @author anistor@redhat.com
* @since 8.0
*/
public final class RowMatcherEvalContext extends MatcherEvalContext<RowPropertyHelper.RowMetadata, RowPropertyHelper.ColumnMetadata, Integer> {
private final RowPropertyHelper.RowMetadata rowMetadata;
public RowMatcherEvalContext(Object userContext, Object eventType, Object instance, RowPropertyHelper.RowMetadata rowMetadata) {
super(userContext, eventType, instance);
this.rowMetadata = rowMetadata;
}
@Override
public RowPropertyHelper.RowMetadata getEntityType() {
return rowMetadata;
}
@Override
protected void processAttributes(AttributeNode<RowPropertyHelper.ColumnMetadata, Integer> node, Object instance) {
for (AttributeNode<RowPropertyHelper.ColumnMetadata, Integer> childAttribute : node.getChildren()) {
Object attributeValue = null;
if (instance != null) {
attributeValue = childAttribute.getMetadata().getValue(instance);
}
childAttribute.processValue(attributeValue, this);
}
}
}