2 // Mono.Data.SybaseTypes.SybaseInt32
5 // Tim Coleman (tim@timcoleman.com)
7 // (C) Copyright Tim Coleman, 2002
10 using Mono.Data.SybaseClient;
12 using System.Data.SqlTypes;
13 using System.Globalization;
15 namespace Mono.Data.SybaseTypes {
16 public struct SybaseInt32 : INullable, IComparable
23 public static readonly SybaseInt32 MaxValue = new SybaseInt32 (2147483647);
24 public static readonly SybaseInt32 MinValue = new SybaseInt32 (-2147483648);
25 public static readonly SybaseInt32 Null;
26 public static readonly SybaseInt32 Zero = new SybaseInt32 (0);
32 public SybaseInt32(int value)
43 get { return !notNull; }
49 throw new SybaseNullValueException ();
59 public static SybaseInt32 Add (SybaseInt32 x, SybaseInt32 y)
64 public static SybaseInt32 BitwiseAnd(SybaseInt32 x, SybaseInt32 y)
69 public static SybaseInt32 BitwiseOr(SybaseInt32 x, SybaseInt32 y)
74 public int CompareTo(object value)
78 else if (!(value is SybaseInt32))
79 throw new ArgumentException (Locale.GetText ("Value is not a System.Data.SybaseTypes.SybaseInt32"));
80 else if (((SybaseInt32)value).IsNull)
83 return this.value.CompareTo (((SybaseInt32)value).Value);
86 public static SybaseInt32 Divide(SybaseInt32 x, SybaseInt32 y)
91 public override bool Equals(object value)
93 if (!(value is SybaseInt32))
96 return (bool) (this == (SybaseInt32)value);
99 public static SybaseBoolean Equals(SybaseInt32 x, SybaseInt32 y)
104 public override int GetHashCode()
109 public static SybaseBoolean GreaterThan (SybaseInt32 x, SybaseInt32 y)
114 public static SybaseBoolean GreaterThanOrEqual (SybaseInt32 x, SybaseInt32 y)
119 public static SybaseBoolean LessThan(SybaseInt32 x, SybaseInt32 y)
124 public static SybaseBoolean LessThanOrEqual(SybaseInt32 x, SybaseInt32 y)
129 public static SybaseInt32 Mod(SybaseInt32 x, SybaseInt32 y)
134 public static SybaseInt32 Multiply(SybaseInt32 x, SybaseInt32 y)
139 public static SybaseBoolean NotEquals(SybaseInt32 x, SybaseInt32 y)
144 public static SybaseInt32 OnesComplement(SybaseInt32 x)
149 public static SybaseInt32 Parse(string s)
151 return new SybaseInt32 (Int32.Parse (s));
154 public static SybaseInt32 Subtract(SybaseInt32 x, SybaseInt32 y)
159 public SybaseBoolean ToSybaseBoolean()
161 return ((SybaseBoolean)this);
164 public SybaseByte ToSybaseByte()
166 return ((SybaseByte)this);
169 public SybaseDecimal ToSybaseDecimal()
171 return ((SybaseDecimal)this);
174 public SybaseDouble ToSybaseDouble()
176 return ((SybaseDouble)this);
179 public SybaseInt16 ToSybaseInt16()
181 return ((SybaseInt16)this);
184 public SybaseInt64 ToSybaseInt64()
186 return ((SybaseInt64)this);
189 public SybaseMoney ToSybaseMoney()
191 return ((SybaseMoney)this);
194 public SybaseSingle ToSybaseSingle()
196 return ((SybaseSingle)this);
199 public SybaseString ToSybaseString ()
201 return ((SybaseString)this);
204 public override string ToString()
209 return value.ToString ();
212 public static SybaseInt32 Xor(SybaseInt32 x, SybaseInt32 y)
222 public static SybaseInt32 operator + (SybaseInt32 x, SybaseInt32 y)
224 return new SybaseInt32 (x.Value + y.Value);
228 public static SybaseInt32 operator & (SybaseInt32 x, SybaseInt32 y)
230 return new SybaseInt32 (x.Value & y.Value);
234 public static SybaseInt32 operator | (SybaseInt32 x, SybaseInt32 y)
236 return new SybaseInt32 (x.Value | y.Value);
240 public static SybaseInt32 operator / (SybaseInt32 x, SybaseInt32 y)
242 return new SybaseInt32 (x.Value / y.Value);
246 public static SybaseBoolean operator == (SybaseInt32 x, SybaseInt32 y)
248 if (x.IsNull || y.IsNull)
249 return SybaseBoolean.Null;
251 return new SybaseBoolean (x.Value == y.Value);
254 // Bitwise Exclusive-OR (XOR)
255 public static SybaseInt32 operator ^ (SybaseInt32 x, SybaseInt32 y)
257 return new SybaseInt32 (x.Value ^ y.Value);
261 public static SybaseBoolean operator >(SybaseInt32 x, SybaseInt32 y)
263 if (x.IsNull || y.IsNull)
264 return SybaseBoolean.Null;
266 return new SybaseBoolean (x.Value > y.Value);
270 public static SybaseBoolean operator >= (SybaseInt32 x, SybaseInt32 y)
272 if (x.IsNull || y.IsNull)
273 return SybaseBoolean.Null;
275 return new SybaseBoolean (x.Value >= y.Value);
278 // != Inequality Compare
279 public static SybaseBoolean operator != (SybaseInt32 x, SybaseInt32 y)
281 if (x.IsNull || y.IsNull)
282 return SybaseBoolean.Null;
284 return new SybaseBoolean (x.Value != y.Value);
288 public static SybaseBoolean operator < (SybaseInt32 x, SybaseInt32 y)
290 if (x.IsNull || y.IsNull)
291 return SybaseBoolean.Null;
293 return new SybaseBoolean (x.Value < y.Value);
297 public static SybaseBoolean operator <= (SybaseInt32 x, SybaseInt32 y)
299 if (x.IsNull || y.IsNull)
300 return SybaseBoolean.Null;
302 return new SybaseBoolean (x.Value <= y.Value);
306 public static SybaseInt32 operator % (SybaseInt32 x, SybaseInt32 y)
308 return new SybaseInt32 (x.Value % y.Value);
311 // Compute Multiplication
312 public static SybaseInt32 operator * (SybaseInt32 x, SybaseInt32 y)
314 return new SybaseInt32 (x.Value * y.Value);
318 public static SybaseInt32 operator ~ (SybaseInt32 x)
320 return new SybaseInt32 (~x.Value);
324 public static SybaseInt32 operator - (SybaseInt32 x, SybaseInt32 y)
326 return new SybaseInt32 (x.Value - y.Value);
330 public static SybaseInt32 operator - (SybaseInt32 x)
332 return new SybaseInt32 (-x.Value);
336 public static explicit operator SybaseInt32 (SybaseBoolean x)
341 return new SybaseInt32 ((int)x.ByteValue);
344 public static explicit operator SybaseInt32 (SybaseDecimal x)
349 return new SybaseInt32 ((int)x.Value);
352 public static explicit operator SybaseInt32 (SybaseDouble x)
357 return new SybaseInt32 ((int)x.Value);
360 public static explicit operator int (SybaseInt32 x)
365 public static explicit operator SybaseInt32 (SybaseInt64 x)
370 return new SybaseInt32 ((int)x.Value);
373 public static explicit operator SybaseInt32(SybaseMoney x)
378 return new SybaseInt32 ((int)x.Value);
381 public static explicit operator SybaseInt32(SybaseSingle x)
386 return new SybaseInt32 ((int)x.Value);
389 public static explicit operator SybaseInt32(SybaseString x)
391 return SybaseInt32.Parse (x.Value);
394 public static implicit operator SybaseInt32(int x)
396 return new SybaseInt32 (x);
399 public static implicit operator SybaseInt32(SybaseByte x)
404 return new SybaseInt32 ((int)x.Value);
407 public static implicit operator SybaseInt32(SybaseInt16 x)
412 return new SybaseInt32 ((int)x.Value);