package com.constellio.model.services.search.query.logical;
import java.util.Arrays;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
import com.constellio.model.entities.schemas.DataStoreField;
import com.constellio.model.services.search.query.logical.criteria.CompositeLogicalSearchValueOperator;
public abstract class LogicalSearchValueCondition {
public LogicalSearchValueCondition and(LogicalSearchValueCondition condition) {
return new CompositeLogicalSearchValueOperator(LogicalOperator.AND, Arrays.asList(this, condition));
}
public LogicalSearchValueCondition or(LogicalSearchValueCondition condition) {
return new CompositeLogicalSearchValueOperator(LogicalOperator.OR, Arrays.asList(this, condition));
}
public abstract boolean isValidFor(DataStoreField metadata);
public abstract String getSolrQuery(DataStoreField metadata);
@Override
public int hashCode() {
return HashCodeBuilder.reflectionHashCode(this);
}
@Override
public boolean equals(Object obj) {
return EqualsBuilder.reflectionEquals(this, obj);
}
}