github.com/Axway/agent-sdk@v1.1.101/pkg/filter/compareableval.go (about)

     1  package filter
     2  
     3  // ComparableValue - Interface for RHS value operand
     4  type ComparableValue interface {
     5  	eq(interface{}) bool
     6  	neq(interface{}) bool
     7  	any(interface{}) bool
     8  	String() string
     9  }
    10  
    11  // StringRHSValue - Represents the RHS value in simple condition
    12  type StringRHSValue struct {
    13  	value string
    14  }
    15  
    16  func newStringRHSValue(value string) ComparableValue {
    17  	return &StringRHSValue{
    18  		value: value,
    19  	}
    20  }
    21  
    22  func (scv *StringRHSValue) eq(valueToCompare interface{}) bool {
    23  	return valueToCompare == scv.value
    24  }
    25  
    26  func (scv *StringRHSValue) neq(valueToCompare interface{}) bool {
    27  	return valueToCompare != scv.value
    28  }
    29  
    30  func (scv *StringRHSValue) any(valuesToCompare interface{}) bool {
    31  	values := valuesToCompare.([]string)
    32  	for _, valueEntry := range values {
    33  		if scv.eq(valueEntry) {
    34  			return true
    35  		}
    36  	}
    37  	return false
    38  }
    39  
    40  func (scv *StringRHSValue) String() string {
    41  	return scv.value
    42  }