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 }