//--------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- namespace System.Data.Common.EntitySql.AST { using System; /// /// Represents an ast node for a query parameter. /// internal sealed class QueryParameter : Node { private readonly string _name; /// /// Initializes parameter /// /// /// Thrown if the parameter name does not conform to the expected format /// internal QueryParameter(string parameterName, string query, int inputPos) : base(query, inputPos) { _name = parameterName.Substring(1); // // valid parameter format is: @({LETTER})(_|{LETTER}|{DIGIT})* // if (_name.StartsWith("_", StringComparison.OrdinalIgnoreCase) || Char.IsDigit(_name, 0)) { throw EntityUtil.EntitySqlError(ErrCtx, System.Data.Entity.Strings.InvalidParameterFormat(_name)); } } /// /// Returns parameter parameterName (without @ sign). /// internal string Name { get { return _name; } } } }