|
9 | 9 | namespace NHibernate.Criterion.Lambda
|
10 | 10 | {
|
11 | 11 |
|
12 |
| - public class QueryOverJoinBuilder<S,T> : QueryOverJoinBuilderBase<QueryOver<S,T>, S, T> |
| 12 | + public class QueryOverJoinBuilder<TRoot,TSubType> : QueryOverJoinBuilderBase<QueryOver<TRoot,TSubType>, TRoot, TSubType> |
13 | 13 | {
|
14 |
| - public QueryOverJoinBuilder(QueryOver<S,T> root, JoinType joinType) : base(root, joinType) { } |
| 14 | + public QueryOverJoinBuilder(QueryOver<TRoot,TSubType> root, JoinType joinType) : base(root, joinType) { } |
15 | 15 |
|
16 |
| - public QueryOver<S,U> JoinQueryOver<U>(Expression<Func<T, U>> path) |
| 16 | + public QueryOver<TRoot,U> JoinQueryOver<U>(Expression<Func<TSubType, U>> path) |
17 | 17 | {
|
18 | 18 | return root.JoinQueryOver<U>(path, joinType);
|
19 | 19 | }
|
20 | 20 |
|
21 |
| - public QueryOver<S,U> JoinQueryOver<U>(Expression<Func<U>> path) |
| 21 | + public QueryOver<TRoot,U> JoinQueryOver<U>(Expression<Func<U>> path) |
22 | 22 | {
|
23 | 23 | return root.JoinQueryOver<U>(path, joinType);
|
24 | 24 | }
|
25 | 25 |
|
26 |
| - public QueryOver<S,U> JoinQueryOver<U>(Expression<Func<T, U>> path, Expression<Func<U>> alias) |
| 26 | + public QueryOver<TRoot,U> JoinQueryOver<U>(Expression<Func<TSubType, U>> path, Expression<Func<U>> alias) |
27 | 27 | {
|
28 | 28 | return root.JoinQueryOver<U>(path, alias, joinType);
|
29 | 29 | }
|
30 | 30 |
|
31 |
| - public QueryOver<S,U> JoinQueryOver<U>(Expression<Func<U>> path, Expression<Func<U>> alias) |
| 31 | + public QueryOver<TRoot,U> JoinQueryOver<U>(Expression<Func<U>> path, Expression<Func<U>> alias) |
32 | 32 | {
|
33 | 33 | return root.JoinQueryOver<U>(path, alias, joinType);
|
34 | 34 | }
|
35 | 35 |
|
36 |
| - public QueryOver<S,U> JoinQueryOver<U>(Expression<Func<T, IEnumerable<U>>> path) |
| 36 | + public QueryOver<TRoot,U> JoinQueryOver<U>(Expression<Func<TSubType, IEnumerable<U>>> path) |
37 | 37 | {
|
38 | 38 | return root.JoinQueryOver<U>(path, joinType);
|
39 | 39 | }
|
40 | 40 |
|
41 |
| - public QueryOver<S,U> JoinQueryOver<U>(Expression<Func<IEnumerable<U>>> path) |
| 41 | + public QueryOver<TRoot,U> JoinQueryOver<U>(Expression<Func<IEnumerable<U>>> path) |
42 | 42 | {
|
43 | 43 | return root.JoinQueryOver<U>(path, joinType);
|
44 | 44 | }
|
45 | 45 |
|
46 |
| - public QueryOver<S,U> JoinQueryOver<U>(Expression<Func<T, IEnumerable<U>>> path, Expression<Func<U>> alias) |
| 46 | + public QueryOver<TRoot,U> JoinQueryOver<U>(Expression<Func<TSubType, IEnumerable<U>>> path, Expression<Func<U>> alias) |
47 | 47 | {
|
48 | 48 | return root.JoinQueryOver<U>(path, alias, joinType);
|
49 | 49 | }
|
50 | 50 |
|
51 |
| - public QueryOver<S,U> JoinQueryOver<U>(Expression<Func<IEnumerable<U>>> path, Expression<Func<U>> alias) |
| 51 | + public QueryOver<TRoot,U> JoinQueryOver<U>(Expression<Func<IEnumerable<U>>> path, Expression<Func<U>> alias) |
52 | 52 | {
|
53 | 53 | return root.JoinQueryOver<U>(path, alias, joinType);
|
54 | 54 | }
|
55 | 55 |
|
56 | 56 | }
|
57 | 57 |
|
58 |
| - public class IQueryOverJoinBuilder<S,T> : QueryOverJoinBuilderBase<IQueryOver<S,T>, S, T> |
| 58 | + public class IQueryOverJoinBuilder<TRoot,TSubType> : QueryOverJoinBuilderBase<IQueryOver<TRoot,TSubType>, TRoot, TSubType> |
59 | 59 | {
|
60 |
| - public IQueryOverJoinBuilder(IQueryOver<S,T> root, JoinType joinType) : base(root, joinType) { } |
| 60 | + public IQueryOverJoinBuilder(IQueryOver<TRoot,TSubType> root, JoinType joinType) : base(root, joinType) { } |
61 | 61 |
|
62 |
| - public IQueryOver<S,U> JoinQueryOver<U>(Expression<Func<T, U>> path) |
| 62 | + public IQueryOver<TRoot,U> JoinQueryOver<U>(Expression<Func<TSubType, U>> path) |
63 | 63 | {
|
64 | 64 | return root.JoinQueryOver<U>(path, joinType);
|
65 | 65 | }
|
66 | 66 |
|
67 |
| - public IQueryOver<S,U> JoinQueryOver<U>(Expression<Func<U>> path) |
| 67 | + public IQueryOver<TRoot,U> JoinQueryOver<U>(Expression<Func<U>> path) |
68 | 68 | {
|
69 | 69 | return root.JoinQueryOver<U>(path, joinType);
|
70 | 70 | }
|
71 | 71 |
|
72 |
| - public IQueryOver<S,U> JoinQueryOver<U>(Expression<Func<T, U>> path, Expression<Func<U>> alias) |
| 72 | + public IQueryOver<TRoot,U> JoinQueryOver<U>(Expression<Func<TSubType, U>> path, Expression<Func<U>> alias) |
73 | 73 | {
|
74 | 74 | return root.JoinQueryOver<U>(path, alias, joinType);
|
75 | 75 | }
|
76 | 76 |
|
77 |
| - public IQueryOver<S,U> JoinQueryOver<U>(Expression<Func<U>> path, Expression<Func<U>> alias) |
| 77 | + public IQueryOver<TRoot,U> JoinQueryOver<U>(Expression<Func<U>> path, Expression<Func<U>> alias) |
78 | 78 | {
|
79 | 79 | return root.JoinQueryOver<U>(path, alias, joinType);
|
80 | 80 | }
|
81 | 81 |
|
82 |
| - public IQueryOver<S,U> JoinQueryOver<U>(Expression<Func<T, IEnumerable<U>>> path) |
| 82 | + public IQueryOver<TRoot,U> JoinQueryOver<U>(Expression<Func<TSubType, IEnumerable<U>>> path) |
83 | 83 | {
|
84 | 84 | return root.JoinQueryOver<U>(path, joinType);
|
85 | 85 | }
|
86 | 86 |
|
87 |
| - public IQueryOver<S,U> JoinQueryOver<U>(Expression<Func<IEnumerable<U>>> path) |
| 87 | + public IQueryOver<TRoot,U> JoinQueryOver<U>(Expression<Func<IEnumerable<U>>> path) |
88 | 88 | {
|
89 | 89 | return root.JoinQueryOver<U>(path, joinType);
|
90 | 90 | }
|
91 | 91 |
|
92 |
| - public IQueryOver<S,U> JoinQueryOver<U>(Expression<Func<T, IEnumerable<U>>> path, Expression<Func<U>> alias) |
| 92 | + public IQueryOver<TRoot,U> JoinQueryOver<U>(Expression<Func<TSubType, IEnumerable<U>>> path, Expression<Func<U>> alias) |
93 | 93 | {
|
94 | 94 | return root.JoinQueryOver<U>(path, alias, joinType);
|
95 | 95 | }
|
96 | 96 |
|
97 |
| - public IQueryOver<S,U> JoinQueryOver<U>(Expression<Func<IEnumerable<U>>> path, Expression<Func<U>> alias) |
| 97 | + public IQueryOver<TRoot,U> JoinQueryOver<U>(Expression<Func<IEnumerable<U>>> path, Expression<Func<U>> alias) |
98 | 98 | {
|
99 | 99 | return root.JoinQueryOver<U>(path, alias, joinType);
|
100 | 100 | }
|
101 | 101 |
|
102 | 102 | }
|
103 | 103 |
|
104 |
| - public class QueryOverJoinBuilderBase<R, S, T> where R : IQueryOver<S,T> |
| 104 | + public class QueryOverJoinBuilderBase<TReturn, TRoot, TSubType> where TReturn : IQueryOver<TRoot,TSubType> |
105 | 105 | {
|
106 | 106 |
|
107 |
| - protected R root; |
| 107 | + protected TReturn root; |
108 | 108 | protected JoinType joinType;
|
109 | 109 |
|
110 |
| - public QueryOverJoinBuilderBase(R root, JoinType joinType) |
| 110 | + public QueryOverJoinBuilderBase(TReturn root, JoinType joinType) |
111 | 111 | {
|
112 | 112 | this.root = root;
|
113 | 113 | this.joinType = joinType;
|
114 | 114 | }
|
115 | 115 |
|
116 |
| - public R JoinAlias(Expression<Func<T, object>> path, Expression<Func<object>> alias) |
| 116 | + public TReturn JoinAlias(Expression<Func<TSubType, object>> path, Expression<Func<object>> alias) |
117 | 117 | {
|
118 |
| - return (R)root.JoinAlias(path, alias, joinType); |
| 118 | + return (TReturn)root.JoinAlias(path, alias, joinType); |
119 | 119 | }
|
120 | 120 |
|
121 |
| - public R JoinAlias(Expression<Func<object>> path, Expression<Func<object>> alias) |
| 121 | + public TReturn JoinAlias(Expression<Func<object>> path, Expression<Func<object>> alias) |
122 | 122 | {
|
123 |
| - return (R)root.JoinAlias(path, alias, joinType); |
| 123 | + return (TReturn)root.JoinAlias(path, alias, joinType); |
124 | 124 | }
|
125 | 125 |
|
126 | 126 | }
|
|
0 commit comments