using System; using IBatisNet.DataMapper.TypeHandlers; namespace IBatisNet.DataMapper.Test.Domain { /// /// OuiNonBoolTypeHandlerCallback. /// /// /// Used in account.xml on /// < result property="BannerOption" type="bool" dbType="Varchar" column="Account_Banner_Option" /> /// public class OuiNonBoolTypeHandlerCallback : ITypeHandlerCallback { private const string YES = "Oui"; private const string NO = "Non"; #region ITypeHandlerCallback members public object ValueOf(string nullValue) { if (YES.Equals(nullValue)) { return true; } else if (NO.Equals(nullValue)) { return false; } else { throw new Exception("Unexpected value " + nullValue + " found where "+YES+" or "+NO+" was expected."); } } public object GetResult(IResultGetter getter) { string s = getter.Value as string; if (YES.Equals(s)) { return true; } else if (NO.Equals(s)) { return false; } else { throw new Exception("Unexpected value " + s + " found where "+YES+" or "+NO+" was expected."); } } public void SetParameter(IParameterSetter setter, object parameter) { bool b = Convert.ToBoolean(parameter); if (b) { setter.Value = YES; } else { setter.Value = NO; } } #endregion } }