|
From: <fab...@us...> - 2009-03-28 22:10:40
|
Revision: 4160
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4160&view=rev
Author: fabiomaulo
Date: 2009-03-28 22:10:37 +0000 (Sat, 28 Mar 2009)
Log Message:
-----------
Applying change needed for AST parser based on ANTLR
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate/Hql/Classic/QueryTranslator.cs
trunk/nhibernate/src/NHibernate/Hql/IQueryTranslator.cs
trunk/nhibernate/src/NHibernate/Impl/MultiQueryImpl.cs
Modified: trunk/nhibernate/src/NHibernate/Hql/Classic/QueryTranslator.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Hql/Classic/QueryTranslator.cs 2009-03-28 20:15:05 UTC (rev 4159)
+++ trunk/nhibernate/src/NHibernate/Hql/Classic/QueryTranslator.cs 2009-03-28 22:10:37 UTC (rev 4160)
@@ -356,8 +356,13 @@
get { return returnTypes; }
}
- internal virtual IType[] ActualReturnTypes
+ public Loader.Loader Loader
{
+ get { return this; }
+ }
+
+ public virtual IType[] ActualReturnTypes
+ {
get { return actualReturnTypes; }
}
Modified: trunk/nhibernate/src/NHibernate/Hql/IQueryTranslator.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Hql/IQueryTranslator.cs 2009-03-28 20:15:05 UTC (rev 4159)
+++ trunk/nhibernate/src/NHibernate/Hql/IQueryTranslator.cs 2009-03-28 22:10:37 UTC (rev 4160)
@@ -116,5 +116,9 @@
bool ContainsCollectionFetches { get; }
bool IsManipulationStatement { get; }
+
+ Loader.Loader Loader { get; }
+
+ IType[] ActualReturnTypes { get; }
}
}
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate/Impl/MultiQueryImpl.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Impl/MultiQueryImpl.cs 2009-03-28 20:15:05 UTC (rev 4159)
+++ trunk/nhibernate/src/NHibernate/Impl/MultiQueryImpl.cs 2009-03-28 22:10:37 UTC (rev 4160)
@@ -23,9 +23,9 @@
private static readonly ILog log = LogManager.GetLogger(typeof(MultiQueryImpl));
private readonly List<IQuery> queries = new List<IQuery>();
- private readonly List<QueryTranslator> translators = new List<QueryTranslator>();
+ private readonly List<IQueryTranslator> translators = new List<IQueryTranslator>();
private readonly List<QueryParameters> parameters = new List<QueryParameters>();
- private IList criteriaResults;
+ private IList queryResults;
private readonly Dictionary<string, int> criteriaResultPositions = new Dictionary<string, int>();
private string cacheRegion;
private int commandTimeout = RowSelection.NoValue;
@@ -360,9 +360,7 @@
try
{
Before();
-
- criteriaResults = cacheable ? ListUsingQueryCache() : ListIgnoreQueryCache();
- return criteriaResults;
+ return cacheable ? ListUsingQueryCache() : ListIgnoreQueryCache();
}
finally
{
@@ -405,9 +403,7 @@
{
for (int j = 0; j < subList.Count; j++)
{
- object[] row = subList[j] as object[];
- if (row == null)
- row = new object[] { subList[j] };
+ object[] row = subList[j] as object[] ?? new[] { subList[j] };
subList[j] = holderInstantiator.Instantiate(row);
}
@@ -458,10 +454,10 @@
log.DebugFormat("Executing {0} queries", translators.Count);
for (int i = 0; i < translators.Count; i++)
{
- QueryTranslator translator = Translators[i];
+ IQueryTranslator translator = Translators[i];
QueryParameters parameter = Parameters[i];
ArrayList tempResults = new ArrayList();
- int entitySpan = translator.EntityPersisters.Length;
+ int entitySpan = translator.Loader.EntityPersisters.Length;
hydratedObjects[i] = entitySpan > 0 ? new ArrayList() : null;
RowSelection selection = parameter.RowSelection;
int maxRows = Loader.Loader.HasMaxRows(selection) ? selection.MaxRows : int.MaxValue;
@@ -470,13 +466,13 @@
Loader.Loader.Advance(reader, selection);
}
- LockMode[] lockModeArray = translator.GetLockModes(parameter.LockModes);
+ LockMode[] lockModeArray = translator.Loader.GetLockModes(parameter.LockModes);
EntityKey optionalObjectKey = Loader.Loader.GetOptionalObjectKey(parameter, session);
- createSubselects[i] = translator.IsSubselectLoadingEnabled;
+ createSubselects[i] = translator.Loader.IsSubselectLoadingEnabled;
subselectResultKeys[i] = createSubselects[i] ? new List<EntityKey[]>() : null;
- translator.HandleEmptyCollections(parameter.CollectionKeys, reader, session);
+ translator.Loader.HandleEmptyCollections(parameter.CollectionKeys, reader, session);
EntityKey[] keys = new EntityKey[entitySpan]; // we can reuse it each time
if (log.IsDebugEnabled)
@@ -493,7 +489,7 @@
}
object result =
- translator.GetRowFromResultSet(reader,
+ translator.Loader.GetRowFromResultSet(reader,
session,
parameter,
lockModeArray,
@@ -536,14 +532,14 @@
}
for (int i = 0; i < translators.Count; i++)
{
- QueryTranslator translator = translators[i];
+ IQueryTranslator translator = translators[i];
QueryParameters parameter = parameters[i];
- translator.InitializeEntitiesAndCollections(hydratedObjects[i], reader, session, false);
+ translator.Loader.InitializeEntitiesAndCollections(hydratedObjects[i], reader, session, false);
if (createSubselects[i])
{
- translator.CreateSubselects(subselectResultKeys[i], parameter, session);
+ translator.Loader.CreateSubselects(subselectResultKeys[i], parameter, session);
}
}
return results;
@@ -630,23 +626,26 @@
{
for (int i = 0; i < queries.Count; i++)
{
- QueryTranslator translator = Translators[i];
+ IQueryTranslator translator = Translators[i];
QueryParameters parameter = Parameters[i];
- colIndex += parameter.BindParameters(command, translator.GetNamedParameterLocs, colIndex, session);
+ colIndex += parameter.BindParameters(command, translator.Loader.GetNamedParameterLocs, colIndex, session);
}
return colIndex;
}
public object GetResult(string key)
{
- if (criteriaResults == null) List();
+ if (queryResults == null)
+ {
+ queryResults= List();
+ }
if (!criteriaResultPositions.ContainsKey(key))
{
throw new InvalidOperationException(String.Format("The key '{0}' is unknown", key));
}
- return criteriaResults[criteriaResultPositions[key]];
+ return queryResults[criteriaResultPositions[key]];
}
private int BindLimitParametersFirstIfNeccesary(IDbCommand command, int colIndex)
@@ -685,7 +684,7 @@
List<IType[]> resultTypesList = new List<IType[]>(Translators.Count);
for (int i = 0; i < Translators.Count; i++)
{
- QueryTranslator queryTranslator = Translators[i];
+ IQueryTranslator queryTranslator = Translators[i];
querySpaces.AddAll(queryTranslator.QuerySpaces);
resultTypesList.Add(queryTranslator.ActualReturnTypes);
}
@@ -717,7 +716,7 @@
return GetResultList(result);
}
- private IList<QueryTranslator> Translators
+ private IList<IQueryTranslator> Translators
{
get
{
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|