public override void Accept(ICommandContext ctx) { Object value = ctx.GetArg(_names[0]); Type type = (value != null ? value.GetType() : null); InternalValueAndType valueAndType = new InternalValueAndType(); valueAndType.TargetValue = value; valueAndType.TargetType = type; SetupValueAndType(valueAndType); if (_blockNullParameter && valueAndType.TargetValue == null) { ThrowBindOrEmbeddedParameterNullValueException(valueAndType); } if (!IsInScope()) { // Main Root // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // [UnderReview]: Should I make an original exception instead of this exception? // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // if (valueAndType.TargetValue != null && valueAndType.TargetValue.ToString().IndexOf("?") > -1) { // throw new org.seasar.framework.exception.SRuntimeException("EDAO0023"); // } ctx.AddSql(valueAndType.TargetValue.ToString()); } else { if (IsInScope() && typeof(System.Collections.IList).IsAssignableFrom(valueAndType.TargetType)) { System.Collections.IList list = valueAndType.TargetValue as System.Collections.IList; Array array = new Object[list.Count]; list.CopyTo(array, 0); EmbedArray(ctx, array); } else if (IsInScope() && valueAndType.TargetType.IsArray) { EmbedArray(ctx, valueAndType.TargetValue); } else { // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // [UnderReview]: Should I make an original exception instead of this exception? // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // if (valueAndType.TargetValue != null && valueAndType.TargetValue.ToString().IndexOf("?") > -1) { // throw new org.seasar.framework.exception.SRuntimeException("EDAO0023"); // } ctx.AddSql(valueAndType.TargetValue.ToString()); } } if (valueAndType.IsValidRearOption()) { ctx.AddSql(valueAndType.BuildRearOptionOnSql()); } }
public override void Accept(ICommandContext ctx) { object value = ctx.GetArg(_names[0]); Type type = (value != null ? value.GetType() : null); InternalValueAndType valueAndType = new InternalValueAndType(); valueAndType.TargetValue = value; valueAndType.TargetType = type; SetupValueAndType(valueAndType); if (_blockNullParameter && valueAndType.TargetValue == null) { ThrowBindOrEmbeddedParameterNullValueException(valueAndType); } if (!IsInScope()) { // Main Root ctx.AddSql(valueAndType.TargetValue, valueAndType.TargetType, _expression.Replace('.', '_')); } else { if (typeof(System.Collections.IList).IsAssignableFrom(valueAndType.TargetType)) { System.Collections.IList list = valueAndType.TargetValue as System.Collections.IList; Array array = new Object[list.Count]; list.CopyTo(array, 0); BindArray(ctx, array); } else if (valueAndType.TargetType.IsArray) { BindArray(ctx, valueAndType.TargetValue); } else { ctx.AddSql(valueAndType.TargetValue, valueAndType.TargetType, _expression.Replace('.', '_')); } } if (valueAndType.IsValidRearOption()) { ctx.AddSql(valueAndType.BuildRearOptionOnSql()); } }