public JmesPathFunctionExpression(IFunctionRepository repository, string name, params JmesPathExpression[] expressions) { if (!repository.Contains(name)) { throw new Exception($"Error: unknown-function, no function named {name} has been registered."); } function_ = repository[name]; var variadic = function_.Variadic; var expected = function_.MinArgumentCount; var actual = expressions?.Length; if (actual < expected || (!variadic && actual > expected)) { var more = variadic ? "or more " : ""; var only = variadic ? "only " : ""; var report = actual == 0 ? "none" : $"{only}{actual}"; var plural = expected > 1 ? "s" : ""; throw new Exception($"Error: invalid-arity, the function {name} expects {expected} argument{plural} {more}but {report} were supplied."); } name_ = name; expressions_ = expressions; }
public bool Contains(string id) { return(_functionRepository.Contains(x => x.Id == id)); }