/// <summary> /// creates an expression numeric operand /// </summary> /// <param name="text">text</param> /// <param name="cast">cast, None if doesnt apply</param> public NumberOperand(string text, DbColumnType cast) : base(text, cast) { if ((valueType = text.ToNumberType()) == null) { throw new ArgumentException($"Invalid number operand: {text}"); } if (cast != DbColumnType.None && !cast.IsNumeric()) { throw new ArgumentException($"Invalid numeric cast: {cast}"); } }
/// <summary> /// creates an expression column operand /// </summary> /// <param name="column">column</param> /// <param name="cast">cast, None if doesnt apply</param> public ColumnOperand(Column column, DbColumnType cast = DbColumnType.None) : base(column == null ? String.Empty : column.Identifier(), cast) { if ((Column = column) == null) { throw new ArgumentException($"Column operand null or empty"); } Type = Enum.Parse <DbColumnType>(Column.Meta.Type); if (cast != DbColumnType.None) { if ((Type.IsNumeric() && !cast.IsNumeric())) { throw new ArgumentException($"cast types: {Type} and {cast} doesnot match"); } } }