github.com/keysonZZZ/kmg@v0.0.0-20151121023212-05317bfd7d39/kmgSql/MysqlAst/AndWhereCondition.go (about) 1 package MysqlAst 2 3 func NewAndWhereCondition() *AndWhereCondition { 4 return &AndWhereCondition{} 5 } 6 7 type AndWhereCondition struct { 8 List []PreparedNode 9 } 10 11 func (n *AndWhereCondition) GetPrepareParameter() (string, []string) { 12 //TODO 去掉empty的节点? 13 return joinPrepareNode([]PreparedNode(n.List), ") AND (", "(", ")") 14 } 15 16 func (n *AndWhereCondition) 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 &AndWhereCondition{List: s} 22 } 23 func (n *AndWhereCondition) IsEmpty() bool { 24 return len(n.List) == 0 25 } 26 func (n *AndWhereCondition) AddAndCondition(node PreparedNode) *AndWhereCondition { 27 n.List = append(n.List, node) 28 return n 29 } 30 func (n *AndWhereCondition) AddPrepare(text string, parameterList ...string) *AndWhereCondition { 31 n.List = append(n.List, Prepare(text, parameterList...)) 32 return n 33 } 34 func (n *AndWhereCondition) AddNode(node PreparedNode) *AndWhereCondition { 35 n.List = append(n.List, node) 36 return n 37 }