2 // Mono.Data.SybaseTypes.SybaseByte
5 // Tim Coleman <tim@timcoleman.com>
7 // Based on System.Data.SqlTypes.SqlByte
10 // (C) Ximian, Inc. 2002-2003
11 // (C) Copyright Tim Coleman, 2002
14 using Mono.Data.SybaseClient;
16 using System.Data.SqlTypes;
17 using System.Globalization;
19 namespace Mono.Data.SybaseTypes {
20 public struct SybaseByte : INullable, IComparable
27 public static readonly SybaseByte MaxValue = new SybaseByte (0xff);
28 public static readonly SybaseByte MinValue = new SybaseByte (0);
29 public static readonly SybaseByte Null;
30 public static readonly SybaseByte Zero = new SybaseByte (0);
36 public SybaseByte (byte value)
47 get { return !notNull; }
53 throw new SybaseNullValueException ();
63 public static SybaseByte Add (SybaseByte x, SybaseByte y)
68 public static SybaseByte BitwiseAnd (SybaseByte x, SybaseByte y)
73 public static SybaseByte BitwiseOr (SybaseByte x, SybaseByte y)
78 public int CompareTo (object value)
82 else if (!(value is SybaseByte))
83 throw new ArgumentException (Locale.GetText ("Value is not a System.Data.SybaseTypes.SybaseByte"));
84 else if (((SybaseByte)value).IsNull)
87 return this.value.CompareTo (((SybaseByte)value).Value);
90 public static SybaseByte Divide (SybaseByte x, SybaseByte y)
95 public override bool Equals (object value)
97 if (!(value is SybaseByte))
100 return (bool) (this == (SybaseByte)value);
103 public static SybaseBoolean Equals (SybaseByte x, SybaseByte y)
108 public override int GetHashCode ()
113 public static SybaseBoolean GreaterThan (SybaseByte x, SybaseByte y)
118 public static SybaseBoolean GreaterThanOrEqual (SybaseByte x, SybaseByte y)
123 public static SybaseBoolean LessThan (SybaseByte x, SybaseByte y)
128 public static SybaseBoolean LessThanOrEqual (SybaseByte x, SybaseByte y)
133 public static SybaseByte Mod (SybaseByte x, SybaseByte y)
138 public static SybaseByte Multiply (SybaseByte x, SybaseByte y)
143 public static SybaseBoolean NotEquals (SybaseByte x, SybaseByte y)
148 public static SybaseByte OnesComplement (SybaseByte x)
153 public static SybaseByte Parse (string s)
155 return new SybaseByte (Byte.Parse (s));
158 public static SybaseByte Subtract (SybaseByte x, SybaseByte y)
163 public SybaseBoolean ToSybaseBoolean ()
165 return ((SybaseBoolean)this);
168 public SybaseDecimal ToSybaseDecimal ()
170 return ((SybaseDecimal)this);
173 public SybaseDouble ToSybaseDouble ()
175 return ((SybaseDouble)this);
178 public SybaseInt16 ToSybaseInt16 ()
180 return ((SybaseInt16)this);
183 public SybaseInt32 ToSybaseInt32 ()
185 return ((SybaseInt32)this);
188 public SybaseInt64 ToSybaseInt64 ()
190 return ((SybaseInt64)this);
193 public SybaseMoney ToSybaseMoney ()
195 return ((SybaseMoney)this);
198 public SybaseSingle ToSybaseSingle ()
200 return ((SybaseSingle)this);
203 public SybaseString ToSybaseString ()
205 return ((SybaseString)this);
208 public override string ToString ()
213 return value.ToString ();
216 public static SybaseByte Xor (SybaseByte x, SybaseByte y)
221 public static SybaseByte operator + (SybaseByte x, SybaseByte y)
223 return new SybaseByte ((byte) (x.Value + y.Value));
226 public static SybaseByte operator & (SybaseByte x, SybaseByte y)
228 return new SybaseByte ((byte) (x.Value & y.Value));
231 public static SybaseByte operator | (SybaseByte x, SybaseByte y)
233 return new SybaseByte ((byte) (x.Value | y.Value));
236 public static SybaseByte operator / (SybaseByte x, SybaseByte y)
238 return new SybaseByte ((byte) (x.Value / y.Value));
241 public static SybaseBoolean operator == (SybaseByte x, SybaseByte y)
243 if (x.IsNull || y.IsNull)
244 return SybaseBoolean.Null;
246 return new SybaseBoolean (x.Value == y.Value);
249 public static SybaseByte operator ^ (SybaseByte x, SybaseByte y)
251 return new SybaseByte ((byte) (x.Value ^ y.Value));
254 public static SybaseBoolean operator > (SybaseByte x, SybaseByte y)
256 if (x.IsNull || y.IsNull)
257 return SybaseBoolean.Null;
259 return new SybaseBoolean (x.Value > y.Value);
262 public static SybaseBoolean operator >= (SybaseByte x, SybaseByte y)
264 if (x.IsNull || y.IsNull)
265 return SybaseBoolean.Null;
267 return new SybaseBoolean (x.Value >= y.Value);
270 public static SybaseBoolean operator != (SybaseByte x, SybaseByte y)
272 if (x.IsNull || y.IsNull)
273 return SybaseBoolean.Null;
275 return new SybaseBoolean (!(x.Value == y.Value));
278 public static SybaseBoolean operator < (SybaseByte x, SybaseByte y)
280 if (x.IsNull || y.IsNull)
281 return SybaseBoolean.Null;
283 return new SybaseBoolean (x.Value < y.Value);
286 public static SybaseBoolean operator <= (SybaseByte x, SybaseByte y)
288 if (x.IsNull || y.IsNull)
289 return SybaseBoolean.Null;
291 return new SybaseBoolean (x.Value <= y.Value);
294 public static SybaseByte operator % (SybaseByte x, SybaseByte y)
296 return new SybaseByte ((byte) (x.Value % y.Value));
299 public static SybaseByte operator * (SybaseByte x, SybaseByte y)
301 return new SybaseByte ((byte) (x.Value * y.Value));
304 public static SybaseByte operator ~ (SybaseByte x)
306 return new SybaseByte ((byte) ~x.Value);
309 public static SybaseByte operator - (SybaseByte x, SybaseByte y)
311 return new SybaseByte ((byte) (x.Value - y.Value));
314 public static explicit operator SybaseByte (SybaseBoolean x)
319 return new SybaseByte (x.ByteValue);
322 public static explicit operator byte (SybaseByte x)
327 public static explicit operator SybaseByte (SybaseDecimal x)
332 return new SybaseByte ((byte)x.Value);
335 public static explicit operator SybaseByte (SybaseDouble x)
340 return new SybaseByte ((byte)x.Value);
343 public static explicit operator SybaseByte (SybaseInt16 x)
348 return new SybaseByte ((byte)x.Value);
351 public static explicit operator SybaseByte (SybaseInt32 x)
356 return new SybaseByte ((byte)x.Value);
359 public static explicit operator SybaseByte (SybaseInt64 x)
364 return new SybaseByte ((byte)x.Value);
367 public static explicit operator SybaseByte (SybaseMoney x)
372 return new SybaseByte ((byte)x.Value);
375 public static explicit operator SybaseByte (SybaseSingle x)
380 return new SybaseByte ((byte)x.Value);
384 public static explicit operator SybaseByte (SybaseString x)
386 return SybaseByte.Parse (x.Value);
389 public static implicit operator SybaseByte (byte x)
391 return new SybaseByte (x);