|
From: <fab...@us...> - 2009-05-01 14:55:38
|
Revision: 4222
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4222&view=rev
Author: fabiomaulo
Date: 2009-05-01 14:55:28 +0000 (Fri, 01 May 2009)
Log Message:
-----------
Refactoring:
- Moved Parameters classes to NH namespace (as in Hb)
- Removed TODO.cs (the last method was moved in StringHelper)
- Moved NullableDictionary to default util (it need some investigation about its real usage)
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Exec/BasicExecutor.cs
trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.cs
trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Loader/QueryLoader.cs
trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/QueryTranslatorImpl.cs
trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/SessionFactoryHelperExtensions.cs
trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/SqlGenerator.cs
trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/BinaryLogicOperatorNode.cs
trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/FromClause.cs
trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/FromElement.cs
trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/FromElementType.cs
trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/IParameterContainer.cs
trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/IndexNode.cs
trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/ParameterNode.cs
trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/SqlFragment.cs
trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Util/JoinProcessor.cs
trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Util/SyntheticAndFactory.cs
trunk/nhibernate/src/NHibernate/NHibernate.csproj
trunk/nhibernate/src/NHibernate/Param/AbstractExplicitParameterSpecification.cs
trunk/nhibernate/src/NHibernate/Param/AggregatedIndexCollectionSelectorParameterSpecifications.cs
trunk/nhibernate/src/NHibernate/Param/CollectionFilterKeyParameterSpecification.cs
trunk/nhibernate/src/NHibernate/Param/DynamicFilterParameterSpecification.cs
trunk/nhibernate/src/NHibernate/Param/IParameterSpecification.cs
trunk/nhibernate/src/NHibernate/Param/NamedParameterSpecification.cs
trunk/nhibernate/src/NHibernate/Param/ParameterTranslationsImpl.cs
trunk/nhibernate/src/NHibernate/Param/PositionalParameterSpecification.cs
trunk/nhibernate/src/NHibernate/Util/StringHelper.cs
Added Paths:
-----------
trunk/nhibernate/src/NHibernate/Param/
trunk/nhibernate/src/NHibernate/Param/IExplicitParameterSpecification.cs
trunk/nhibernate/src/NHibernate/Util/NullableDictionary.cs
Removed Paths:
-------------
trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Parameters/
trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/TODO.cs
trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Util/NullableDictionary.cs
trunk/nhibernate/src/NHibernate/Param/ExplicitParameterSpecification.cs
Modified: trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Exec/BasicExecutor.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Exec/BasicExecutor.cs 2009-05-01 14:09:04 UTC (rev 4221)
+++ trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Exec/BasicExecutor.cs 2009-05-01 14:55:28 UTC (rev 4222)
@@ -6,7 +6,7 @@
using log4net;
using NHibernate.Engine;
using NHibernate.Exceptions;
-using NHibernate.Hql.Ast.ANTLR.Parameters;
+using NHibernate.Param;
using NHibernate.Persister.Entity;
using NHibernate.SqlCommand;
Modified: trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.cs 2009-05-01 14:09:04 UTC (rev 4221)
+++ trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.cs 2009-05-01 14:55:28 UTC (rev 4222)
@@ -1,16 +1,17 @@
-using System;
+using System;
using System.Collections.Generic;
using Antlr.Runtime.Tree;
using Iesi.Collections.Generic;
using log4net;
using NHibernate.Engine;
-using NHibernate.Hql.Ast.ANTLR.Parameters;
using NHibernate.Hql.Ast.ANTLR.Tree;
using NHibernate.Hql.Ast.ANTLR.Util;
+using NHibernate.Param;
using NHibernate.Persister.Collection;
using NHibernate.Persister.Entity;
using NHibernate.SqlCommand;
using NHibernate.Type;
+using NHibernate.Util;
namespace NHibernate.Hql.Ast.ANTLR
{
Modified: trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Loader/QueryLoader.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Loader/QueryLoader.cs 2009-05-01 14:09:04 UTC (rev 4221)
+++ trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Loader/QueryLoader.cs 2009-05-01 14:55:28 UTC (rev 4222)
@@ -1,14 +1,13 @@
-using System;
+using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using NHibernate.Engine;
-using NHibernate.Hql.Ast.ANTLR.Parameters;
using NHibernate.Hql.Ast.ANTLR.Tree;
-using NHibernate.Hql.Ast.ANTLR.Util;
using NHibernate.Impl;
using NHibernate.Loader;
+using NHibernate.Param;
using NHibernate.Persister.Collection;
using NHibernate.Persister.Entity;
using NHibernate.SqlCommand;
Modified: trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/QueryTranslatorImpl.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/QueryTranslatorImpl.cs 2009-05-01 14:09:04 UTC (rev 4221)
+++ trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/QueryTranslatorImpl.cs 2009-05-01 14:55:28 UTC (rev 4222)
@@ -8,9 +8,9 @@
using NHibernate.Engine;
using NHibernate.Hql.Ast.ANTLR.Exec;
using NHibernate.Hql.Ast.ANTLR.Loader;
-using NHibernate.Hql.Ast.ANTLR.Parameters;
using NHibernate.Hql.Ast.ANTLR.Tree;
using NHibernate.Hql.Ast.ANTLR.Util;
+using NHibernate.Param;
using NHibernate.Persister.Entity;
using NHibernate.SqlCommand;
using NHibernate.Type;
Modified: trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/SessionFactoryHelperExtensions.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/SessionFactoryHelperExtensions.cs 2009-05-01 14:09:04 UTC (rev 4221)
+++ trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/SessionFactoryHelperExtensions.cs 2009-05-01 14:55:28 UTC (rev 4222)
@@ -1,9 +1,8 @@
-using System;
+using System;
using System.Collections.Generic;
using NHibernate.Dialect.Function;
using NHibernate.Engine;
using NHibernate.Hql.Ast.ANTLR.Tree;
-using NHibernate.Hql.Ast.ANTLR.Util;
using NHibernate.Hql.Util;
using NHibernate.Persister.Collection;
using NHibernate.Persister.Entity;
Modified: trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/SqlGenerator.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/SqlGenerator.cs 2009-05-01 14:09:04 UTC (rev 4221)
+++ trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/SqlGenerator.cs 2009-05-01 14:55:28 UTC (rev 4222)
@@ -1,12 +1,12 @@
-using System;
+using System;
using System.Collections;
using System.Collections.Generic;
using Antlr.Runtime;
using Antlr.Runtime.Tree;
using NHibernate.Dialect.Function;
using NHibernate.Engine;
-using NHibernate.Hql.Ast.ANTLR.Parameters;
using NHibernate.Hql.Ast.ANTLR.Tree;
+using NHibernate.Param;
using NHibernate.SqlCommand;
namespace NHibernate.Hql.Ast.ANTLR
Deleted: trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/TODO.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/TODO.cs 2009-05-01 14:09:04 UTC (rev 4221)
+++ trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/TODO.cs 2009-05-01 14:55:28 UTC (rev 4222)
@@ -1,19 +0,0 @@
-using System;
-
-namespace NHibernate.Hql.Ast.ANTLR
-{
- public class LoadQueryInfluencers
- {
- public static string[] ParseFilterParameterName(string filterParameterName)
- {
- int dot = filterParameterName.IndexOf(".");
- if (dot <= 0)
- {
- throw new ArgumentException("Invalid filter-parameter name format", "filterParameterName");
- }
- string filterName = filterParameterName.Substring(0, dot);
- string parameterName = filterParameterName.Substring(dot + 1);
- return new[] { filterName, parameterName };
- }
- }
-}
Modified: trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/BinaryLogicOperatorNode.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/BinaryLogicOperatorNode.cs 2009-05-01 14:09:04 UTC (rev 4221)
+++ trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/BinaryLogicOperatorNode.cs 2009-05-01 14:55:28 UTC (rev 4222)
@@ -1,7 +1,7 @@
-using System;
+using System;
using Antlr.Runtime;
using NHibernate.Engine;
-using NHibernate.Hql.Ast.ANTLR.Parameters;
+using NHibernate.Param;
using NHibernate.Type;
using NHibernate.Util;
Modified: trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/FromClause.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/FromClause.cs 2009-05-01 14:09:04 UTC (rev 4221)
+++ trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/FromClause.cs 2009-05-01 14:55:28 UTC (rev 4222)
@@ -1,9 +1,10 @@
-using System;
+using System;
using System.Collections.Generic;
using Antlr.Runtime;
using Iesi.Collections.Generic;
using log4net;
using NHibernate.Hql.Ast.ANTLR.Util;
+using NHibernate.Util;
namespace NHibernate.Hql.Ast.ANTLR.Tree
{
Modified: trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/FromElement.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/FromElement.cs 2009-05-01 14:09:04 UTC (rev 4221)
+++ trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/FromElement.cs 2009-05-01 14:55:28 UTC (rev 4222)
@@ -1,10 +1,10 @@
-using System;
+using System;
using System.Collections.Generic;
using System.Text;
using Antlr.Runtime;
using log4net;
-using NHibernate.Hql.Ast.ANTLR.Parameters;
using NHibernate.Hql.Ast.ANTLR.Util;
+using NHibernate.Param;
using NHibernate.Persister.Collection;
using NHibernate.Persister.Entity;
using NHibernate.Type;
Modified: trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/FromElementType.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/FromElementType.cs 2009-05-01 14:09:04 UTC (rev 4221)
+++ trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/FromElementType.cs 2009-05-01 14:55:28 UTC (rev 4222)
@@ -3,7 +3,7 @@
using System.Text;
using log4net;
using NHibernate.Engine;
-using NHibernate.Hql.Ast.ANTLR.Parameters;
+using NHibernate.Param;
using NHibernate.Persister.Collection;
using NHibernate.Persister.Entity;
using NHibernate.Type;
Modified: trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/IParameterContainer.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/IParameterContainer.cs 2009-05-01 14:09:04 UTC (rev 4221)
+++ trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/IParameterContainer.cs 2009-05-01 14:55:28 UTC (rev 4222)
@@ -1,4 +1,4 @@
-using NHibernate.Hql.Ast.ANTLR.Parameters;
+using NHibernate.Param;
namespace NHibernate.Hql.Ast.ANTLR.Tree
{
Modified: trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/IndexNode.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/IndexNode.cs 2009-05-01 14:09:04 UTC (rev 4221)
+++ trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/IndexNode.cs 2009-05-01 14:55:28 UTC (rev 4222)
@@ -1,10 +1,10 @@
-using System;
+using System;
using System.Collections.Generic;
using Antlr.Runtime;
using Antlr.Runtime.Tree;
using log4net;
using NHibernate.Engine;
-using NHibernate.Hql.Ast.ANTLR.Parameters;
+using NHibernate.Param;
using NHibernate.Persister.Collection;
using NHibernate.SqlCommand;
using NHibernate.Type;
Modified: trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/ParameterNode.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/ParameterNode.cs 2009-05-01 14:09:04 UTC (rev 4221)
+++ trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/ParameterNode.cs 2009-05-01 14:55:28 UTC (rev 4222)
@@ -1,8 +1,8 @@
-using System;
+using System;
using System.Text;
using Antlr.Runtime;
using NHibernate.Engine;
-using NHibernate.Hql.Ast.ANTLR.Parameters;
+using NHibernate.Param;
using NHibernate.Type;
namespace NHibernate.Hql.Ast.ANTLR.Tree
Modified: trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/SqlFragment.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/SqlFragment.cs 2009-05-01 14:09:04 UTC (rev 4221)
+++ trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/SqlFragment.cs 2009-05-01 14:55:28 UTC (rev 4222)
@@ -1,7 +1,7 @@
-using System;
+using System;
using System.Collections.Generic;
using Antlr.Runtime;
-using NHibernate.Hql.Ast.ANTLR.Parameters;
+using NHibernate.Param;
using NHibernate.SqlCommand;
namespace NHibernate.Hql.Ast.ANTLR.Tree
Modified: trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Util/JoinProcessor.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Util/JoinProcessor.cs 2009-05-01 14:09:04 UTC (rev 4221)
+++ trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Util/JoinProcessor.cs 2009-05-01 14:55:28 UTC (rev 4222)
@@ -1,13 +1,13 @@
-using System;
+using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using log4net;
using NHibernate.Engine;
-using NHibernate.Hql.Ast.ANTLR.Parameters;
using NHibernate.Hql.Ast.ANTLR.Tree;
using NHibernate.Hql.Classic;
using NHibernate.Impl;
+using NHibernate.Param;
using NHibernate.SqlCommand;
using NHibernate.Type;
using NHibernate.Util;
@@ -180,7 +180,7 @@
if ( token.StartsWith( ParserHelper.HqlVariablePrefix ) )
{
string filterParameterName = token.Substring( 1 );
- string[] parts = LoadQueryInfluencers.ParseFilterParameterName( filterParameterName );
+ string[] parts = StringHelper.ParseFilterParameterName( filterParameterName );
FilterImpl filter = ( FilterImpl ) walker.EnabledFilters[parts[0]];
Object value = filter.GetParameter( parts[1] );
IType type = filter.FilterDefinition.GetParameterType( parts[1] );
Deleted: trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Util/NullableDictionary.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Util/NullableDictionary.cs 2009-05-01 14:09:04 UTC (rev 4221)
+++ trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Util/NullableDictionary.cs 2009-05-01 14:55:28 UTC (rev 4222)
@@ -1,230 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-
-namespace NHibernate.Hql.Ast.ANTLR.Util
-{
- public class NullableDictionary<TKey, TValue> : IDictionary<TKey, TValue>
- where TKey : class
- {
- private TValue _nullValue;
- private bool _gotNullValue;
- private readonly Dictionary<TKey, TValue> _dict = new Dictionary<TKey, TValue>();
-
- public bool ContainsKey(TKey key)
- {
- if (key == null)
- {
- return _gotNullValue;
- }
- else
- {
- return _dict.ContainsKey(key);
- }
- }
-
- public void Add(TKey key, TValue value)
- {
- if (key == null)
- {
- _nullValue = value;
- }
- else
- {
- _dict[key] = value;
- }
- }
-
- public bool Remove(TKey key)
- {
- if (key == null)
- {
- if (_gotNullValue)
- {
- _nullValue = default(TValue);
- _gotNullValue = false;
- return true;
- }
- else
- {
- return false;
- }
- }
- else
- {
- return _dict.Remove(key);
- }
- }
-
- public bool TryGetValue(TKey key, out TValue value)
- {
- if (key == null)
- {
- if (_gotNullValue)
- {
- value = _nullValue;
- return true;
- }
- else
- {
- value = default(TValue);
- return false;
- }
- }
- else
- {
- return _dict.TryGetValue(key, out value);
- }
- }
-
- public TValue this[TKey key]
- {
- get
- {
- if (key == null)
- {
- return _nullValue;
- }
- else
- {
- TValue ret;
-
- _dict.TryGetValue(key, out ret);
-
- return ret;
- }
- }
- set
- {
- if (key == null)
- {
- _nullValue = value;
- _gotNullValue = true;
- }
- else
- {
- _dict[key] = value;
- }
- }
- }
-
- public ICollection<TKey> Keys
- {
- get
- {
- if (_gotNullValue)
- {
- List<TKey> keys = new List<TKey>(_dict.Keys);
- keys.Add(null);
- return keys;
- }
- else
- {
- return _dict.Keys;
- }
- }
- }
-
- public ICollection<TValue> Values
- {
- get
- {
- if (_gotNullValue)
- {
- List<TValue> values = new List<TValue>(_dict.Values);
- values.Add(_nullValue);
- return values;
- }
- else
- {
- return _dict.Values;
- }
- }
- }
-
- public IEnumerator<KeyValuePair<TKey, TValue>> GetEnumerator()
- {
- foreach (KeyValuePair<TKey, TValue> kvp in _dict)
- {
- yield return kvp;
- }
-
- if (_gotNullValue)
- {
- yield return new KeyValuePair<TKey, TValue>(null, _nullValue);
- }
- }
-
- IEnumerator IEnumerable.GetEnumerator()
- {
- return GetEnumerator();
- }
-
- public void Add(KeyValuePair<TKey, TValue> item)
- {
- if (item.Key == null)
- {
- _nullValue = item.Value;
- _gotNullValue = true;
- }
- else
- {
- _dict.Add(item.Key, item.Value);
- }
- }
-
- public void Clear()
- {
- _dict.Clear();
- _nullValue = default(TValue);
- _gotNullValue = false;
- }
-
- public bool Contains(KeyValuePair<TKey, TValue> item)
- {
- TValue val = default(TValue);
-
- if (TryGetValue(item.Key, out val))
- {
- if (Equals(item.Value, val))
- {
- return true;
- }
- return false;
- }
- else
- {
- return false;
- }
- }
-
- public void CopyTo(KeyValuePair<TKey, TValue>[] array, int arrayIndex)
- {
- throw new System.NotImplementedException();
- }
-
- public bool Remove(KeyValuePair<TKey, TValue> item)
- {
- throw new System.NotImplementedException();
- }
-
- public int Count
- {
- get
- {
- if (_gotNullValue)
- {
- return _dict.Count + 1;
- }
- else
- {
- return _dict.Count;
- }
- }
- }
-
- public bool IsReadOnly
- {
- get { return false; }
- }
- }
-}
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Util/SyntheticAndFactory.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Util/SyntheticAndFactory.cs 2009-05-01 14:09:04 UTC (rev 4221)
+++ trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Util/SyntheticAndFactory.cs 2009-05-01 14:55:28 UTC (rev 4222)
@@ -1,8 +1,8 @@
-using System;
+using System;
using Antlr.Runtime.Tree;
using log4net;
-using NHibernate.Hql.Ast.ANTLR.Parameters;
using NHibernate.Hql.Ast.ANTLR.Tree;
+using NHibernate.Param;
using NHibernate.SqlCommand;
using NHibernate.Type;
using NHibernate.Util;
Modified: trunk/nhibernate/src/NHibernate/NHibernate.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate/NHibernate.csproj 2009-05-01 14:09:04 UTC (rev 4221)
+++ trunk/nhibernate/src/NHibernate/NHibernate.csproj 2009-05-01 14:55:28 UTC (rev 4222)
@@ -496,21 +496,20 @@
<Compile Include="Hql\Ast\ANTLR\InvalidWithClauseException.cs" />
<Compile Include="Hql\Ast\ANTLR\IParseErrorHandler.cs" />
<Compile Include="Hql\Ast\ANTLR\Loader\QueryLoader.cs" />
- <Compile Include="Hql\Ast\ANTLR\Parameters\AbstractExplicitParameterSpecification.cs" />
- <Compile Include="Hql\Ast\ANTLR\Parameters\AggregatedIndexCollectionSelectorParameterSpecifications.cs" />
- <Compile Include="Hql\Ast\ANTLR\Parameters\CollectionFilterKeyParameterSpecification.cs" />
- <Compile Include="Hql\Ast\ANTLR\Parameters\DynamicFilterParameterSpecification.cs" />
- <Compile Include="Hql\Ast\ANTLR\Parameters\IExplicitParameterSpecification.cs" />
- <Compile Include="Hql\Ast\ANTLR\Parameters\IParameterSpecification.cs" />
- <Compile Include="Hql\Ast\ANTLR\Parameters\NamedParameterSpecification.cs" />
- <Compile Include="Hql\Ast\ANTLR\Parameters\ParameterTranslationsImpl.cs" />
- <Compile Include="Hql\Ast\ANTLR\Parameters\PositionalParameterSpecification.cs" />
+ <Compile Include="Param\AbstractExplicitParameterSpecification.cs" />
+ <Compile Include="Param\AggregatedIndexCollectionSelectorParameterSpecifications.cs" />
+ <Compile Include="Param\CollectionFilterKeyParameterSpecification.cs" />
+ <Compile Include="Param\DynamicFilterParameterSpecification.cs" />
+ <Compile Include="Param\IExplicitParameterSpecification.cs" />
+ <Compile Include="Param\IParameterSpecification.cs" />
+ <Compile Include="Param\NamedParameterSpecification.cs" />
+ <Compile Include="Param\ParameterTranslationsImpl.cs" />
+ <Compile Include="Param\PositionalParameterSpecification.cs" />
<Compile Include="Hql\Ast\ANTLR\QuerySyntaxException.cs" />
<Compile Include="Hql\Ast\ANTLR\QueryTranslatorImpl.cs" />
<Compile Include="Hql\Ast\ANTLR\SemanticException.cs" />
<Compile Include="Hql\Ast\ANTLR\SessionFactoryHelperExtensions.cs" />
<Compile Include="Hql\Ast\ANTLR\SqlGenerator.cs" />
- <Compile Include="Hql\Ast\ANTLR\TODO.cs" />
<Compile Include="Hql\Ast\ANTLR\Tree\AbstractNullnessCheckNode.cs" />
<Compile Include="Hql\Ast\ANTLR\Tree\AbstractRestrictableStatement.cs" />
<Compile Include="Hql\Ast\ANTLR\Tree\AbstractSelectExpression.cs" />
@@ -585,7 +584,7 @@
<Compile Include="Hql\Ast\ANTLR\Util\JoinProcessor.cs" />
<Compile Include="Hql\Ast\ANTLR\Util\LiteralProcessor.cs" />
<Compile Include="Hql\Ast\ANTLR\Util\NodeTraverser.cs" />
- <Compile Include="Hql\Ast\ANTLR\Util\NullableDictionary.cs" />
+ <Compile Include="Util\NullableDictionary.cs" />
<Compile Include="Hql\Ast\ANTLR\Util\PathHelper.cs" />
<Compile Include="Hql\Ast\ANTLR\Util\SyntheticAndFactory.cs" />
<Compile Include="Id\TriggerIdentityGenerator.cs" />
Modified: trunk/nhibernate/src/NHibernate/Param/AbstractExplicitParameterSpecification.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Parameters/AbstractExplicitParameterSpecification.cs 2009-04-30 23:40:57 UTC (rev 4219)
+++ trunk/nhibernate/src/NHibernate/Param/AbstractExplicitParameterSpecification.cs 2009-05-01 14:55:28 UTC (rev 4222)
@@ -2,13 +2,8 @@
using NHibernate.Engine;
using NHibernate.Type;
-namespace NHibernate.Hql.Ast.ANTLR.Parameters
+namespace NHibernate.Param
{
- /**
- * Convenience base class for explicitly defined query parameters.
- *
- * @author Steve Ebersole
- */
public abstract class AbstractExplicitParameterSpecification : IExplicitParameterSpecification
{
private readonly int _sourceLine;
@@ -44,4 +39,4 @@
public abstract string RenderDisplayInfo();
public abstract int Bind(IDbCommand statement, QueryParameters qp, ISessionImplementor session, int position);
}
-}
+}
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate/Param/AggregatedIndexCollectionSelectorParameterSpecifications.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Parameters/AggregatedIndexCollectionSelectorParameterSpecifications.cs 2009-04-30 23:40:57 UTC (rev 4219)
+++ trunk/nhibernate/src/NHibernate/Param/AggregatedIndexCollectionSelectorParameterSpecifications.cs 2009-05-01 14:55:28 UTC (rev 4222)
@@ -4,7 +4,7 @@
using NHibernate.Engine;
using NHibernate.Type;
-namespace NHibernate.Hql.Ast.ANTLR.Parameters
+namespace NHibernate.Param
{
public class AggregatedIndexCollectionSelectorParameterSpecifications : IParameterSpecification
{
@@ -49,4 +49,4 @@
return buffer.ToString();
}
}
-}
+}
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate/Param/CollectionFilterKeyParameterSpecification.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Parameters/CollectionFilterKeyParameterSpecification.cs 2009-04-30 23:40:57 UTC (rev 4219)
+++ trunk/nhibernate/src/NHibernate/Param/CollectionFilterKeyParameterSpecification.cs 2009-05-01 14:55:28 UTC (rev 4222)
@@ -3,7 +3,7 @@
using NHibernate.Engine;
using NHibernate.Type;
-namespace NHibernate.Hql.Ast.ANTLR.Parameters
+namespace NHibernate.Param
{
class CollectionFilterKeyParameterSpecification : IParameterSpecification
{
@@ -25,10 +25,10 @@
}
public int Bind(
- IDbCommand statement,
- QueryParameters qp,
- ISessionImplementor session,
- int position)
+ IDbCommand statement,
+ QueryParameters qp,
+ ISessionImplementor session,
+ int position)
{
object value = qp.PositionalParameterValues[_queryParameterPosition];
_keyType.NullSafeSet(statement, value, position, session);
@@ -46,4 +46,4 @@
return "collection-filter-key=" + _collectionRole;
}
}
-}
+}
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate/Param/DynamicFilterParameterSpecification.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Parameters/DynamicFilterParameterSpecification.cs 2009-04-30 23:40:57 UTC (rev 4219)
+++ trunk/nhibernate/src/NHibernate/Param/DynamicFilterParameterSpecification.cs 2009-05-01 14:55:28 UTC (rev 4222)
@@ -4,7 +4,7 @@
using NHibernate.Engine;
using NHibernate.Type;
-namespace NHibernate.Hql.Ast.ANTLR.Parameters
+namespace NHibernate.Param
{
public class DynamicFilterParameterSpecification : IParameterSpecification
{
@@ -19,9 +19,9 @@
/// <param name="parameterName">The name of the parameter</param>
/// <param name="definedParameterType">The paremeter type specified on the filter metadata</param>
public DynamicFilterParameterSpecification(
- string filterName,
- string parameterName,
- IType definedParameterType)
+ string filterName,
+ string parameterName,
+ IType definedParameterType)
{
_filterName = filterName;
_parameterName = parameterName;
@@ -64,4 +64,4 @@
return "dynamic-filter={filterName=" + _filterName + ",paramName=" + _parameterName + "}";
}
}
-}
+}
\ No newline at end of file
Deleted: trunk/nhibernate/src/NHibernate/Param/ExplicitParameterSpecification.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Parameters/ExplicitParameterSpecification.cs 2009-04-30 23:40:57 UTC (rev 4219)
+++ trunk/nhibernate/src/NHibernate/Param/ExplicitParameterSpecification.cs 2009-05-01 14:55:28 UTC (rev 4222)
@@ -1,21 +0,0 @@
-namespace NHibernate.Hql.Ast.ANTLR.Parameters
-{
- /// <summary>
- /// An additional contract for parameters which originate from parameters explicitly encountered in the source statement
- /// (HQL or native-SQL).
- /// Author: Steve Ebersole
- /// Ported by: Steve Strong
- /// </summary>
- public interface IExplicitParameterSpecification : IParameterSpecification
- {
- /// <summary>
- /// Retrieves the line number on which this parameter occurs in the source query.
- /// </summary>
- int SourceLine { get; }
-
- /// <summary>
- /// Retrieves the column number (within the {@link #getSourceLine()}) where this parameter occurs.
- /// </summary>
- int SourceColumn { get; }
- }
-}
Copied: trunk/nhibernate/src/NHibernate/Param/IExplicitParameterSpecification.cs (from rev 4221, trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Parameters/IExplicitParameterSpecification.cs)
===================================================================
--- trunk/nhibernate/src/NHibernate/Param/IExplicitParameterSpecification.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate/Param/IExplicitParameterSpecification.cs 2009-05-01 14:55:28 UTC (rev 4222)
@@ -0,0 +1,21 @@
+namespace NHibernate.Param
+{
+ /// <summary>
+ /// An additional contract for parameters which originate from parameters explicitly encountered in the source statement
+ /// (HQL or native-SQL).
+ /// Author: Steve Ebersole
+ /// Ported by: Steve Strong
+ /// </summary>
+ public interface IExplicitParameterSpecification : IParameterSpecification
+ {
+ /// <summary>
+ /// Retrieves the line number on which this parameter occurs in the source query.
+ /// </summary>
+ int SourceLine { get; }
+
+ /// <summary>
+ /// Retrieves the column number (within the {@link #getSourceLine()}) where this parameter occurs.
+ /// </summary>
+ int SourceColumn { get; }
+ }
+}
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate/Param/IParameterSpecification.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Parameters/IParameterSpecification.cs 2009-04-30 23:40:57 UTC (rev 4219)
+++ trunk/nhibernate/src/NHibernate/Param/IParameterSpecification.cs 2009-05-01 14:55:28 UTC (rev 4222)
@@ -2,7 +2,7 @@
using NHibernate.Engine;
using NHibernate.Type;
-namespace NHibernate.Hql.Ast.ANTLR.Parameters
+namespace NHibernate.Param
{
/// <summary>
/// Maintains information relating to parameters which need to get bound into a
@@ -34,4 +34,4 @@
/// <returns>The displayable info</returns>
string RenderDisplayInfo();
}
-}
+}
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate/Param/NamedParameterSpecification.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Parameters/NamedParameterSpecification.cs 2009-04-30 23:40:57 UTC (rev 4219)
+++ trunk/nhibernate/src/NHibernate/Param/NamedParameterSpecification.cs 2009-05-01 14:55:28 UTC (rev 4222)
@@ -2,7 +2,7 @@
using System.Data;
using NHibernate.Engine;
-namespace NHibernate.Hql.Ast.ANTLR.Parameters
+namespace NHibernate.Param
{
/// <summary>
/// Parameter bind specification for an explicit named parameter.
@@ -51,5 +51,4 @@
get { return _name; }
}
}
-
-}
+}
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate/Param/ParameterTranslationsImpl.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Parameters/ParameterTranslationsImpl.cs 2009-04-30 23:40:57 UTC (rev 4219)
+++ trunk/nhibernate/src/NHibernate/Param/ParameterTranslationsImpl.cs 2009-05-01 14:55:28 UTC (rev 4222)
@@ -1,11 +1,11 @@
using System;
using System.Collections.Generic;
using NHibernate.Engine;
-using NHibernate.Hql.Ast.ANTLR.Util;
+using NHibernate.Hql;
using NHibernate.Type;
using NHibernate.Util;
-namespace NHibernate.Hql.Ast.ANTLR.Parameters
+namespace NHibernate.Param
{
/// <summary>
/// Defines the information available for parameters encountered during
@@ -46,13 +46,13 @@
else {
// don't care about other param types here, just those explicitly user-defined...
- // Steve Strong Note: The original Java does not do this decrement; it increments i for
- // every parameter type. However, within the Loader.GetParameterTypes() method, this introduces
- // nulls into the paramTypeList array, which in turn causes Loader.ConvertITypesToSqlTypes() to crash
- // with a null dereference. An alternative fix is to change the Loader to handle the null. I'm
- // not sure which fix is the most appropriate.
- // Legacy.FumTest.CompositeIDQuery() shows the bug if you remove the decrement below...
- i--;
+ // Steve Strong Note: The original Java does not do this decrement; it increments i for
+ // every parameter type. However, within the Loader.GetParameterTypes() method, this introduces
+ // nulls into the paramTypeList array, which in turn causes Loader.ConvertITypesToSqlTypes() to crash
+ // with a null dereference. An alternative fix is to change the Loader to handle the null. I'm
+ // not sure which fix is the most appropriate.
+ // Legacy.FumTest.CompositeIDQuery() shows the bug if you remove the decrement below...
+ i--;
}
i++;
@@ -67,22 +67,22 @@
}
}
- public void AdjustNamedParameterLocationsForQueryParameters(QueryParameters parameters)
- {
- foreach (int existingParameterLocation in parameters.FilteredParameterLocations)
- {
- foreach (ParameterInfo entry in _namedParameters.Values)
- {
- for (int index = 0; index < entry.SqlLocations.Length; index++)
- {
- if (entry.SqlLocations[index] >= existingParameterLocation)
- {
- entry.SqlLocations[index]++;
- }
- }
- }
- }
- }
+ public void AdjustNamedParameterLocationsForQueryParameters(QueryParameters parameters)
+ {
+ foreach (int existingParameterLocation in parameters.FilteredParameterLocations)
+ {
+ foreach (ParameterInfo entry in _namedParameters.Values)
+ {
+ for (int index = 0; index < entry.SqlLocations.Length; index++)
+ {
+ if (entry.SqlLocations[index] >= existingParameterLocation)
+ {
+ entry.SqlLocations[index]++;
+ }
+ }
+ }
+ }
+ }
public int GetOrdinalParameterSqlLocation(int ordinalPosition)
{
@@ -164,4 +164,4 @@
get { return _expectedType; }
}
}
-}
+}
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate/Param/PositionalParameterSpecification.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Parameters/PositionalParameterSpecification.cs 2009-04-30 23:40:57 UTC (rev 4219)
+++ trunk/nhibernate/src/NHibernate/Param/PositionalParameterSpecification.cs 2009-05-01 14:55:28 UTC (rev 4222)
@@ -2,7 +2,7 @@
using System.Data;
using NHibernate.Type;
-namespace NHibernate.Hql.Ast.ANTLR.Parameters
+namespace NHibernate.Param
{
/// <summary>
/// Parameter bind specification for an explicit positional (or ordinal) parameter.
@@ -54,4 +54,4 @@
get { return _hqlPosition; }
}
}
-}
+}
\ No newline at end of file
Copied: trunk/nhibernate/src/NHibernate/Util/NullableDictionary.cs (from rev 4219, trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Util/NullableDictionary.cs)
===================================================================
--- trunk/nhibernate/src/NHibernate/Util/NullableDictionary.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate/Util/NullableDictionary.cs 2009-05-01 14:55:28 UTC (rev 4222)
@@ -0,0 +1,230 @@
+using System.Collections;
+using System.Collections.Generic;
+
+namespace NHibernate.Util
+{
+ public class NullableDictionary<TKey, TValue> : IDictionary<TKey, TValue>
+ where TKey : class
+ {
+ private TValue _nullValue;
+ private bool _gotNullValue;
+ private readonly Dictionary<TKey, TValue> _dict = new Dictionary<TKey, TValue>();
+
+ public bool ContainsKey(TKey key)
+ {
+ if (key == null)
+ {
+ return _gotNullValue;
+ }
+ else
+ {
+ return _dict.ContainsKey(key);
+ }
+ }
+
+ public void Add(TKey key, TValue value)
+ {
+ if (key == null)
+ {
+ _nullValue = value;
+ }
+ else
+ {
+ _dict[key] = value;
+ }
+ }
+
+ public bool Remove(TKey key)
+ {
+ if (key == null)
+ {
+ if (_gotNullValue)
+ {
+ _nullValue = default(TValue);
+ _gotNullValue = false;
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ }
+ else
+ {
+ return _dict.Remove(key);
+ }
+ }
+
+ public bool TryGetValue(TKey key, out TValue value)
+ {
+ if (key == null)
+ {
+ if (_gotNullValue)
+ {
+ value = _nullValue;
+ return true;
+ }
+ else
+ {
+ value = default(TValue);
+ return false;
+ }
+ }
+ else
+ {
+ return _dict.TryGetValue(key, out value);
+ }
+ }
+
+ public TValue this[TKey key]
+ {
+ get
+ {
+ if (key == null)
+ {
+ return _nullValue;
+ }
+ else
+ {
+ TValue ret;
+
+ _dict.TryGetValue(key, out ret);
+
+ return ret;
+ }
+ }
+ set
+ {
+ if (key == null)
+ {
+ _nullValue = value;
+ _gotNullValue = true;
+ }
+ else
+ {
+ _dict[key] = value;
+ }
+ }
+ }
+
+ public ICollection<TKey> Keys
+ {
+ get
+ {
+ if (_gotNullValue)
+ {
+ List<TKey> keys = new List<TKey>(_dict.Keys);
+ keys.Add(null);
+ return keys;
+ }
+ else
+ {
+ return _dict.Keys;
+ }
+ }
+ }
+
+ public ICollection<TValue> Values
+ {
+ get
+ {
+ if (_gotNullValue)
+ {
+ List<TValue> values = new List<TValue>(_dict.Values);
+ values.Add(_nullValue);
+ return values;
+ }
+ else
+ {
+ return _dict.Values;
+ }
+ }
+ }
+
+ public IEnumerator<KeyValuePair<TKey, TValue>> GetEnumerator()
+ {
+ foreach (KeyValuePair<TKey, TValue> kvp in _dict)
+ {
+ yield return kvp;
+ }
+
+ if (_gotNullValue)
+ {
+ yield return new KeyValuePair<TKey, TValue>(null, _nullValue);
+ }
+ }
+
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ return GetEnumerator();
+ }
+
+ public void Add(KeyValuePair<TKey, TValue> item)
+ {
+ if (item.Key == null)
+ {
+ _nullValue = item.Value;
+ _gotNullValue = true;
+ }
+ else
+ {
+ _dict.Add(item.Key, item.Value);
+ }
+ }
+
+ public void Clear()
+ {
+ _dict.Clear();
+ _nullValue = default(TValue);
+ _gotNullValue = false;
+ }
+
+ public bool Contains(KeyValuePair<TKey, TValue> item)
+ {
+ TValue val = default(TValue);
+
+ if (TryGetValue(item.Key, out val))
+ {
+ if (Equals(item.Value, val))
+ {
+ return true;
+ }
+ return false;
+ }
+ else
+ {
+ return false;
+ }
+ }
+
+ public void CopyTo(KeyValuePair<TKey, TValue>[] array, int arrayIndex)
+ {
+ throw new System.NotImplementedException();
+ }
+
+ public bool Remove(KeyValuePair<TKey, TValue> item)
+ {
+ throw new System.NotImplementedException();
+ }
+
+ public int Count
+ {
+ get
+ {
+ if (_gotNullValue)
+ {
+ return _dict.Count + 1;
+ }
+ else
+ {
+ return _dict.Count;
+ }
+ }
+ }
+
+ public bool IsReadOnly
+ {
+ get { return false; }
+ }
+ }
+}
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate/Util/StringHelper.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Util/StringHelper.cs 2009-05-01 14:09:04 UTC (rev 4221)
+++ trunk/nhibernate/src/NHibernate/Util/StringHelper.cs 2009-05-01 14:55:28 UTC (rev 4222)
@@ -722,5 +722,17 @@
}
return identifier;
}
+
+ public static string[] ParseFilterParameterName(string filterParameterName)
+ {
+ int dot = filterParameterName.IndexOf(".");
+ if (dot <= 0)
+ {
+ throw new ArgumentException("Invalid filter-parameter name format; the name should be a property path.", "filterParameterName");
+ }
+ string filterName = filterParameterName.Substring(0, dot);
+ string parameterName = filterParameterName.Substring(dot + 1);
+ return new[] { filterName, parameterName };
+ }
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|