docs: func (cb ConditionBuilder) buildTree() (exprNode, error) {
  	childNodes, err := cb.buildChildNodes()
  	if err != nil {
  		return exprNode{}, err
  	}
  	ret := exprNode{
  		children: childNodes,
  	}
  
  	switch cb.mode {
  	case equalCond, notEqualCond, lessThanCond, lessThanEqualCond, greaterThanCond, greaterThanEqualCond:
  		return compareBuildCondition(cb.mode, ret)
  	case andCond, orCond:
  		return compoundBuildCondition(cb, ret)
  	case notCond:
  		return notBuildCondition(ret)
  	case betweenCond:
  		return betweenBuildCondition(ret)
  	case inCond:
  		return inBuildCondition(cb, ret)
  	case attrExistsCond:
  		return attrExistsBuildCondition(ret)
  	case attrNotExistsCond:
  		return attrNotExistsBuildCondition(ret)
  	case attrTypeCond:
  		return attrTypeBuildCondition(ret)
  	case beginsWithCond:
  		return beginsWithBuildCondition(ret)
  	case containsCond:
  		return containsBuildCondition(ret)
  	case unsetCond:
  		return exprNode{}, newUnsetParameterError("buildTree", "ConditionBuilder")
  	default:
  		return exprNode{}, fmt.Errorf("build condition error: unsupported mode: %v", cb.mode)
  	}
  }