1 //
2 // ObjectMaterializer.cs
3 //
4 // Author:
5 //   Atsushi Enomoto  <atsushi@ximian.com>
6 //
7 // Copyright (C) 2008 Novell, Inc.
8 //
9 
10 //
11 // Permission is hereby granted, free of charge, to any person obtaining
12 // a copy of this software and associated documentation files (the
13 // "Software"), to deal in the Software without restriction, including
14 // without limitation the rights to use, copy, modify, merge, publish,
15 // distribute, sublicense, and/or sell copies of the Software, and to
16 // permit persons to whom the Software is furnished to do so, subject to
17 // the following conditions:
18 //
19 // The above copyright notice and this permission notice shall be
20 // included in all copies or substantial portions of the Software.
21 //
22 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
26 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
27 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 //
30 using System;
31 using System.Collections;
32 using System.Collections.Generic;
33 using System.Data.Common;
34 using System.Linq;
35 
36 namespace System.Data.Linq.SqlClient.Implementation
37 {
38 	public abstract class ObjectMaterializer<TDataReader> where TDataReader : DbDataReader
39 	{
40         [MonoTODO]
ObjectMaterializer()41         public ObjectMaterializer()
42         {
43             throw new NotImplementedException();
44         }
45 
46 		[MonoTODO]
Convert(IEnumerable source)47 		public static IEnumerable<TOutput> Convert<TOutput> (IEnumerable source)
48 		{
49 			throw new NotImplementedException ();
50 		}
51 
52 		[MonoTODO]
CreateGroup(TKey key, IEnumerable<TElement> items)53 		public static IGrouping<TKey, TElement> CreateGroup<TKey, TElement> (TKey key, IEnumerable<TElement> items)
54 		{
55 			throw new NotImplementedException ();
56 		}
57 
58 		[MonoTODO]
CreateOrderedEnumerable(IEnumerable<TElement> items)59 		public static IOrderedEnumerable<TElement> CreateOrderedEnumerable<TElement> (IEnumerable<TElement> items)
60 		{
61 			throw new NotImplementedException ();
62 		}
63 
64 		[MonoTODO]
ErrorAssignmentToNull(Type type)65 		public static Exception ErrorAssignmentToNull (Type type)
66 		{
67 			throw new NotImplementedException ();
68 		}
69 
70 		// instance members
71 
72 		[MonoTODO]
73 		public object [] Arguments;
74 
75 		[MonoTODO]
76 		public DbDataReader BufferReader;
77 
78 		[MonoTODO]
79 		public TDataReader DataReader;
80 
81 		[MonoTODO]
82 		public object [] Globals;
83 
84 		[MonoTODO]
85 		public object [] Locals;
86 
87 		[MonoTODO]
88 		public int[] Ordinals;
89 
90 		[MonoTODO]
91 		public abstract bool CanDeferLoad { get; }
92 
ExecuteSubQuery(int iSubQuery, object [] args)93 		public abstract IEnumerable ExecuteSubQuery (int iSubQuery, object [] args);
GetLinkSource(int globalLink, int localFactory, object [] keyValues)94 		public abstract IEnumerable<T> GetLinkSource<T> (int globalLink, int localFactory, object [] keyValues);
GetNestedLinkSource(int globalLink, int localFactory, object instance)95 		public abstract IEnumerable<T> GetNestedLinkSource<T> (int globalLink, int localFactory, object instance);
InsertLookup(int globalMetaType, object instance)96 		public abstract object InsertLookup (int globalMetaType, object instance);
Read()97 		public abstract bool Read ();
SendEntityMaterialized(int globalMetaType, object instance)98 		public abstract void SendEntityMaterialized (int globalMetaType, object instance);
99 	}
100 }
101