2009-07-11 Michael Barker <mike@middlesoft.co.uk>
[mono.git] / mcs / class / System.Data.Linq / src / DbLinq / Vendor / IDataType.cs
1 #region MIT license\r
2 // \r
3 // MIT license\r
4 //\r
5 // Copyright (c) 2007-2008 Jiri Moudry, Pascal Craponne\r
6 // \r
7 // Permission is hereby granted, free of charge, to any person obtaining a copy\r
8 // of this software and associated documentation files (the "Software"), to deal\r
9 // in the Software without restriction, including without limitation the rights\r
10 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
11 // copies of the Software, and to permit persons to whom the Software is\r
12 // furnished to do so, subject to the following conditions:\r
13 // \r
14 // The above copyright notice and this permission notice shall be included in\r
15 // all copies or substantial portions of the Software.\r
16 // \r
17 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
18 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
19 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
20 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
21 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
22 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r
23 // THE SOFTWARE.\r
24 // \r
25 #endregion\r
26 namespace DbLinq.Vendor\r
27 {\r
28     /// <summary>\r
29     /// Represents a database data type\r
30     /// </summary>\r
31 #if !MONO_STRICT\r
32     public\r
33 #endif\r
34     interface IDataType\r
35     {\r
36         /// <summary>\r
37         /// The base type, like 'number', 'varchar'\r
38         /// </summary>\r
39         string Type { get; set; }\r
40         /// <summary>\r
41         /// For all types, the possibility to have a NULL\r
42         /// </summary>\r
43         bool Nullable { get; set; }\r
44         /// <summary>\r
45         /// On non numeric data types, the length (for strings or blobs)\r
46         /// </summary>\r
47         long? Length { get; set; }\r
48         /// <summary>\r
49         /// On numeric data types, the number of digits in the integer part\r
50         /// </summary>\r
51         int? Precision { get; set; }\r
52         /// <summary>\r
53         /// On numeric data types, the number of digits in the decimal part\r
54         /// </summary>\r
55         int? Scale { get; set; }\r
56         /// <summary>\r
57         /// On numeric data types, if there is a sign\r
58         /// </summary>\r
59         bool? Unsigned { get; set; }\r
60 \r
61         /// <summary>\r
62         /// The original (or domain) type, returned raw by column information.\r
63         /// Is also used to generated the database.\r
64         /// </summary>\r
65         string FullType { get; set; }\r
66     }\r
67 }\r