
com.anwen.mongo.conditions.update.UpdateChainWrapper Maven / Gradle / Ivy
package com.anwen.mongo.conditions.update;
import com.anwen.mongo.conditions.AbstractChainWrapper;
import com.anwen.mongo.conditions.interfaces.Update;
import com.anwen.mongo.conditions.interfaces.condition.CompareCondition;
import com.anwen.mongo.enums.CompareEnum;
import com.anwen.mongo.enums.LogicTypeEnum;
import com.anwen.mongo.support.SFunction;
import java.util.ArrayList;
import java.util.List;
/**
* update接口实现
* @author JiaChaoYang
* @date 2023/6/24/024 12:45
*/
public class UpdateChainWrapper> extends AbstractChainWrapper> implements Update,T> {
protected final Children typedThis = (Children) this;
private final List updateCompareList = new ArrayList<>();
public List getUpdateCompareList() {
return updateCompareList;
}
@Override
public Children set(boolean condition, SFunction column, Object value) {
return condition ? set(column,value) : typedThis;
}
@Override
public Children set(SFunction column, Object value) {
return getBaseUpdateCompare(column,value);
}
@Override
public Children set(boolean condition, String column, Object value) {
return condition ? set(column,value) : typedThis;
}
@Override
public Children set(String column, Object value) {
return getBaseUpdateCompare(column,value);
}
@Override
public Children push(boolean condition, SFunction column, Object value) {
return condition ? push(column,value) : typedThis;
}
@Override
public Children push(SFunction column, Object value) {
return getBaseUpdateCompare(column,value);
}
@Override
public Children push(boolean condition, String column, Object value) {
return condition ? push(column,value) : typedThis;
}
@Override
public Children push(String column, Object value) {
return getBaseUpdateCompare(column,value);
}
@Override
public Children push(boolean condition, SFunction column, Object... value) {
return condition ? push(column,value) : typedThis;
}
@Override
public Children push(SFunction column, Object... value) {
for (Object o : value) {
getBaseUpdateCompare(column,o);
}
return typedThis;
}
@Override
public Children push(boolean condition, String column, Object... value) {
return condition ? push(column,value) : typedThis;
}
@Override
public Children push(String column, Object... value) {
for (Object o : value) {
getBaseUpdateCompare(column,o);
}
return typedThis;
}
@Override
public Children push(boolean condition, SFunction column, List> value) {
return condition ? push(column,value) : typedThis;
}
@Override
public Children push(SFunction column, List> value) {
for (Object o : value) {
getBaseUpdateCompare(column,o);
}
return typedThis;
}
@Override
public Children push(boolean condition, String column, List> value) {
return condition ? push(column,value) : typedThis;
}
@Override
public Children push(String column, List> value) {
for (Object o : value) {
getBaseUpdateCompare(column,o);
}
return typedThis;
}
private Children getBaseUpdateCompare(SFunction column, Object value){
updateCompareList.add(CompareCondition.builder().condition(Thread.currentThread().getStackTrace()[2].getMethodName()).column(column.getFieldNameLine()).value(value).type(CompareEnum.UPDATE.getKey()).logicType(LogicTypeEnum.AND.getKey()).build());
return typedThis;
}
private Children getBaseUpdateCompare(String column, Object value){
updateCompareList.add(CompareCondition.builder().condition(Thread.currentThread().getStackTrace()[2].getMethodName()).column(column).value(value).type(CompareEnum.UPDATE.getKey()).logicType(LogicTypeEnum.AND.getKey()).build());
return typedThis;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy