New test.
[mono.git] / mcs / class / System.Data.OracleClient / System.Data.OracleClient.jvm / OracleBinary.cs
1 //
2 // OracleBinary.cs 
3 //
4 // Part of the Mono class libraries at
5 // mcs/class/System.Data.OracleClient/System.Data.OracleClient
6 //
7 // Assembly: System.Data.OracleClient.dll
8 // Namespace: System.Data.OracleClient
9 //
10 // Author: Tim Coleman <tim@timcoleman.com>
11 //
12 // Copyright (C) Tim Coleman, 2003
13 //
14 // Licensed under the MIT/X11 License.
15 //
16
17 using System;
18 using System.IO;
19 using System.Data.SqlTypes;
20
21 namespace System.Data.OracleClient {
22         public struct OracleBinary : IComparable, INullable {
23                 #region Fields
24
25                 public static readonly OracleBinary Null = new OracleBinary ();
26
27                 bool notNull; 
28                 byte[] value; 
29
30                 #endregion // Fields
31
32                 #region Constructors
33
34                 public OracleBinary (byte[] b) {
35                         value = b;
36                         notNull = true;
37                 }
38
39                 #endregion // Constructors
40
41                 #region Properties
42
43                 public bool IsNull {
44                         get { return !notNull; }
45                 }
46
47                 public byte this [int index] {
48                         get { 
49                                 if (IsNull)
50                                         throw new Exception ("Data is null.");
51                                 return value [index];
52                         }
53                 }
54
55                 public int Length {
56                         get {
57                                 if (IsNull)
58                                         throw new Exception ("Data is null.");
59                                 return value.Length;
60                         }
61                 }
62
63                 public byte[] Value {
64                         get {
65                                 if (IsNull)
66                                         throw new Exception ("Data is null.");
67                                 return value;
68                         }
69                 }
70
71                 #endregion // Properties
72
73                 #region Methods
74
75                 [MonoTODO]
76                 public int CompareTo (object obj) {
77                         throw new NotImplementedException ();
78                 }
79
80                 [MonoTODO]
81                 public static OracleBinary Concat (OracleBinary x, OracleBinary y) {
82                         throw new NotImplementedException ();
83                 }
84
85                 [MonoTODO]
86                 public override bool Equals (object value) {
87                         throw new NotImplementedException ();
88                 }
89
90                 public static OracleBoolean Equals (OracleBinary x, OracleBinary y) {
91                         if (x.IsNull || y.IsNull)
92                                 return OracleBoolean.Null;
93                         return new OracleBoolean (x.Value == y.Value);
94                 }
95
96                 [MonoTODO]
97                 public override int GetHashCode () {
98                         throw new NotImplementedException ();
99                 }
100
101                 [MonoTODO]
102                 public static OracleBoolean GreaterThan (OracleBinary x, OracleBinary y) {
103                         if (x.IsNull || y.IsNull)
104                                 return OracleBoolean.Null;
105                         //return (x.Value > y.Value);
106                         throw new NotImplementedException ();
107                 }
108
109                 [MonoTODO]
110                 public static OracleBoolean GreaterThanOrEqual (OracleBinary x, OracleBinary y) {
111                         if (x.IsNull || y.IsNull)
112                                 return OracleBoolean.Null;
113                         //return (x.Value >= y.Value);
114                         throw new NotImplementedException ();
115                 }
116
117                 [MonoTODO]
118                 public static OracleBoolean LessThan (OracleBinary x, OracleBinary y) {
119                         if (x.IsNull || y.IsNull)
120                                 return OracleBoolean.Null;
121                         //return (x.Value < y.Value);
122                         throw new NotImplementedException ();
123                 }
124
125                 [MonoTODO]
126                 public static OracleBoolean LessThanOrEqual (OracleBinary x, OracleBinary y) {
127                         if (x.IsNull || y.IsNull)
128                                 return OracleBoolean.Null;
129                         //return (x.Value <= y.Value);
130                         throw new NotImplementedException ();
131                 }
132
133                 [MonoTODO]
134                 public static OracleBoolean NotEquals (OracleBinary x, OracleBinary y) {
135                         if (x.IsNull || y.IsNull)
136                                 return OracleBoolean.Null;
137                         //return (x.Value != y.Value);
138                         throw new NotImplementedException ();
139                 }
140
141                 #endregion // Methods
142
143                 #region Operators and Type Conversions
144
145                 public static OracleBinary operator + (OracleBinary x, OracleBinary y) {
146                         return Concat (x, y);
147                 }
148
149                 public static OracleBoolean operator == (OracleBinary x, OracleBinary y) {
150                         return Equals (x, y);
151                 }
152
153                 public static OracleBoolean operator > (OracleBinary x, OracleBinary y) {
154                         return GreaterThan (x, y);
155                 }
156
157                 public static OracleBoolean operator >= (OracleBinary x, OracleBinary y) {
158                         return GreaterThanOrEqual (x, y);
159                 }
160
161                 public static OracleBoolean operator != (OracleBinary x, OracleBinary y) {
162                         return NotEquals (x, y);
163                 }
164
165                 public static OracleBoolean operator < (OracleBinary x, OracleBinary y) {
166                         return LessThan (x, y);
167                 }
168
169                 public static OracleBoolean operator <= (OracleBinary x, OracleBinary y) {
170                         return LessThan (x, y);
171                 }
172
173                 public static explicit operator byte[] (OracleBinary x) {
174                         return x.Value;
175                 }
176
177                 public static implicit operator OracleBinary (byte[] b) {
178                         return new OracleBinary (b);
179                 }
180
181                 #endregion // Operators and Type Conversions
182         }
183 }