Line data Source code
1 : #region Copyright
2 : // // -----------------------------------------------------------------------
3 : // // <copyright company="Chinchilla Software Limited">
4 : // // Copyright Chinchilla Software Limited. All rights reserved.
5 : // // </copyright>
6 : // // -----------------------------------------------------------------------
7 : #endregion
8 :
9 : using System.Collections.Generic;
10 : using System.Collections.ObjectModel;
11 : using System.Linq.Expressions;
12 : using System.Reflection;
13 :
14 : namespace Cqrs.Sql.DataStores
15 : {
16 : /// <summary>
17 : /// Converts <see cref="Expression"/> trees.
18 : /// </summary>
19 : public interface IExpressionTreeConverter
20 : {
21 : /// <summary>
22 : /// A collection of <see cref="LambdaExpression"/> grouped by <see cref="MemberInfo"/>.
23 : /// </summary>
24 1 : Dictionary<MemberInfo, LambdaExpression> GetMappings();
25 :
26 : /// <summary>
27 : /// Dispatches the <see cref="Expression"/> to one of the more specialized visit methods in this class.
28 : /// </summary>
29 : /// <param name="node">The <see cref="Expression"/> to visit.</param>
30 : /// <returns>The modified <see cref="Expression"/>, if it or any subexpression was modified; otherwise, returns the original <see cref="Expression"/>.</returns>
31 1 : Expression Visit(Expression node);
32 :
33 : /// <summary>
34 : /// Dispatches the list of expressions to one of the more specialized visit methods in this class.
35 : /// </summary>
36 : /// <param name="nodes">The expressions to visit.</param>
37 : /// <returns>The modified <see cref="Expression"/> list, if any one of the elements were modified; otherwise, returns the <see cref="Expression"/> expression list.</returns>
38 1 : ReadOnlyCollection<Expression> Visit(ReadOnlyCollection<Expression> nodes);
39 : }
40 : }
|