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  }