From: Kevin W. <kev...@us...> - 2004-12-31 17:52:20
|
Update of /cvsroot/nhibernate/nhibernate/src/NHibernate/Expression In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22278 Modified Files: AndExpression.cs BetweenExpression.cs Conjunction.cs Log Message: fixing xml comments and letting ReSharper do reformatting Index: BetweenExpression.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/Expression/BetweenExpression.cs,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** BetweenExpression.cs 28 Mar 2004 06:05:09 -0000 1.5 --- BetweenExpression.cs 31 Dec 2004 17:52:10 -0000 1.6 *************** *** 1,23 **** - using System; - using System.Text; - using NHibernate.Engine; - using NHibernate.SqlCommand; using NHibernate.Persister; using NHibernate.Type; - using NHibernate.Util; ! namespace NHibernate.Expression { - /// <summary> /// An Expression that represents a "between" constraint. /// </summary> ! public class BetweenExpression : Expression { private readonly string propertyName; private readonly object lo; private readonly object hi; ! /// <summary> /// Initialize a new instance of the BetweenExpression class for --- 1,18 ---- using NHibernate.Engine; using NHibernate.Persister; + using NHibernate.SqlCommand; using NHibernate.Type; ! namespace NHibernate.Expression { /// <summary> /// An Expression that represents a "between" constraint. /// </summary> ! public class BetweenExpression : Expression { private readonly string propertyName; private readonly object lo; private readonly object hi; ! /// <summary> /// Initialize a new instance of the BetweenExpression class for *************** *** 27,31 **** /// <param name="lo">The low value for the BetweenExpression.</param> /// <param name="hi">The high value for the BetweenExpression.</param> ! internal BetweenExpression(string propertyName, object lo, object hi) { this.propertyName = propertyName; --- 22,26 ---- /// <param name="lo">The low value for the BetweenExpression.</param> /// <param name="hi">The high value for the BetweenExpression.</param> ! internal BetweenExpression( string propertyName, object lo, object hi ) { this.propertyName = propertyName; *************** *** 34,90 **** } ! public override SqlString ToSqlString(ISessionFactoryImplementor factory, System.Type persistentClass, string alias) { //TODO: add a default capacity SqlStringBuilder sqlBuilder = new SqlStringBuilder(); ! IType propertyType = ((IQueryable)factory.GetPersister(persistentClass)).GetPropertyType(propertyName); ! string[] columnNames = GetColumns(factory, persistentClass, propertyName, alias); ! string[] paramColumnNames = GetColumns(factory, persistentClass, propertyName , null); ! string[] loParamColumnNames = new string[paramColumnNames.Length]; ! string[] hiParamColumnNames = new string[paramColumnNames.Length]; // we need to create a _lo and _hi parameter for each column. The columnNames // doesn't return a seperate column for the _lo and _hi so we need to... ! for(int i = 0; i < paramColumnNames.Length; i++) { ! loParamColumnNames[i] = paramColumnNames[i] + "_lo"; ! hiParamColumnNames[i] = paramColumnNames[i] + "_hi"; } ! Parameter[] parameters = new Parameter[paramColumnNames.Length * 2]; ! Parameter[] loParameters = Parameter.GenerateParameters(factory, alias, loParamColumnNames, propertyType); ! Parameter[] hiParameters = Parameter.GenerateParameters(factory, alias, hiParamColumnNames, propertyType); ! ! bool andNeeded = false; ! ! for(int i = 0; i < columnNames.Length; i++) { ! if(andNeeded) sqlBuilder.Add(" AND "); andNeeded = true; ! sqlBuilder.Add(columnNames[i]) ! .Add(" between ") ! .Add(loParameters[i]) ! .Add(" and ") ! .Add(hiParameters[i]); } return sqlBuilder.ToSqlString(); } ! ! public override TypedValue[] GetTypedValues(ISessionFactoryImplementor sessionFactory, System.Type persistentClass) { ! return new TypedValue[] { ! GetTypedValue(sessionFactory, persistentClass, propertyName, lo), ! GetTypedValue(sessionFactory, persistentClass, propertyName, hi) }; } ! public override string ToString() { return propertyName + " between " + lo + " and " + hi; ! } } ! } --- 29,103 ---- } ! /// <summary> ! /// ! /// </summary> ! /// <param name="factory"></param> ! /// <param name="persistentClass"></param> ! /// <param name="alias"></param> ! /// <returns></returns> ! public override SqlString ToSqlString( ISessionFactoryImplementor factory, System.Type persistentClass, string alias ) { //TODO: add a default capacity SqlStringBuilder sqlBuilder = new SqlStringBuilder(); ! IType propertyType = ( ( IQueryable ) factory.GetPersister( persistentClass ) ).GetPropertyType( propertyName ); ! string[ ] columnNames = GetColumns( factory, persistentClass, propertyName, alias ); ! string[ ] paramColumnNames = GetColumns( factory, persistentClass, propertyName, null ); ! string[ ] loParamColumnNames = new string[paramColumnNames.Length]; ! string[ ] hiParamColumnNames = new string[paramColumnNames.Length]; // we need to create a _lo and _hi parameter for each column. The columnNames // doesn't return a seperate column for the _lo and _hi so we need to... ! for( int i = 0; i < paramColumnNames.Length; i++ ) { ! loParamColumnNames[ i ] = paramColumnNames[ i ] + "_lo"; ! hiParamColumnNames[ i ] = paramColumnNames[ i ] + "_hi"; } ! Parameter[ ] parameters = new Parameter[paramColumnNames.Length*2]; ! Parameter[ ] loParameters = Parameter.GenerateParameters( factory, alias, loParamColumnNames, propertyType ); ! Parameter[ ] hiParameters = Parameter.GenerateParameters( factory, alias, hiParamColumnNames, propertyType ); ! ! bool andNeeded = false; ! ! for( int i = 0; i < columnNames.Length; i++ ) { ! if( andNeeded ) ! { ! sqlBuilder.Add( " AND " ); ! } andNeeded = true; ! sqlBuilder.Add( columnNames[ i ] ) ! .Add( " between " ) ! .Add( loParameters[ i ] ) ! .Add( " and " ) ! .Add( hiParameters[ i ] ); } return sqlBuilder.ToSqlString(); } ! ! /// <summary> ! /// ! /// </summary> ! /// <param name="sessionFactory"></param> ! /// <param name="persistentClass"></param> ! /// <returns></returns> ! public override TypedValue[ ] GetTypedValues( ISessionFactoryImplementor sessionFactory, System.Type persistentClass ) { ! return new TypedValue[ ] ! { ! GetTypedValue( sessionFactory, persistentClass, propertyName, lo ), ! GetTypedValue( sessionFactory, persistentClass, propertyName, hi ) }; } ! /// <summary></summary> ! public override string ToString() { return propertyName + " between " + lo + " and " + hi; ! } } ! } \ No newline at end of file Index: AndExpression.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/Expression/AndExpression.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** AndExpression.cs 28 Mar 2004 06:05:09 -0000 1.3 --- AndExpression.cs 31 Dec 2004 17:52:10 -0000 1.4 *************** *** 1,14 **** ! using System; ! ! namespace NHibernate.Expression { ! /// <summary> /// An Expression that combines two <see cref="Expression"/>s with an /// <c>and</c> between them. /// </summary> ! public class AndExpression : LogicalExpression { ! ! internal AndExpression(Expression lhs, Expression rhs) : base (lhs,rhs) { } --- 1,16 ---- ! namespace NHibernate.Expression ! { /// <summary> /// An Expression that combines two <see cref="Expression"/>s with an /// <c>and</c> between them. /// </summary> ! public class AndExpression : LogicalExpression { ! /// <summary> ! /// ! /// </summary> ! /// <param name="lhs"></param> ! /// <param name="rhs"></param> ! internal AndExpression( Expression lhs, Expression rhs ) : base( lhs, rhs ) { } *************** *** 18,22 **** /// </summary> /// <value>Returns "<c>and</c>"</value> ! protected override string Op { get { return "and"; } --- 20,24 ---- /// </summary> /// <value>Returns "<c>and</c>"</value> ! protected override string Op { get { return "and"; } Index: Conjunction.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/Expression/Conjunction.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Conjunction.cs 28 Mar 2004 06:05:09 -0000 1.3 --- Conjunction.cs 31 Dec 2004 17:52:10 -0000 1.4 *************** *** 1,4 **** - using System; - namespace NHibernate.Expression { --- 1,2 ---- *************** *** 8,15 **** public class Conjunction : Junction { ! protected override string Op { get { return " and "; } } } ! } --- 6,14 ---- public class Conjunction : Junction { ! /// <summary></summary> ! protected override string Op { get { return " and "; } } } ! } \ No newline at end of file |