package com.constellio.model.services.search.query.logical.condition; import java.util.List; import com.constellio.model.services.search.query.logical.LogicalSearchValueCondition; public class NegatedLogicalSearchCondition extends LogicalSearchCondition { private final LogicalSearchCondition negated; public NegatedLogicalSearchCondition(LogicalSearchCondition negated) { super(negated.getFilters()); this.negated = negated; } @Override public void validate() { negated.validate(); } @Override public LogicalSearchCondition withFilters(DataStoreFilters filters) { return new NegatedLogicalSearchCondition(negated.withFilters(filters)); } @Override public LogicalSearchCondition withOrValueConditions(List<LogicalSearchValueCondition> conditions) { throw new UnsupportedOperationException("Cannot add value conditions on a negated condition"); } @Override public LogicalSearchCondition withAndValueConditions(List<LogicalSearchValueCondition> conditions) { throw new UnsupportedOperationException("Cannot add value conditions on a negated condition"); } @Override public LogicalSearchCondition negated() { return negated; } @Override public String getSolrQuery(SolrQueryBuilderParams params) { return "( *:* -" + negated.getSolrQuery(params) + " )"; } }