@@ -2,22 +2,26 @@ package operator
22
33import (
44 "github.com/sidhant92/bool-parser-go/pkg/constant"
5+ "github.com/sidhant92/bool-parser-go/pkg/domain"
56 "reflect"
67)
78
89type ContainsAllOperator struct {
910}
1011
11- func (e * ContainsAllOperator ) Evaluate (containerDataType constant.ContainerDataType , dataType constant. DataType , validated bool , left interface {}, right ... interface {} ) (bool , error ) {
12- var leftArray []interface {}
13- rv := reflect .ValueOf (left )
12+ func (e * ContainsAllOperator ) Evaluate (containerDataType constant.ContainerDataType , leftOperand interface {}, leftOperandDataType constant. DataType , rightOperands []domain. EvaluatedNode ) (bool , error ) {
13+ var leftArray []domain. EvaluatedNode
14+ rv := reflect .ValueOf (leftOperand )
1415 if rv .Kind () == reflect .Slice {
1516 for i := 0 ; i < rv .Len (); i ++ {
16- leftArray = append (leftArray , rv .Index (i ).Interface ())
17+ leftArray = append (leftArray , domain.EvaluatedNode {
18+ Value : rv .Index (i ).Interface (),
19+ DataType : leftOperandDataType ,
20+ })
1721 }
1822 }
19- for _ , value := range right {
20- res , err := GetOperator (constant .IN ).Evaluate (constant .PRIMITIVE , dataType , validated , value , leftArray ... )
23+ for _ , rightOperand := range rightOperands {
24+ res , err := GetOperator (constant .IN ).Evaluate (constant .PRIMITIVE , rightOperand . Value , rightOperand . DataType , leftArray )
2125 if err != nil {
2226 return false , err
2327 }
0 commit comments