OracleBinary.cs 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  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 <[email protected]>
  11. //
  12. // Copyright (C) Tim Coleman, 2003
  13. //
  14. // Licensed under the MIT/X11 License.
  15. //
  16. using System;
  17. using System.IO;
  18. using System.Data.SqlTypes;
  19. namespace System.Data.OracleClient {
  20. public struct OracleBinary : IComparable, INullable {
  21. #region Fields
  22. public static readonly OracleBinary Null = new OracleBinary ();
  23. bool notNull;
  24. byte[] value;
  25. #endregion // Fields
  26. #region Constructors
  27. public OracleBinary (byte[] b) {
  28. value = b;
  29. notNull = true;
  30. }
  31. #endregion // Constructors
  32. #region Properties
  33. public bool IsNull {
  34. get { return !notNull; }
  35. }
  36. public byte this [int index] {
  37. get {
  38. if (IsNull)
  39. throw new Exception ("Data is null.");
  40. return value [index];
  41. }
  42. }
  43. public int Length {
  44. get {
  45. if (IsNull)
  46. throw new Exception ("Data is null.");
  47. return value.Length;
  48. }
  49. }
  50. public byte[] Value {
  51. get {
  52. if (IsNull)
  53. throw new Exception ("Data is null.");
  54. return value;
  55. }
  56. }
  57. #endregion // Properties
  58. #region Methods
  59. [MonoTODO]
  60. public int CompareTo (object obj) {
  61. throw new NotImplementedException ();
  62. }
  63. [MonoTODO]
  64. public static OracleBinary Concat (OracleBinary x, OracleBinary y) {
  65. throw new NotImplementedException ();
  66. }
  67. [MonoTODO]
  68. public override bool Equals (object value) {
  69. throw new NotImplementedException ();
  70. }
  71. public static OracleBoolean Equals (OracleBinary x, OracleBinary y) {
  72. if (x.IsNull || y.IsNull)
  73. return OracleBoolean.Null;
  74. return new OracleBoolean (x.Value == y.Value);
  75. }
  76. [MonoTODO]
  77. public override int GetHashCode () {
  78. throw new NotImplementedException ();
  79. }
  80. [MonoTODO]
  81. public static OracleBoolean GreaterThan (OracleBinary x, OracleBinary y) {
  82. if (x.IsNull || y.IsNull)
  83. return OracleBoolean.Null;
  84. //return (x.Value > y.Value);
  85. throw new NotImplementedException ();
  86. }
  87. [MonoTODO]
  88. public static OracleBoolean GreaterThanOrEqual (OracleBinary x, OracleBinary y) {
  89. if (x.IsNull || y.IsNull)
  90. return OracleBoolean.Null;
  91. //return (x.Value >= y.Value);
  92. throw new NotImplementedException ();
  93. }
  94. [MonoTODO]
  95. public static OracleBoolean LessThan (OracleBinary x, OracleBinary y) {
  96. if (x.IsNull || y.IsNull)
  97. return OracleBoolean.Null;
  98. //return (x.Value < y.Value);
  99. throw new NotImplementedException ();
  100. }
  101. [MonoTODO]
  102. public static OracleBoolean LessThanOrEqual (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. [MonoTODO]
  109. public static OracleBoolean NotEquals (OracleBinary x, OracleBinary y) {
  110. if (x.IsNull || y.IsNull)
  111. return OracleBoolean.Null;
  112. //return (x.Value != y.Value);
  113. throw new NotImplementedException ();
  114. }
  115. #endregion // Methods
  116. #region Operators and Type Conversions
  117. public static OracleBinary operator + (OracleBinary x, OracleBinary y) {
  118. return Concat (x, y);
  119. }
  120. public static OracleBoolean operator == (OracleBinary x, OracleBinary y) {
  121. return Equals (x, y);
  122. }
  123. public static OracleBoolean operator > (OracleBinary x, OracleBinary y) {
  124. return GreaterThan (x, y);
  125. }
  126. public static OracleBoolean operator >= (OracleBinary x, OracleBinary y) {
  127. return GreaterThanOrEqual (x, y);
  128. }
  129. public static OracleBoolean operator != (OracleBinary x, OracleBinary y) {
  130. return NotEquals (x, y);
  131. }
  132. public static OracleBoolean operator < (OracleBinary x, OracleBinary y) {
  133. return LessThan (x, y);
  134. }
  135. public static OracleBoolean operator <= (OracleBinary x, OracleBinary y) {
  136. return LessThan (x, y);
  137. }
  138. public static explicit operator byte[] (OracleBinary x) {
  139. return x.Value;
  140. }
  141. public static implicit operator OracleBinary (byte[] b) {
  142. return new OracleBinary (b);
  143. }
  144. #endregion // Operators and Type Conversions
  145. }
  146. }