package org.solrmarc.index.specification.conditional;
import org.marc4j.marc.Record;
import org.marc4j.marc.VariableField;
import org.solrmarc.index.indexer.FullSym;
public class ConditionComposite extends Condition
{
final Condition o1;
final Condition o2;
int op;
public ConditionComposite(Condition o1, Condition o2, int op)
{
this.o1 = o1;
this.o2 = o2;
this.op = op;
}
public ConditionComposite(Condition o1, int op)
{
this.o1 = o1;
this.o2 = null;
this.op = op;
}
@Override
public boolean matches(final Record r, final VariableField f)
{
switch (op) {
case FullSym.AND:
return (o1.matches(r, f) && o2.matches(r, f));
case FullSym.OR:
return (o1.matches(r, f) || o2.matches(r, f));
case FullSym.NOT:
return (!o1.matches(r, f));
}
return (false);
}
}