com.github.rutledgepaulv.qbuilders.delegates.virtual.EquitablePropertyDelegate Maven / Gradle / Ivy
package com.github.rutledgepaulv.qbuilders.delegates.virtual;
import com.github.rutledgepaulv.qbuilders.builders.QBuilder;
import com.github.rutledgepaulv.qbuilders.conditions.Condition;
import com.github.rutledgepaulv.qbuilders.operators.ComparisonOperator;
import com.github.rutledgepaulv.qbuilders.properties.virtual.EquitableProperty;
import com.github.rutledgepaulv.qbuilders.structures.FieldPath;
import java.util.Collections;
public abstract class EquitablePropertyDelegate, S>
extends ExistentialPropertyDelegate implements EquitableProperty {
protected EquitablePropertyDelegate(FieldPath field, T canonical) {
super(field, canonical);
}
public final Condition eq(S value) {
if(value == null) {
return condition(getField(), ComparisonOperator.EX, Collections.singleton(false));
}
return condition(getField(), ComparisonOperator.EQ, Collections.singletonList(value));
}
public final Condition ne(S value) {
if(value == null) {
return condition(getField(), ComparisonOperator.EX, Collections.singleton(true));
}
return condition(getField(), ComparisonOperator.NE, Collections.singletonList(value));
}
}