package com.constellio.model.services.search.query.logical.criteria;
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.LogicalSearchValueCondition;
public class IsNotEqualCriterion extends LogicalSearchValueCondition {
private final Object value;
public IsNotEqualCriterion(Object value) {
super();
this.value = value;
}
public Object getValue() {
return value;
}
@Override
public boolean isValidFor(DataStoreField dataStoreField) {
return true;
}
@Override
public String getSolrQuery(DataStoreField dataStoreField) {
StringBuilder query = new StringBuilder();
query.append("(*:* -(");
query.append(dataStoreField.getDataStoreCode());
query.append(":\"");
query.append(CriteriaUtils.toSolrStringValue(value, dataStoreField));
query.append("\"))");
return query.toString();
}
@Override
public int hashCode() {
return HashCodeBuilder.reflectionHashCode(this);
}
@Override
public boolean equals(Object obj) {
return EqualsBuilder.reflectionEquals(this, obj);
}
@Override
public String toString() {
return getClass().getSimpleName() + ":" + value;
}
}