/// <summary> /// Create a new instance of the <see cref="TemplatePlanForeach"/> class. /// </summary> /// <param name="iteratorVarName">The name of the variable to add to the context with each iteration.</param> /// <param name="listExpression">The list expression to loop over.</param> /// <param name="inner">The inner plan subject to this <see cref="TemplatePlanForeach"/>.</param> public TemplatePlanForeach(string iteratorVarName, string listExpression, TemplatePlan inner) { if (inner is null) { throw new ArgumentNullException(nameof(inner)); } if (string.IsNullOrWhiteSpace(iteratorVarName)) { throw new ArgumentException($"'{nameof(iteratorVarName)}' cannot be null or whitespace.", nameof(iteratorVarName)); } TemplexVariable.ValidateVariableName(iteratorVarName); if (string.IsNullOrWhiteSpace(listExpression)) { throw new ArgumentException($"'{nameof(listExpression)}' cannot be null or whitespace.", nameof(listExpression)); } Inner = inner; IteratorVariableName = iteratorVarName; ListExpression = listExpression; }
/// <summary> /// Create a new instance of the <see cref="TemplatePlanDefineQuery"/> class. /// </summary> /// <param name="varName">The name of the variable to add to the context.</param> /// <param name="queryInfo">The <see cref="QueryInfo"/> to assign to the variable.</param> /// <param name="inner">The inner plan subject to this <see cref="TemplatePlanDefineQuery"/>.</param> public TemplatePlanDefineQuery(string varName, QueryInfo queryInfo, TemplatePlan inner) { if (inner is null) { throw new ArgumentNullException(nameof(inner)); } if (string.IsNullOrWhiteSpace(varName)) { throw new ArgumentException($"'{nameof(varName)}' cannot be null or whitespace.", nameof(varName)); } if (queryInfo is null) { throw new ArgumentNullException(nameof(queryInfo)); } TemplexVariable.ValidateVariableName(varName); Inner = inner; VariableName = varName; QueryInfo = queryInfo; }
/// <summary> /// Create a new instance of the <see cref="TemplatePlanDefine"/> class. /// </summary> /// <param name="varName">The name of the variable to add to the context.</param> /// <param name="varExpression">The expression to assign to the variable.</param> /// <param name="inner">The inner plan subject to this <see cref="TemplatePlanDefine"/>.</param> public TemplatePlanDefine(string varName, string varExpression, TemplatePlan inner) { if (inner is null) { throw new ArgumentNullException(nameof(inner)); } if (string.IsNullOrWhiteSpace(varName)) { throw new ArgumentException($"'{nameof(varName)}' cannot be null or whitespace.", nameof(varName)); } TemplexVariable.ValidateVariableName(varName); if (string.IsNullOrWhiteSpace(varExpression)) { throw new ArgumentException($"'{nameof(varExpression)}' cannot be null or whitespace.", nameof(varExpression)); } Inner = inner; VariableName = varName; VariableExpression = varExpression; }
/// <summary> /// Validates the function names against all the rules which are /// currently the same rules as variable names. /// </summary> /// <param name="name">The name to validate</param> /// <returns>True if <paramref name="name"/> is a valid function name, False otherwise.</returns> public static bool IsValidFunctionName(string name) => TemplexVariable.IsValidVariableName(name); // Same rules apply