This commit was manufactured by cvs2svn to create branch 'mono-1-0'.
[mono.git] / mcs / class / Mono.Data / Provider.cs
1 //\r
2 // Mono.Data.Provider\r
3 //\r
4 // Authors:\r
5 //   Brian Ritchie (brianlritchie@hotmail.com) \r
6 //  \r
7 //\r
8 // Copyright (C) Brian Ritchie, 2002\r
9 // \r
10 //\r
11 using System;\r
12 using System.Data;\r
13 using System.Reflection;\r
14 \r
15 namespace Mono.Data\r
16 {\r
17         public class Provider\r
18         {\r
19                 private string name = null;\r
20                 private string connectionTypeName;\r
21                 private string adapterTypeName;\r
22                 private string commandTypeName;\r
23                 private Type connectionType;\r
24                 private Type adapterType;\r
25                 private Type commandType;\r
26                 private string assemblyName;\r
27                 private string description;\r
28       \r
29                 public Provider(string _name, string _connection, \r
30                         string _dataadapter, string _command, string _assembly,\r
31                         string _description)\r
32                 {\r
33                         name = _name;\r
34                         connectionTypeName = _connection;\r
35                         adapterTypeName = _dataadapter;\r
36                         assemblyName = _assembly;\r
37                         commandTypeName = _command;\r
38                         description = _description;\r
39                 }\r
40 \r
41                 public Provider(string _name, Type _connection, Type _dataadapter, Type _command,\r
42                         string _description)\r
43                 {\r
44                         name = _name;\r
45                         connectionTypeName = _connection.FullName;\r
46                         adapterTypeName = _dataadapter.FullName;\r
47                         commandTypeName = _command.FullName;\r
48                         connectionType = _connection;\r
49                         adapterType = _dataadapter;\r
50                         commandType = _command;\r
51                         description = _description;\r
52                 }\r
53 \r
54                 public string Name\r
55                 {\r
56                         get {return name;}\r
57                 }\r
58 \r
59                 public string Description\r
60                 {\r
61                         get {return description;}\r
62                 }\r
63 \r
64                 public Type ConnectionType\r
65                 {\r
66                         get \r
67                         {\r
68                                 if (connectionType==null)\r
69                                 {\r
70                                         connectionType=Type.GetType(connectionTypeName+","+assemblyName);\r
71                                 }\r
72                                 return connectionType;\r
73                         }\r
74                 }\r
75 \r
76                 public Type DataAdapterType\r
77                 {\r
78                         get \r
79                         {\r
80                                 if (adapterType==null)\r
81                                 {\r
82                                         adapterType=Type.GetType(adapterTypeName+","+assemblyName);\r
83                                 }\r
84                                 return adapterType;\r
85                         }\r
86                 }\r
87 \r
88                 public Type CommandType\r
89                 {\r
90                         get \r
91                         {\r
92                                 if (commandType==null)\r
93                                 {\r
94                                         commandType=Type.GetType(commandTypeName+","+assemblyName);\r
95                                 }\r
96                                 return commandType;\r
97                         }\r
98                 }\r
99 \r
100                 public IDbConnection CreateConnection()\r
101                 {\r
102                         return (IDbConnection) Activator.CreateInstance(ConnectionType);\r
103                 }\r
104 \r
105                 public IDbDataAdapter CreateDataAdapter()\r
106                 {\r
107                         return (IDbDataAdapter) Activator.CreateInstance(DataAdapterType);\r
108                 }\r
109 \r
110                 public IDbCommand CreateCommand()\r
111                 {\r
112                         return (IDbCommand) Activator.CreateInstance(CommandType);\r
113                 }\r
114         }\r
115 }\r