4 // Part of the Mono class libraries at
5 // mcs/class/System.Data.OracleClient/System.Data.OracleClient
7 // Assembly: System.Data.OracleClient.dll
8 // Namespace: System.Data.OracleClient
10 // Author: Tim Coleman <tim@timcoleman.com>
12 // Copyright (C) Tim Coleman, 2003
14 // Licensed under the MIT/X11 License.
18 using System.Data.SqlTypes;
20 namespace System.Data.OracleClient {
21 public struct OracleBoolean : IComparable
25 public static readonly OracleBoolean False = new OracleBoolean (false);
26 public static readonly OracleBoolean Null = new OracleBoolean ();
27 public static readonly OracleBoolean One = new OracleBoolean (1);
28 public static readonly OracleBoolean True = new OracleBoolean (true);
29 public static readonly OracleBoolean Zero = new OracleBoolean (0);
38 public OracleBoolean (bool value)
44 public OracleBoolean (int value)
49 #endregion // Constructors
54 get { return (!IsNull && !value); }
58 get { return !notNull; }
62 get { return (!IsNull && value); }
66 get { return IsTrue; }
69 #endregion // Properties
73 public static OracleBoolean And (OracleBoolean x, OracleBoolean y)
75 if (x.IsNull || y.IsNull)
76 return OracleBoolean.Null;
77 return new OracleBoolean (x.Value && y.Value);
81 public int CompareTo (object obj)
83 throw new NotImplementedException ();
87 public override bool Equals (object value)
89 throw new NotImplementedException ();
92 public static OracleBoolean Equals (OracleBoolean x, OracleBoolean y)
94 if (x.IsNull || y.IsNull)
95 return OracleBoolean.Null;
96 return new OracleBoolean (x.Value == y.Value);
100 public override int GetHashCode ()
102 throw new NotImplementedException ();
105 public static OracleBoolean NotEquals (OracleBoolean x, OracleBoolean y)
107 if (x.IsNull || y.IsNull)
108 return OracleBoolean.Null;
109 return new OracleBoolean (x.Value != y.Value);
112 public static OracleBoolean OnesComplement (OracleBoolean x)
115 return OracleBoolean.Null;
116 return new OracleBoolean (!x.Value);
119 public static OracleBoolean Or (OracleBoolean x, OracleBoolean y)
121 if (x.IsNull || y.IsNull)
122 return OracleBoolean.Null;
123 return new OracleBoolean (x.Value || y.Value);
127 public static OracleBoolean Parse (string s)
129 throw new NotImplementedException ();
132 public override string ToString ()
143 public static OracleBoolean Xor (OracleBoolean x, OracleBoolean y)
145 if (x.IsNull || y.IsNull)
146 return OracleBoolean.Null;
147 return new OracleBoolean (x.Value ^ y.Value);
150 #endregion // Methods
152 #region Operators and Type Conversions
154 public static OracleBoolean operator & (OracleBoolean x, OracleBoolean y)
159 public static OracleBoolean operator | (OracleBoolean x, OracleBoolean y)
164 public static OracleBoolean operator == (OracleBoolean x, OracleBoolean y)
166 return Equals (x, y);
169 public static OracleBoolean operator ^ (OracleBoolean x, OracleBoolean y)
174 public static bool operator false (OracleBoolean x)
179 public static OracleBoolean operator != (OracleBoolean x, OracleBoolean y)
181 return NotEquals (x, y);
184 public static OracleBoolean operator ! (OracleBoolean x)
186 return OnesComplement (x);
189 public static OracleBoolean operator ~ (OracleBoolean x)
191 return OnesComplement (x);
194 public static bool operator true (OracleBoolean x)
199 public static explicit operator bool (OracleBoolean x)
202 throw new NullReferenceException ();
206 public static explicit operator OracleBoolean (OracleNumber x)
208 return new OracleBoolean ((int) x);
211 public static explicit operator OracleBoolean (string x)
213 return OracleBoolean.Parse (x);
216 public static implicit operator OracleBoolean (bool x)
218 return new OracleBoolean (x);
221 #endregion // Operators and Type Conversions