github.com/keysonZZZ/kmg@v0.0.0-20151121023212-05317bfd7d39/kmgSql/MysqlAst/OrWhereCondition.go (about)

     1  package MysqlAst
     2  
     3  func NewOrWhereCondition() *OrWhereCondition {
     4  	return &OrWhereCondition{}
     5  }
     6  
     7  type OrWhereCondition struct {
     8  	List []PreparedNode
     9  }
    10  
    11  func (n *OrWhereCondition) GetPrepareParameter() (string, []string) {
    12  	//TODO 去掉empty的节点?
    13  	return joinPrepareNode([]PreparedNode(n.List), ") OR (", "(", ")")
    14  }
    15  
    16  func (n *OrWhereCondition) Copy() PreparedNode {
    17  	s := make([]PreparedNode, len(n.List))
    18  	for i := range n.List {
    19  		s[i] = n.List[i].Copy()
    20  	}
    21  	return &OrWhereCondition{List: s}
    22  }
    23  func (n *OrWhereCondition) IsEmpty() bool {
    24  	return len(n.List) == 0
    25  }
    26  func (n *OrWhereCondition) AddAndCondition(node PreparedNode) *AndWhereCondition {
    27  	return NewAndWhereCondition().AddNode(n).AddNode(node)
    28  }
    29  func (n *OrWhereCondition) AddPrepare(text string, parameterList ...string) *OrWhereCondition {
    30  	n.List = append(n.List, Prepare(text, parameterList...))
    31  	return n
    32  }
    33  func (n *OrWhereCondition) AddCondition(node PreparedNode) *OrWhereCondition {
    34  	n.List = append(n.List, node)
    35  	return n
    36  }