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

     1  package filter
     2  
     3  import "errors"
     4  
     5  // ValueExpr - Get Value implementation. Evaulates the value from filter data based on selector name
     6  type ValueExpr struct {
     7  	FilterType string
     8  	Name       string
     9  }
    10  
    11  func newValueExpr(filterType, name string) CallExpr {
    12  	return &ValueExpr{
    13  		FilterType: filterType,
    14  		Name:       name,
    15  	}
    16  }
    17  
    18  // GetType - Returns the CallType
    19  func (e *ValueExpr) GetType() CallType {
    20  	return GETVALUE
    21  }
    22  
    23  // Execute - Returns the value based on the selector name
    24  func (e *ValueExpr) Execute(data Data) (interface{}, error) {
    25  	val, ok := data.GetValue(e.FilterType, e.Name)
    26  	if !ok {
    27  		return nil, errors.New("Filter key " + e.FilterType + "." + e.Name + " not found in filter data")
    28  	}
    29  	return val, nil
    30  }
    31  
    32  func (e *ValueExpr) String() string {
    33  	return e.FilterType + "." + e.Name
    34  }