public override RuntimeValue Evaluate(IOtterContext context) #endif { if (string.IsNullOrEmpty(this.VariableName)) { return(false); } RuntimeValueType[] types; if (string.Equals(this.VariableType, "scalar", StringComparison.OrdinalIgnoreCase)) { types = new[] { RuntimeValueType.Scalar } } ; else if (string.Equals(this.VariableType, "vector", StringComparison.OrdinalIgnoreCase)) { types = new[] { RuntimeValueType.Vector } } ; else if (string.Equals(this.VariableType, "map", StringComparison.OrdinalIgnoreCase)) { types = new[] { RuntimeValueType.Map } } ; else { types = new[] { RuntimeValueType.Scalar, RuntimeValueType.Vector, RuntimeValueType.Map } }; var execContext = context as IOperationExecutionContext; if (execContext == null) { return(null); } foreach (var type in types) { var variableName = new RuntimeVariableName(this.VariableName, type); var value = execContext.TryGetVariableValue(variableName); if (value != null) { return(value.Value); } var functionValue = execContext.TryGetFunctionValue(variableName.ToString()); if (functionValue != null) { return(functionValue.Value); } } return(null); } }
protected override object EvaluateScalar(IOtterContext context) => (context as IOperationExecutionContext)?.WorkingDirectory;
protected sealed override object EvaluateScalar(IOtterContext context) => this.EvaluateScalar(context);
public override RuntimeValue Evaluate(IOtterContext context)
public override RuntimeValue Evaluate(IOtterContext context) #endif { return(this.List.ElementAt(this.Index)); }
protected sealed override IEnumerable EvaluateVector(IOtterContext context) => this.EvaluateVector(context);
public sealed override RuntimeValue Evaluate(IOtterContext context) => new RuntimeValue(this.EvaluateMap(context));
public override RuntimeValue Evaluate(IOtterContext context) #endif { return(this.Map[this.Key]); }
protected override object EvaluateScalar(IOtterContext context) { return(string.Empty); }