
com.anwen.mongo.conditions.AbstractChainWrapper Maven / Gradle / Ivy
package com.anwen.mongo.conditions;
import com.anwen.mongo.conditions.interfaces.Compare;
import com.anwen.mongo.conditions.interfaces.aggregate.pipeline.Projection;
import com.anwen.mongo.conditions.interfaces.condition.CompareCondition;
import com.anwen.mongo.conditions.interfaces.condition.Order;
import com.anwen.mongo.conditions.query.QueryChainWrapper;
import com.anwen.mongo.constant.SqlOperationConstant;
import com.anwen.mongo.enums.*;
import com.anwen.mongo.support.SFunction;
import com.mongodb.BasicDBObject;
import org.bson.conversions.Bson;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
/**
* 查询条件
* @author JiaChaoYang
* @date 2023/6/24/024 0:49
*/
public abstract class AbstractChainWrapper> implements Compare {
protected final Children typedThis = (Children) this;
/**
* 构建条件对象
* @since 2023/2/10 12:00
*/
private final List compareList = new ArrayList<>();
/**
* 构建排序对象
* @since 2023/2/10 12:00
*/
List orderList = new ArrayList<>();
/**
* 构建显示字段
* @author JiaChaoYang
* @date 2023/7/30 20:34
*/
List projectionList = new ArrayList<>();
/**
* 自定义条件语句
* @author JiaChaoYang
* @date 2023/8/20 19:40
*/
List basicDBObjectList = new ArrayList<>();
public Children getTypedThis() {
return typedThis;
}
public List getCompareList() {
return compareList;
}
public List getOrderList() {
return orderList;
}
public List getProjectionList() {
return projectionList;
}
public List getBasicDBObjectList() {
return basicDBObjectList;
}
@Override
public Children eq(boolean condition, SFunction column, Object value) {
return condition ? eq(column,value) : typedThis;
}
@Override
public Children eq(SFunction column, Object value) {
return getBaseCondition(column,value);
}
@Override
public Children eq(boolean condition, String column, Object value) {
return condition ? eq(column,value) : typedThis;
}
@Override
public Children eq(String column, Object value) {
return getBaseCondition(column,value);
}
@Override
public Children ne(boolean condition, SFunction column, Object value) {
return condition ? ne(column,value) : typedThis;
}
@Override
public Children ne(SFunction column, Object value) {
return getBaseCondition(column,value);
}
@Override
public Children ne(boolean condition, String column, Object value) {
return condition ? ne(column,value) : typedThis;
}
@Override
public Children ne(String column, Object value) {
return getBaseCondition(column,value);
}
@Override
public Children lt(boolean condition, SFunction column, Object value) {
return condition ? lt(column,value) : typedThis;
}
@Override
public Children lt(SFunction column, Object value) {
return getBaseCondition(column,value);
}
@Override
public Children lt(boolean condition, String column, Object value) {
return condition ? lt(column,value) : typedThis;
}
@Override
public Children lt(String column, Object value) {
return getBaseCondition(column,value);
}
@Override
public Children lte(boolean condition, SFunction column, Object value) {
return condition ? lte(column,value) : typedThis;
}
@Override
public Children lte(SFunction column, Object value) {
return getBaseCondition(column,value);
}
@Override
public Children lte(boolean condition, String column, Object value) {
return condition ? lt(column,value) : typedThis;
}
@Override
public Children lte(String column, Object value) {
return getBaseCondition(column,value);
}
@Override
public Children gt(boolean condition, SFunction column, Object value) {
return condition ? gt(column,value) : typedThis;
}
@Override
public Children gt(SFunction column, Object value) {
return getBaseCondition(column,value);
}
@Override
public Children gt(boolean condition, String column, Object value) {
return condition ? gt(column,value) : typedThis;
}
@Override
public Children gt(String column, Object value) {
return getBaseCondition(column,value);
}
@Override
public Children gte(boolean condition, SFunction column, Object value) {
return condition ? gte(column,value) : typedThis;
}
@Override
public Children gte(SFunction column, Object value) {
return getBaseCondition(column,value);
}
@Override
public Children gte(boolean condition, String column, Object value) {
return condition ? gte(column,value) : typedThis;
}
@Override
public Children gte(String column, Object value) {
return getBaseCondition(column,value);
}
@Override
public Children like(boolean condition, SFunction column, Object value) {
return condition ? like(column,value) : typedThis;
}
@Override
public Children like(SFunction column, Object value) {
return getBaseCondition(column,value);
}
@Override
public Children like(boolean condition, String column, Object value) {
return condition ? like(column,value) : typedThis;
}
@Override
public Children like(String column, Object value) {
return getBaseCondition(column,value);
}
@Override
public Children likeLeft(boolean condition, SFunction column, Object value) {
return condition ? likeLeft(column,value) : typedThis;
}
@Override
public Children likeLeft(SFunction column, Object value) {
return like(column,"^"+value);
}
@Override
public Children likeLeft(boolean condition, String column, Object value) {
return condition ? likeLeft(column,value) : typedThis;
}
@Override
public Children likeLeft(String column, Object value) {
return like(column,"^"+value);
}
@Override
public Children likeRight(boolean condition, SFunction column, Object value) {
return condition ? likeRight(column,value) : typedThis;
}
@Override
public Children likeRight(SFunction column, Object value) {
return like(column,value+"$");
}
@Override
public Children likeRight(boolean condition, String column, Object value) {
return condition ? likeRight(column,value) : typedThis;
}
@Override
public Children likeRight(String column, Object value) {
return like(column,value+"$");
}
@Override
public Children in(boolean condition, SFunction column, Collection> valueList) {
return condition ? in(column,valueList) : typedThis;
}
@Override
public Children in(SFunction column, Collection> valueList) {
return getBaseCondition(column,valueList);
}
@Override
public Children in(boolean condition, String column, Collection> valueList) {
return condition ? in(column,valueList) : typedThis;
}
@Override
public Children in(String column, Collection> valueList) {
return getBaseCondition(column,valueList);
}
@Override
public Children nin(boolean condition, SFunction column, Collection> valueList) {
return condition ? nin(column,valueList) : typedThis;
}
@Override
public Children nin(SFunction column, Collection> valueList) {
return getBaseCondition(column,valueList);
}
@Override
public Children nin(boolean condition, String column, Collection> valueList) {
return condition ? nin(column,valueList) : typedThis;
}
@Override
public Children nin(String column, Collection> valueList) {
return getBaseCondition(column,valueList);
}
@Override
public Children and(boolean condition, QueryChainWrapper,?> queryChainWrapper) {
return condition ? and(queryChainWrapper) : typedThis;
}
@Override
public Children and(QueryChainWrapper,?> queryChainWrapper) {
return getBaseAndCondition(queryChainWrapper.getCompareList());
}
@Override
public Children or(boolean condition, QueryChainWrapper,?> queryChainWrapper) {
return condition ? or(queryChainWrapper) : typedThis;
}
@Override
public Children or(QueryChainWrapper,?> queryChainWrapper) {
return getBaseOrCondition(queryChainWrapper.getCompareList());
}
@Override
public Children or(boolean condition, SFunction column, Object value) {
return condition ? or(column,value) : typedThis;
}
@Override
public Children or(SFunction column, Object value) {
return getChildBaseCondition(column,value, LogicTypeEnum.OR.getKey());
}
@Override
public Children or(boolean condition, String column, Object value) {
return condition ? or(column,value) : typedThis;
}
@Override
public Children or(String column, Object value) {
return getChildBaseCondition(column,value,LogicTypeEnum.OR.getKey());
}
@Override
public Children nor(boolean condition, QueryChainWrapper,?> queryChainWrapper) {
return condition ? nor(queryChainWrapper) : typedThis;
}
@Override
public Children nor(QueryChainWrapper,?> queryChainWrapper) {
return getBaseOrCondition(queryChainWrapper.getCompareList());
}
@Override
public Children nor(boolean condition, SFunction column, Object value) {
return condition ? nor(column,value) : typedThis;
}
@Override
public Children nor(SFunction column, Object value) {
return getChildBaseCondition(column,value, LogicTypeEnum.NOR.getKey());
}
@Override
public Children nor(boolean condition, String column, Object value) {
return condition ? nor(column,value) : typedThis;
}
@Override
public Children nor(String column, Object value) {
return getChildBaseCondition(column,value,LogicTypeEnum.NOR.getKey());
}
@Override
public Children type(SFunction column, TypeEnum value) {
return getBaseCondition(column,value.getTypeCode());
}
@Override
public Children type(String column, TypeEnum value) {
return getBaseCondition(column,value.getTypeCode());
}
@Override
public Children type(SFunction column, String value) {
return getBaseCondition(column,value);
}
@Override
public Children type(String column, String value) {
return getBaseCondition(column,value);
}
@Override
public Children type(SFunction column, Integer value) {
return getBaseCondition(column,value);
}
@Override
public Children type(String column, Integer value) {
return getBaseCondition(column,value);
}
@Override
public Children exists(boolean condition, SFunction column, Boolean value) {
return condition ? exists(column,value) : typedThis;
}
@Override
public Children exists(SFunction column, Boolean value) {
return getBaseCondition(column,value);
}
@Override
public Children exists(boolean condition, String column, Boolean value) {
return condition ? exists(column,value) : typedThis;
}
@Override
public Children exists(String column, Boolean value) {
return getBaseCondition(column,value);
}
@Override
public Children not(CompareCondition compareCondition) {
compareList.add(compareCondition);
return typedThis;
}
@Override
public Children not(boolean condition, CompareCondition compareCondition) {
return condition ? not(compareCondition) : typedThis;
}
@Override
public Children expr(boolean condition, CompareCondition compareCondition) {
return condition ? expr(compareCondition) : typedThis;
}
@Override
public Children expr(CompareCondition compareCondition) {
compareList.add(compareCondition);
return typedThis;
}
@Override
public Children mod(boolean condition, SFunction column, long divide, long remain) {
return condition ? mod(column,divide,remain) : typedThis;
}
@Override
public Children mod(SFunction column, long divide, long remain) {
return mod(column, Arrays.asList(divide,remain));
}
@Override
public Children mod(boolean condition, SFunction column, Collection value) {
return condition ? mod(column,value) : typedThis;
}
@Override
public Children mod(SFunction column, Collection value) {
return getBaseCondition(column,value);
}
@Override
public Children mod(boolean condition, String column, long divide, long remain) {
return condition ? mod(column,divide,remain) : typedThis;
}
@Override
public Children mod(String column, long divide, long remain) {
return mod(column,Arrays.asList(divide,remain));
}
@Override
public Children mod(boolean condition, String column, Collection value) {
return condition ? mod(column,value) : typedThis;
}
@Override
public Children mod(String column, Collection value) {
return getBaseCondition(column,value);
}
@Override
public Children elemMatch(boolean condition, SFunction column, QueryChainWrapper, ?> queryChainWrapper) {
return condition ? elemMatch(column,queryChainWrapper) : typedThis;
}
@Override
public Children elemMatch(SFunction column, QueryChainWrapper,?> queryChainWrapper) {
return getChildBaseCondition(column,queryChainWrapper.getCompareList(),LogicTypeEnum.ELEMMATCH.getKey());
}
@Override
public Children elemMatch(boolean condition, String column, QueryChainWrapper,?> queryChainWrapper) {
return condition ? elemMatch(column,queryChainWrapper) : typedThis;
}
@Override
public Children elemMatch(String column, QueryChainWrapper,?> queryChainWrapper) {
return getChildBaseCondition(column,queryChainWrapper.getCompareList(),LogicTypeEnum.ELEMMATCH.getKey());
}
@Override
public Children all(boolean condition, SFunction column, Collection
© 2015 - 2025 Weber Informatics LLC | Privacy Policy