rhodes 2.0.3 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1413) hide show
  1. data/CHANGELOG +17 -0
  2. data/Rakefile +189 -110
  3. data/bin/rhodes +4 -0
  4. data/bin/rhodes.bat +1 -0
  5. data/lib/build/compileERB/default.rb +1 -1
  6. data/lib/build/jake.rb +54 -2
  7. data/lib/extensions/barcode/ext/barcode/platform/android/Rakefile +84 -0
  8. data/lib/extensions/barcode/ext/barcode/platform/android/jni/src/imageprovider.cpp +164 -0
  9. data/lib/extensions/barcode/ext/barcode/platform/bb/Barcode.files +146 -0
  10. data/lib/extensions/barcode/ext/barcode/platform/bb/Rakefile +93 -0
  11. data/lib/extensions/barcode/ext/barcode/platform/bb/Rhode/com/rho/rubyext/BarcodeRecognizer.java +177 -0
  12. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/AUTHORS +35 -0
  13. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/COPYING +201 -0
  14. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/README +11 -0
  15. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/BarcodeFormat.java +88 -0
  16. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/Binarizer.java +80 -0
  17. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/BinaryBitmap.java +128 -0
  18. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/ChecksumException.java +37 -0
  19. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/DecodeHintType.java +79 -0
  20. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/EncodeHintType.java +39 -0
  21. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/FormatException.java +38 -0
  22. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/LuminanceSource.java +113 -0
  23. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/MultiFormatReader.java +164 -0
  24. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/MultiFormatWriter.java +55 -0
  25. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/NotFoundException.java +37 -0
  26. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/Reader.java +64 -0
  27. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/ReaderException.java +98 -0
  28. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/Result.java +102 -0
  29. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/ResultMetadataType.java +63 -0
  30. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/ResultPoint.java +127 -0
  31. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/ResultPointCallback.java +29 -0
  32. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/Writer.java +54 -0
  33. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/WriterException.java +35 -0
  34. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/client/result/AbstractDoCoMoResultParser.java +39 -0
  35. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/client/result/AddressBookAUResultParser.java +73 -0
  36. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/client/result/AddressBookDoCoMoResultParser.java +85 -0
  37. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/client/result/AddressBookParsedResult.java +122 -0
  38. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/client/result/BizcardResultParser.java +94 -0
  39. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/client/result/BookmarkDoCoMoResultParser.java +46 -0
  40. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/client/result/CalendarParsedResult.java +130 -0
  41. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/client/result/EmailAddressParsedResult.java +61 -0
  42. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/client/result/EmailAddressResultParser.java +64 -0
  43. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/client/result/EmailDoCoMoResultParser.java +87 -0
  44. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/client/result/GeoParsedResult.java +107 -0
  45. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/client/result/GeoResultParser.java +64 -0
  46. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/client/result/ISBNParsedResult.java +39 -0
  47. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/client/result/ISBNResultParser.java +54 -0
  48. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/client/result/ParsedResult.java +73 -0
  49. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/client/result/ParsedResultType.java +52 -0
  50. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/client/result/ProductParsedResult.java +49 -0
  51. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/client/result/ProductResultParser.java +66 -0
  52. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/client/result/ResultParser.java +313 -0
  53. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/client/result/SMSMMSResultParser.java +103 -0
  54. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/client/result/SMSParsedResult.java +75 -0
  55. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/client/result/TelParsedResult.java +54 -0
  56. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/client/result/TelResultParser.java +44 -0
  57. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/client/result/TextParsedResult.java +48 -0
  58. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/client/result/URIParsedResult.java +113 -0
  59. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/client/result/URIResultParser.java +87 -0
  60. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/client/result/URLTOResultParser.java +47 -0
  61. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/client/result/VCardResultParser.java +195 -0
  62. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/client/result/VEventResultParser.java +56 -0
  63. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/client/result/optional/AbstractNDEFResultParser.java +45 -0
  64. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/client/result/optional/NDEFRecord.java +87 -0
  65. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/client/result/optional/NDEFSmartPosterParsedResult.java +63 -0
  66. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/client/result/optional/NDEFSmartPosterResultParser.java +81 -0
  67. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/client/result/optional/NDEFTextResultParser.java +57 -0
  68. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/client/result/optional/NDEFURIResultParser.java +95 -0
  69. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/common/BitArray.java +174 -0
  70. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/common/BitMatrix.java +190 -0
  71. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/common/BitSource.java +97 -0
  72. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/common/ByteArray.java +95 -0
  73. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/common/ByteMatrix.java +93 -0
  74. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/common/CharacterSetECI.java +110 -0
  75. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/common/Collections.java +53 -0
  76. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/common/Comparator.java +27 -0
  77. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/common/DecoderResult.java +63 -0
  78. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/common/DefaultGridSampler.java +81 -0
  79. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/common/DetectorResult.java +46 -0
  80. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/common/ECI.java +52 -0
  81. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/common/GlobalHistogramBinarizer.java +196 -0
  82. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/common/GridSampler.java +171 -0
  83. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/common/HybridBinarizer.java +158 -0
  84. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/common/PerspectiveTransform.java +148 -0
  85. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/common/detector/MonochromeRectangleDetector.java +209 -0
  86. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/common/reedsolomon/GF256.java +142 -0
  87. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/common/reedsolomon/GF256Poly.java +263 -0
  88. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/common/reedsolomon/ReedSolomonDecoder.java +189 -0
  89. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/common/reedsolomon/ReedSolomonEncoder.java +75 -0
  90. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/common/reedsolomon/ReedSolomonException.java +31 -0
  91. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/datamatrix/DataMatrixReader.java +159 -0
  92. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/datamatrix/decoder/BitMatrixParser.java +446 -0
  93. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/datamatrix/decoder/DataBlock.java +118 -0
  94. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/datamatrix/decoder/DecodedBitStreamParser.java +456 -0
  95. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/datamatrix/decoder/Decoder.java +134 -0
  96. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/datamatrix/decoder/Version.java +242 -0
  97. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/datamatrix/detector/Detector.java +283 -0
  98. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/multi/ByQuadrantReader.java +96 -0
  99. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/multi/GenericMultipleBarcodeReader.java +156 -0
  100. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/multi/MultipleBarcodeReader.java +37 -0
  101. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/multi/qrcode/QRCodeMultiReader.java +80 -0
  102. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/multi/qrcode/detector/MultiDetector.java +72 -0
  103. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/multi/qrcode/detector/MultiFinderPatternFinder.java +324 -0
  104. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/oned/Code128Reader.java +473 -0
  105. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/oned/Code39Reader.java +330 -0
  106. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/oned/EAN13Reader.java +135 -0
  107. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/oned/EAN13Writer.java +82 -0
  108. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/oned/EAN8Reader.java +72 -0
  109. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/oned/EAN8Writer.java +77 -0
  110. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/oned/ITFReader.java +348 -0
  111. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/oned/MultiFormatOneDReader.java +96 -0
  112. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/oned/MultiFormatUPCEANReader.java +107 -0
  113. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/oned/OneDReader.java +297 -0
  114. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/oned/UPCAReader.java +75 -0
  115. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/oned/UPCEANReader.java +332 -0
  116. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/oned/UPCEANWriter.java +129 -0
  117. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/oned/UPCEReader.java +153 -0
  118. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/oned/rss/DataCharacter.java +37 -0
  119. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/oned/rss/FinderPattern.java +48 -0
  120. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/oned/rss/Pair.java +32 -0
  121. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/oned/rss/RSS14Reader.java +557 -0
  122. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/oned/rss/RSSUtils.java +155 -0
  123. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/pdf417/PDF417Reader.java +149 -0
  124. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/pdf417/decoder/BitMatrixParser.java +1157 -0
  125. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/pdf417/decoder/DecodedBitStreamParser.java +627 -0
  126. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/pdf417/decoder/Decoder.java +149 -0
  127. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/pdf417/detector/Detector.java +501 -0
  128. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/qrcode/QRCodeReader.java +164 -0
  129. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/qrcode/QRCodeWriter.java +151 -0
  130. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/qrcode/decoder/BitMatrixParser.java +203 -0
  131. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/qrcode/decoder/DataBlock.java +123 -0
  132. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/qrcode/decoder/DataMask.java +155 -0
  133. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/qrcode/decoder/DecodedBitStreamParser.java +361 -0
  134. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/qrcode/decoder/Decoder.java +150 -0
  135. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/qrcode/decoder/ErrorCorrectionLevel.java +86 -0
  136. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/qrcode/decoder/FormatInformation.java +171 -0
  137. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/qrcode/decoder/Mode.java +112 -0
  138. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/qrcode/decoder/Version.java +586 -0
  139. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/qrcode/detector/AlignmentPattern.java +48 -0
  140. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/qrcode/detector/AlignmentPatternFinder.java +279 -0
  141. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/qrcode/detector/Detector.java +396 -0
  142. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/qrcode/detector/FinderPattern.java +63 -0
  143. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/qrcode/detector/FinderPatternFinder.java +540 -0
  144. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/qrcode/detector/FinderPatternInfo.java +49 -0
  145. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/qrcode/encoder/BitVector.java +155 -0
  146. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/qrcode/encoder/BlockPair.java +39 -0
  147. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/qrcode/encoder/Encoder.java +568 -0
  148. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/qrcode/encoder/MaskUtil.java +219 -0
  149. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/qrcode/encoder/MatrixUtil.java +524 -0
  150. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/core/src/com/google/zxing/qrcode/encoder/QRCode.java +240 -0
  151. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/javame/src/com/google/zxing/client/j2me/AdvancedMultimediaManager.java +153 -0
  152. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/javame/src/com/google/zxing/client/j2me/DefaultMultimediaManager.java +40 -0
  153. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/javame/src/com/google/zxing/client/j2me/LCDUIImageLuminanceSource.java +95 -0
  154. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/javame/src/com/google/zxing/client/j2me/MANIFEST.MF.template +11 -0
  155. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/javame/src/com/google/zxing/client/j2me/Menu.java +96 -0
  156. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/javame/src/com/google/zxing/client/j2me/MultimediaManager.java +39 -0
  157. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/javame/src/com/google/zxing/client/j2me/SnapshotThread.java +143 -0
  158. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/javame/src/com/google/zxing/client/j2me/SplashThread.java +127 -0
  159. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/javame/src/com/google/zxing/client/j2me/VideoCanvas.java +71 -0
  160. data/lib/extensions/barcode/ext/barcode/platform/bb/ZXing/javame/src/com/google/zxing/client/j2me/ZXingMIDlet.java +292 -0
  161. data/lib/extensions/barcode/ext/barcode/platform/bb/barcode.jdp +193 -0
  162. data/lib/extensions/barcode/ext/barcode/platform/bb/run.bat +3 -0
  163. data/lib/extensions/barcode/ext/barcode/platform/iphone/Barcode.xcodeproj/project.pbxproj +596 -0
  164. data/lib/extensions/barcode/ext/barcode/platform/iphone/Barcode_Prefix.pch +7 -0
  165. data/lib/extensions/barcode/ext/barcode/platform/iphone/Classes/ImageProvider.cpp +25 -0
  166. data/lib/extensions/barcode/ext/barcode/platform/iphone/Classes/ImageProvider.h +15 -0
  167. data/lib/extensions/barcode/ext/barcode/platform/iphone/Classes/ImageProvider.mm +159 -0
  168. data/lib/extensions/barcode/ext/barcode/platform/iphone/Rakefile +61 -0
  169. data/lib/extensions/barcode/ext/barcode/platform/wm/Barcode.vcproj +271 -0
  170. data/lib/extensions/barcode/ext/barcode/platform/wm/Rakefile +46 -0
  171. data/lib/extensions/barcode/ext/barcode/platform/wm/src/wm_imageprovider.cpp +159 -0
  172. data/lib/extensions/barcode/ext/barcode/shared/ruby/barcode.i +8 -0
  173. data/lib/extensions/barcode/ext/barcode/shared/ruby/barcode_wrap.c +2200 -0
  174. data/lib/extensions/barcode/ext/barcode/shared/src/rho_imageprovider.h +16 -0
  175. data/lib/extensions/barcode/ext/barcode/shared/src/zbar.c +69 -0
  176. data/lib/extensions/barcode/ext/barcode/shared/zbar/config.h +264 -0
  177. data/lib/extensions/barcode/ext/barcode/shared/zbar/inttypes.h +259 -0
  178. data/lib/extensions/barcode/ext/barcode/shared/zbar/rho_bridge.c +29 -0
  179. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/COPYING +27 -0
  180. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/README +95 -0
  181. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/include/zbar/Decoder.h +201 -0
  182. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/include/zbar/Exception.h +187 -0
  183. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/include/zbar/Image.h +321 -0
  184. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/include/zbar/ImageScanner.h +130 -0
  185. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/include/zbar/Processor.h +223 -0
  186. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/include/zbar/QZBar.h +169 -0
  187. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/include/zbar/QZBarImage.h +72 -0
  188. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/include/zbar/Scanner.h +162 -0
  189. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/include/zbar/Symbol.h +529 -0
  190. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/include/zbar/Video.h +170 -0
  191. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/include/zbar/Window.h +136 -0
  192. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/include/zbar/ZBarCaptureReader.h +99 -0
  193. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/include/zbar/ZBarImage.h +69 -0
  194. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/include/zbar/ZBarImageScanner.h +50 -0
  195. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/include/zbar/ZBarReaderController.h +142 -0
  196. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/include/zbar/ZBarReaderView.h +119 -0
  197. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/include/zbar/ZBarReaderViewController.h +99 -0
  198. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/include/zbar/ZBarSymbol.h +67 -0
  199. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/include/zbar/zbargtk.h +205 -0
  200. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/include/zbar.h +1415 -0
  201. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/config.c +157 -0
  202. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/convert.c +1172 -0
  203. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/debug.h +87 -0
  204. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/decoder/code128.c +528 -0
  205. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/decoder/code128.h +49 -0
  206. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/decoder/code39.c +335 -0
  207. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/decoder/code39.h +50 -0
  208. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/decoder/ean.c +660 -0
  209. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/decoder/ean.h +86 -0
  210. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/decoder/i25.c +243 -0
  211. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/decoder/i25.h +50 -0
  212. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/decoder/pdf417.c +223 -0
  213. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/decoder/pdf417.h +49 -0
  214. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/decoder/pdf417_hash.h +545 -0
  215. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/decoder/qr_finder.c +102 -0
  216. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/decoder/qr_finder.h +23 -0
  217. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/decoder.c +409 -0
  218. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/decoder.h +219 -0
  219. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/error.c +183 -0
  220. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/error.h +226 -0
  221. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/event.h +62 -0
  222. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/image.c +358 -0
  223. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/image.h +142 -0
  224. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/img_scanner.c +819 -0
  225. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/img_scanner.h +38 -0
  226. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/jpeg.c +241 -0
  227. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/mutex.h +160 -0
  228. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/processor/lock.c +227 -0
  229. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/processor/null.c +62 -0
  230. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/processor/posix.c +337 -0
  231. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/processor/posix.h +138 -0
  232. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/processor/win.c +335 -0
  233. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/processor/x.c +269 -0
  234. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/processor.c +700 -0
  235. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/processor.h +126 -0
  236. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/qrcode/bch15_5.c +184 -0
  237. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/qrcode/bch15_5.h +20 -0
  238. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/qrcode/binarize.c +639 -0
  239. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/qrcode/binarize.h +17 -0
  240. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/qrcode/isaac.c +139 -0
  241. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/qrcode/isaac.h +41 -0
  242. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/qrcode/qrdec.c +3957 -0
  243. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/qrcode/qrdec.h +168 -0
  244. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/qrcode/qrdectxt.c +405 -0
  245. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/qrcode/rs.c +799 -0
  246. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/qrcode/rs.h +66 -0
  247. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/qrcode/util.c +140 -0
  248. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/qrcode/util.h +48 -0
  249. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/qrcode.h +66 -0
  250. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/refcnt.c +48 -0
  251. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/refcnt.h +96 -0
  252. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/scanner.c +317 -0
  253. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/svg.c +184 -0
  254. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/svg.h +65 -0
  255. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/symbol.c +325 -0
  256. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/symbol.h +93 -0
  257. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/thread.h +127 -0
  258. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/timer.h +151 -0
  259. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/unistd.h +1 -0
  260. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/video/null.c +37 -0
  261. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/video/v4l1.c +435 -0
  262. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/video/v4l2.c +509 -0
  263. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/video/vfw.c +494 -0
  264. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/video.c +384 -0
  265. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/video.h +160 -0
  266. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/window/dib.c +75 -0
  267. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/window/null.c +103 -0
  268. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/window/vfw.c +104 -0
  269. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/window/win.c +334 -0
  270. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/window/win.h +46 -0
  271. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/window/x.c +356 -0
  272. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/window/x.h +74 -0
  273. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/window/ximage.c +219 -0
  274. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/window/xv.c +273 -0
  275. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/window.c +318 -0
  276. data/lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/window.h +144 -0
  277. data/lib/extensions/barcode/ext/build +17 -0
  278. data/lib/extensions/barcode/ext/build.bat +29 -0
  279. data/lib/extensions/barcode/ext.yml +3 -0
  280. data/lib/extensions/crypt/crypt/rijndael.rb +4 -0
  281. data/lib/extensions/digest/ext/Rakefile +18 -0
  282. data/lib/extensions/digest/ext/digest.vcproj +134 -0
  283. data/lib/extensions/digest-md5/ext/Rakefile +18 -0
  284. data/lib/extensions/digest-md5/ext/digest-md5.vcproj +132 -0
  285. data/lib/extensions/digest-md5/ext/md5init.c +2 -2
  286. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/expectations/expectations.rb +0 -0
  287. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/expectations/should.rb +0 -0
  288. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/expectations.rb +0 -0
  289. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/fileutils.rb +0 -0
  290. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/guards/background.rb +0 -0
  291. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/guards/bug.rb +0 -0
  292. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/guards/compliance.rb +0 -0
  293. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/guards/conflict.rb +0 -0
  294. data/{spec/framework_spec/app → lib/extensions/mspec}/mspec/guards/endian.rb +0 -0
  295. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/guards/extensions.rb +0 -0
  296. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/guards/guard.rb +0 -0
  297. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/guards/noncompliance.rb +0 -0
  298. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/guards/platform.rb +0 -0
  299. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/guards/quarantine.rb +0 -0
  300. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/guards/runner.rb +0 -0
  301. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/guards/superuser.rb +0 -0
  302. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/guards/support.rb +0 -0
  303. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/guards/tty.rb +0 -0
  304. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/guards/version.rb +0 -0
  305. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/guards.rb +0 -0
  306. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/helpers/argv.rb +0 -0
  307. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/helpers/bignum.rb +0 -0
  308. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/helpers/const_lookup.rb +0 -0
  309. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/helpers/ducktype.rb +0 -0
  310. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/helpers/enumerator_class.rb +0 -0
  311. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/helpers/environment.rb +0 -0
  312. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/helpers/fixture.rb +0 -0
  313. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/helpers/flunk.rb +0 -0
  314. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/helpers/fs.rb +0 -0
  315. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/helpers/hash.rb +0 -0
  316. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/helpers/infinity.rb +0 -0
  317. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/helpers/io.rb +0 -0
  318. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/helpers/language_version.rb +0 -0
  319. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/helpers/metaclass.rb +0 -0
  320. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/helpers/mock_to_path.rb +0 -0
  321. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/helpers/nan.rb +0 -0
  322. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/helpers/ruby_exe.rb +0 -0
  323. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/helpers/scratch.rb +0 -0
  324. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/helpers/tmp.rb +0 -0
  325. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/helpers.rb +0 -0
  326. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/matchers/base.rb +0 -0
  327. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/matchers/be_an_instance_of.rb +0 -0
  328. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/matchers/be_ancestor_of.rb +0 -0
  329. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/matchers/be_close.rb +0 -0
  330. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/matchers/be_empty.rb +0 -0
  331. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/matchers/be_false.rb +0 -0
  332. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/matchers/be_kind_of.rb +0 -0
  333. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/matchers/be_nil.rb +0 -0
  334. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/matchers/be_true.rb +0 -0
  335. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/matchers/complain.rb +0 -0
  336. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/matchers/eql.rb +0 -0
  337. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/matchers/equal.rb +0 -0
  338. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/matchers/equal_element.rb +0 -0
  339. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/matchers/equal_utf16.rb +0 -0
  340. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/matchers/have_constant.rb +0 -0
  341. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/matchers/have_instance_method.rb +0 -0
  342. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/matchers/have_method.rb +0 -0
  343. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/matchers/have_private_instance_method.rb +0 -0
  344. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/matchers/have_public_instance_method.rb +0 -0
  345. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/matchers/include.rb +0 -0
  346. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/matchers/match_yaml.rb +0 -0
  347. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/matchers/method.rb +0 -0
  348. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/matchers/output.rb +0 -0
  349. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/matchers/output_to_fd.rb +0 -0
  350. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/matchers/raise_error.rb +0 -0
  351. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/matchers/respond_to.rb +0 -0
  352. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/matchers/stringsymboladapter.rb +0 -0
  353. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/matchers.rb +0 -0
  354. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/mocks/mock.rb +0 -0
  355. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/mocks/object.rb +0 -0
  356. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/mocks/proxy.rb +0 -0
  357. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/mocks.rb +0 -0
  358. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/pp.rb +0 -0
  359. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/runner/actions/debug.rb +0 -0
  360. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/runner/actions/filter.rb +0 -0
  361. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/runner/actions/gdb.rb +0 -0
  362. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/runner/actions/tag.rb +0 -0
  363. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/runner/actions/taglist.rb +0 -0
  364. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/runner/actions/tagpurge.rb +0 -0
  365. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/runner/actions/tally.rb +0 -0
  366. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/runner/actions/timer.rb +0 -0
  367. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/runner/actions.rb +0 -0
  368. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/runner/context.rb +0 -0
  369. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/runner/example.rb +0 -0
  370. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/runner/exception.rb +0 -0
  371. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/runner/filters/match.rb +0 -0
  372. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/runner/filters/profile.rb +0 -0
  373. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/runner/filters/regexp.rb +0 -0
  374. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/runner/filters/tag.rb +0 -0
  375. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/runner/filters.rb +0 -0
  376. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/runner/formatters/describe.rb +0 -0
  377. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/runner/formatters/dotted.rb +0 -0
  378. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/runner/formatters/file.rb +0 -0
  379. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/runner/formatters/html.rb +0 -0
  380. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/runner/formatters/method.rb +0 -0
  381. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/runner/formatters/specdoc.rb +0 -0
  382. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/runner/formatters/spinner.rb +0 -0
  383. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/runner/formatters/summary.rb +0 -0
  384. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/runner/formatters/unit.rb +0 -0
  385. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/runner/formatters/yaml.rb +0 -0
  386. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/runner/formatters.rb +0 -0
  387. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/runner/mspec.rb +0 -0
  388. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/runner/object.rb +0 -0
  389. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/runner/shared.rb +0 -0
  390. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/runner/tag.rb +0 -0
  391. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/runner.rb +0 -0
  392. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/utils/name_map.rb +0 -0
  393. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/utils/options.rb +0 -0
  394. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/utils/ruby_name.rb +0 -0
  395. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/utils/script.rb +0 -0
  396. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/utils/version.rb +0 -0
  397. data/{res/generators/templates/spec/app → lib/extensions/mspec}/mspec/version.rb +0 -0
  398. data/lib/extensions/rexml/rexml/parsers/xpathparser.rb +2 -1
  399. data/lib/extensions/rexml/rexml/xpath_parser.rb +10 -5
  400. data/lib/extensions/rhospec/rhospec.rb +348 -0
  401. data/lib/extensions/rhoxml/rexml/attribute.rb +188 -0
  402. data/lib/extensions/rhoxml/rexml/element.rb +57 -1
  403. data/lib/extensions/rhoxml/rexml/parsers/streamparser.rb +2 -2
  404. data/lib/extensions/rhoxml/rexml/xpath_parser.rb +10 -5
  405. data/lib/framework/builtinME.rb +40 -2
  406. data/lib/framework/rho/render.rb +19 -15
  407. data/lib/framework/rho/rho.rb +88 -50
  408. data/lib/framework/rho/rhoapplication.rb +11 -3
  409. data/lib/framework/rho/rhocontact.rb +5 -2
  410. data/lib/framework/rho/rhosupport.rb +2 -2
  411. data/lib/framework/rho/rhoutils.rb +6 -4
  412. data/lib/framework/rhodes.rb +2 -2
  413. data/lib/framework/rhoframework.rb +2 -1
  414. data/lib/framework/rholang/lang_es.rb +120 -0
  415. data/lib/framework/rholang/localization_simplified.rb +7 -10
  416. data/lib/framework/rholang/rhoerror_es.rb +36 -0
  417. data/lib/framework/rholang/rhomsg_es.rb +28 -0
  418. data/lib/framework/rhom/rhom_db_adapter.rb +113 -33
  419. data/lib/framework/rhom/rhom_object_factory.rb +347 -134
  420. data/lib/framework/version.rb +2 -2
  421. data/lib/rhodes.rb +2 -2
  422. data/platform/android/Rhodes/AndroidManifest.xml +3 -2
  423. data/platform/android/Rhodes/gen/com/rhomobile/rhodes/R.java +40 -28
  424. data/platform/android/Rhodes/jni/include/rhodes/JNIRhodes.h +2 -0
  425. data/platform/android/Rhodes/jni/include/rhodes/RhoClassFactory.h +0 -2
  426. data/platform/android/Rhodes/jni/include/rhodes/details/rhojava.inc +6 -1
  427. data/platform/android/Rhodes/jni/include/rhodes/jni/com_rhomobile_rhodes_RhodesService.h +155 -0
  428. data/platform/android/Rhodes/jni/include/rhodes/jni/com_rhomobile_rhodes_file_RhoFileApi.h +55 -0
  429. data/platform/android/Rhodes/jni/include/rhodes/jni/com_rhomobile_rhodes_geolocation_GeoLocationImpl.h +8 -0
  430. data/platform/android/Rhodes/jni/include/rhodes/jni/com_rhomobile_rhodes_signature_Signature.h +21 -0
  431. data/platform/android/Rhodes/jni/include/rhodes.h +3 -0
  432. data/platform/android/Rhodes/jni/src/RhoClassFactory.cpp +0 -6
  433. data/platform/android/Rhodes/jni/src/callbacks.cpp +5 -5
  434. data/platform/android/Rhodes/jni/src/fileapi.cpp +987 -0
  435. data/platform/android/Rhodes/jni/src/geolocation.cpp +13 -0
  436. data/platform/android/Rhodes/jni/src/logconf.cpp +1 -1
  437. data/platform/android/Rhodes/jni/src/nativeview.cpp +35 -0
  438. data/platform/android/Rhodes/jni/src/phonebook.cpp +2 -0
  439. data/platform/android/Rhodes/jni/src/rhodes.cpp +111 -29
  440. data/platform/android/Rhodes/jni/src/signature.cpp +33 -0
  441. data/platform/android/Rhodes/jni/src/webview.cpp +6 -0
  442. data/platform/android/Rhodes/res/drawable/signature_cancel.png +0 -0
  443. data/platform/android/Rhodes/res/drawable/signature_clear.png +0 -0
  444. data/platform/android/Rhodes/res/drawable/signature_ok.png +0 -0
  445. data/platform/android/Rhodes/res/layout/signature.xml +54 -0
  446. data/platform/android/Rhodes/res/values/strings.xml +22 -20
  447. data/platform/android/Rhodes/src/com/rhomobile/rhodes/AndroidR.java +8 -0
  448. data/platform/android/Rhodes/src/com/rhomobile/rhodes/NativeBar.java +6 -5
  449. data/platform/android/Rhodes/src/com/rhomobile/rhodes/NavBar.java +6 -4
  450. data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhoActivity.java +18 -0
  451. data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhoMenu.java +4 -4
  452. data/platform/android/Rhodes/src/com/rhomobile/rhodes/Rhodes.java +26 -689
  453. data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesService.java +599 -0
  454. data/platform/android/Rhodes/src/com/rhomobile/rhodes/RingtoneManager.java +1 -1
  455. data/platform/android/Rhodes/src/com/rhomobile/rhodes/SplashScreen.java +7 -16
  456. data/platform/android/Rhodes/src/com/rhomobile/rhodes/Utils.java +30 -14
  457. data/platform/android/Rhodes/src/com/rhomobile/rhodes/WebView.java +11 -27
  458. data/platform/android/Rhodes/src/com/rhomobile/rhodes/alert/Alert.java +24 -21
  459. data/platform/android/Rhodes/src/com/rhomobile/rhodes/camera/Camera.java +8 -8
  460. data/platform/android/Rhodes/src/com/rhomobile/rhodes/camera/FileList.java +5 -5
  461. data/platform/android/Rhodes/src/com/rhomobile/rhodes/camera/ImageCapture.java +27 -5
  462. data/platform/android/Rhodes/src/com/rhomobile/rhodes/camera/ImageCaptureCallback.java +4 -1
  463. data/platform/android/Rhodes/src/com/rhomobile/rhodes/datetime/DateTimePicker.java +4 -5
  464. data/platform/android/Rhodes/src/com/rhomobile/rhodes/datetime/DateTimePickerScreen.java +4 -4
  465. data/platform/android/Rhodes/src/com/rhomobile/rhodes/file/RhoFileApi.java +192 -0
  466. data/platform/android/Rhodes/src/com/rhomobile/rhodes/geolocation/GeoLocation.java +18 -1
  467. data/platform/android/Rhodes/src/com/rhomobile/rhodes/geolocation/GeoLocationImpl.java +48 -6
  468. data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/MainView.java +2 -0
  469. data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/SimpleMainView.java +39 -40
  470. data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/TabbedMainView.java +47 -17
  471. data/platform/android/Rhodes/src/com/rhomobile/rhodes/mapview/MapView.java +23 -11
  472. data/platform/android/Rhodes/src/com/rhomobile/rhodes/nativeview/RhoNativeViewManager.java +14 -0
  473. data/platform/android/Rhodes/src/com/rhomobile/rhodes/phonebook/ContactAccessorNew.java +5 -5
  474. data/platform/android/Rhodes/src/com/rhomobile/rhodes/phonebook/ContactAccessorOld.java +4 -7
  475. data/platform/android/Rhodes/src/com/rhomobile/rhodes/phonebook/Phonebook.java +2 -1
  476. data/platform/android/Rhodes/src/com/rhomobile/rhodes/signature/ImageCapture.java +182 -0
  477. data/platform/android/Rhodes/src/com/rhomobile/rhodes/signature/Signature.java +89 -0
  478. data/platform/android/Rhodes/src/com/rhomobile/rhodes/signature/SignatureView.java +286 -0
  479. data/platform/android/Rhodes/src/com/rhomobile/rhodes/ui/LogOptionsDialog.java +12 -8
  480. data/platform/android/Rhodes/src/com/rhomobile/rhodes/ui/LogViewDialog.java +5 -5
  481. data/platform/android/Rhodes/src/com/rhomobile/rhodes/util/PerformOnUiThread.java +55 -0
  482. data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/ChromeClientNew.java +14 -0
  483. data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/ChromeClientOld.java +37 -0
  484. data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/RhoWebSettings.java +10 -0
  485. data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/RhoWebSettingsNew.java +17 -0
  486. data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/RhoWebSettingsOld.java +29 -0
  487. data/platform/android/build/RhodesSRC_build.files +13 -1
  488. data/platform/android/build/android.rake +136 -69
  489. data/platform/android/build/androidcommon.rb +1 -1
  490. data/platform/android/build/librhocommon_build.files +2 -3
  491. data/platform/android/build/librhodes_build.files +3 -1
  492. data/platform/android/build/librhomain_build.files +1 -0
  493. data/platform/android/build/libruby_build.files +1 -0
  494. data/platform/bb/Hsqldb/src/com/rho/db/HsqlDBResult.java +1 -1
  495. data/platform/bb/RubyVM/RubyVM.jdp +415 -416
  496. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/rho/Capabilities.java +0 -0
  497. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/rho/DateTimeTokenizer.java +0 -0
  498. data/platform/bb/RubyVM/src/com/rho/Extensions.java +11 -0
  499. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/rho/FilePath.java +0 -0
  500. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/rho/IRhoLogSink.java +0 -0
  501. data/platform/bb/RubyVM/src/com/rho/IRhoRubyHelper.java +35 -0
  502. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/rho/Mutex.java +0 -0
  503. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/rho/Properties.java +0 -0
  504. data/platform/bb/RubyVM/src/com/rho/RhoAppAdapter.java +96 -0
  505. data/platform/bb/RubyVM/src/com/rho/RhoClassFactory.java +125 -0
  506. data/platform/bb/RubyVM/src/com/rho/RhoConf.java +403 -0
  507. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/rho/RhoEmptyLogger.java +0 -0
  508. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/rho/RhoEmptyProfiler.java +0 -0
  509. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/rho/RhoLogConf.java +0 -0
  510. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/rho/RhoLogFileSink.java +0 -0
  511. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/rho/RhoLogOutputSink.java +0 -0
  512. data/platform/bb/RubyVM/src/com/rho/RhoLogger.java +278 -0
  513. data/platform/bb/RubyVM/src/com/rho/RhoParamArray.java +33 -0
  514. data/platform/bb/RubyVM/src/com/rho/RhoParams.java +62 -0
  515. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/rho/RhoProfiler.java +0 -0
  516. data/platform/bb/RubyVM/src/com/rho/RhoRuby.java +257 -0
  517. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/rho/RhoThread.java +0 -0
  518. data/platform/bb/RubyVM/src/com/rho/RhodesApp.java +307 -0
  519. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/rho/SplashScreen.java +0 -0
  520. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/rho/Sprintf.java +0 -0
  521. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/rho/StringScanner.java +0 -0
  522. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/rho/TestProfiler.java +0 -0
  523. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/rho/TestRhoLog.java +0 -0
  524. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/rho/ThreadQueue.java +0 -0
  525. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/rho/TimeInterval.java +0 -0
  526. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/rho/Tokenizer.java +0 -0
  527. data/platform/bb/RubyVM/src/com/rho/db/DBAdapter.java +1198 -0
  528. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/rho/db/DBAttrManager.java +0 -0
  529. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/rho/db/DBException.java +0 -0
  530. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/rho/db/IDBCallback.java +0 -0
  531. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/rho/db/IDBResult.java +0 -0
  532. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/rho/db/IDBStorage.java +0 -0
  533. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/rho/file/IFile.java +0 -0
  534. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/rho/file/IFileAccess.java +0 -0
  535. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/rho/file/IRAFile.java +0 -0
  536. data/platform/bb/RubyVM/src/com/rho/file/RandomAccessFile.java +240 -0
  537. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/rho/file/SimpleFile.java +0 -0
  538. data/platform/bb/RubyVM/src/com/rho/net/AsyncHttp.java +386 -0
  539. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/rho/net/IHttpConnection.java +0 -0
  540. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/rho/net/INetworkAccess.java +0 -0
  541. data/platform/bb/RubyVM/src/com/rho/net/NetRequest.java +706 -0
  542. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/rho/net/NetResponse.java +0 -0
  543. data/platform/bb/RubyVM/src/com/rho/net/RhoConnection.java +847 -0
  544. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/rho/net/URI.java +0 -0
  545. data/platform/bb/RubyVM/src/com/rho/rjson/RJSONTokener.java +247 -0
  546. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/rho/sync/ClientRegister.java +0 -0
  547. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/rho/sync/ISyncProtocol.java +0 -0
  548. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/rho/sync/ISyncStatusListener.java +0 -0
  549. data/platform/bb/RubyVM/src/com/rho/sync/JSONArrayIterator.java +62 -0
  550. data/platform/bb/RubyVM/src/com/rho/sync/JSONEntry.java +75 -0
  551. data/platform/bb/RubyVM/src/com/rho/sync/JSONStructIterator.java +74 -0
  552. data/platform/bb/RubyVM/src/com/rho/sync/SyncEngine.java +918 -0
  553. data/platform/bb/RubyVM/src/com/rho/sync/SyncNotify.java +596 -0
  554. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/rho/sync/SyncProtocol_3.java +0 -0
  555. data/platform/bb/RubyVM/src/com/rho/sync/SyncSource.java +960 -0
  556. data/platform/bb/RubyVM/src/com/rho/sync/SyncThread.java +825 -0
  557. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/GeneratedMethods/ObjectSpace_Methods.java +0 -0
  558. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/GeneratedMethods/RubyArray_Methods.java +0 -0
  559. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/GeneratedMethods/RubyBignum_Methods.java +0 -0
  560. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/GeneratedMethods/RubyDir_Methods.java +0 -0
  561. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/GeneratedMethods/RubyENV_Methods.java +0 -0
  562. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/GeneratedMethods/RubyExceptionValue_Methods.java +0 -0
  563. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/GeneratedMethods/RubyFileTestModule_Methods.java +0 -0
  564. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/GeneratedMethods/RubyFile_Methods.java +0 -0
  565. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/GeneratedMethods/RubyFixnum_Methods.java +0 -0
  566. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/GeneratedMethods/RubyFloat_Methods.java +0 -0
  567. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/GeneratedMethods/RubyGC_Methods.java +0 -0
  568. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/GeneratedMethods/RubyHash_Methods.java +0 -0
  569. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/GeneratedMethods/RubyIO_Methods.java +0 -0
  570. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/GeneratedMethods/RubyInteger_Methods.java +0 -0
  571. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/GeneratedMethods/RubyMatchData_Methods.java +0 -0
  572. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/GeneratedMethods/RubyMethodValue_Methods.java +0 -0
  573. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/GeneratedMethods/RubyNumeric_Methods.java +0 -0
  574. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/GeneratedMethods/RubyObject_Methods.java +0 -0
  575. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/GeneratedMethods/RubyProc_Methods.java +0 -0
  576. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/GeneratedMethods/RubyRandom_Methods.java +0 -0
  577. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/GeneratedMethods/RubyRange_Methods.java +0 -0
  578. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/GeneratedMethods/RubyRegexp_Methods.java +0 -0
  579. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/GeneratedMethods/RubyStringIO_Methods.java +0 -0
  580. data/platform/bb/RubyVM/src/com/xruby/GeneratedMethods/RubyString_Methods.java +275 -0
  581. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/GeneratedMethods/RubyStruct_Methods.java +0 -0
  582. data/platform/bb/RubyVM/src/com/xruby/GeneratedMethods/RubySymbol_Methods.java +44 -0
  583. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/GeneratedMethods/RubyThreadGroup_Methods.java +0 -0
  584. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/GeneratedMethods/RubyThread_Methods.java +0 -0
  585. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/GeneratedMethods/RubyTime_Methods.java +0 -0
  586. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/GeneratedMethods/RubyTopSelf_Methods.java +0 -0
  587. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/builtin/ArrayPacker.java +0 -0
  588. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/builtin/AttrReader.java +0 -0
  589. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/builtin/AttrWriter.java +0 -0
  590. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/builtin/ErrnoModuleBuilder.java +0 -0
  591. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/builtin/IErrno.java +0 -0
  592. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/builtin/InputStreamExecutor.java +0 -0
  593. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/builtin/ObjectFactory.java +0 -0
  594. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/builtin/OutputStreamExecutor.java +0 -0
  595. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/builtin/RubyArray.java +0 -0
  596. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/builtin/RubyBignum.java +0 -0
  597. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/builtin/RubyData.java +0 -0
  598. data/platform/bb/RubyVM/src/com/xruby/runtime/builtin/RubyDir.java +310 -0
  599. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/builtin/RubyENV.java +0 -0
  600. data/platform/bb/RubyVM/src/com/xruby/runtime/builtin/RubyFile.java +318 -0
  601. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/builtin/RubyFileTestModule.java +0 -0
  602. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/builtin/RubyFixnum.java +0 -0
  603. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/builtin/RubyFloat.java +0 -0
  604. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/builtin/RubyGC.java +0 -0
  605. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/builtin/RubyHash.java +0 -0
  606. data/platform/bb/RubyVM/src/com/xruby/runtime/builtin/RubyIO.java +398 -0
  607. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/builtin/RubyIOExecutor.java +0 -0
  608. data/platform/bb/RubyVM/src/com/xruby/runtime/builtin/RubyIOFileExecutor.java +218 -0
  609. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/builtin/RubyIOPipeSinkExecutor.java +0 -0
  610. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/builtin/RubyIOPipeSourceExecutor.java +0 -0
  611. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/builtin/RubyInteger.java +0 -0
  612. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/builtin/RubyMatchData.java +0 -0
  613. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/builtin/RubyMethodValue.java +0 -0
  614. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/builtin/RubyMutex.java +0 -0
  615. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/builtin/RubyNumeric.java +0 -0
  616. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/builtin/RubyProc.java +0 -0
  617. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/builtin/RubyRandom.java +0 -0
  618. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/builtin/RubyRange.java +0 -0
  619. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/builtin/RubyRegexp.java +0 -0
  620. data/platform/bb/RubyVM/src/com/xruby/runtime/builtin/RubyString.java +1521 -0
  621. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/builtin/RubyStruct.java +0 -0
  622. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/builtin/RubyThread.java +0 -0
  623. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/builtin/RubyThreadGroup.java +0 -0
  624. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/builtin/RubyTime.java +0 -0
  625. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/builtin/RubyTopSelf.java +0 -0
  626. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/builtin/RubyTypesUtil.java +0 -0
  627. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/AtExitBlocks.java +0 -0
  628. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/ClassFactory.java +0 -0
  629. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/GlobalVariables.java +0 -0
  630. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/MethodBlockBase.java +0 -0
  631. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/MethodCache.java +0 -0
  632. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/ObjectSpace.java +0 -0
  633. data/platform/bb/RubyVM/src/com/xruby/runtime/lang/RhoSupport.java +367 -0
  634. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/RubyAPI.java +0 -0
  635. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/RubyBasic.java +0 -0
  636. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/RubyBinding.java +0 -0
  637. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/RubyBlock.java +0 -0
  638. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/RubyClass.java +0 -0
  639. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/RubyClass_Methods.java +0 -0
  640. data/platform/bb/RubyVM/src/com/xruby/runtime/lang/RubyConstant.java +31 -0
  641. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/RubyException.java +0 -0
  642. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/RubyExceptionValue.java +0 -0
  643. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/RubyExceptionValueForThrow.java +0 -0
  644. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/RubyID.java +0 -0
  645. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/RubyIncludeClass.java +0 -0
  646. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/RubyKernelModule.java +0 -0
  647. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/RubyKernelModule_Methods.java +0 -0
  648. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/RubyMarshalModule.java +0 -0
  649. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/RubyMarshalModule_Methods.java +0 -0
  650. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/RubyMathModule.java +0 -0
  651. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/RubyMathModule_Methods.java +0 -0
  652. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/RubyMethod.java +0 -0
  653. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/RubyModule.java +0 -0
  654. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/RubyModule_Methods.java +0 -0
  655. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/RubyNoArgBlock.java +0 -0
  656. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/RubyNoArgMethod.java +0 -0
  657. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/RubyNoOrOneArgMethod.java +0 -0
  658. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/RubyObject.java +0 -0
  659. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/RubyOneArgBlock.java +0 -0
  660. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/RubyOneArgMethod.java +0 -0
  661. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/RubyOneOrTwoArgMethod.java +0 -0
  662. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/RubyProgram.java +0 -0
  663. data/platform/bb/RubyVM/src/com/xruby/runtime/lang/RubyRuntime.java +526 -0
  664. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/RubySingletonClass.java +0 -0
  665. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/RubySpecialValue.java +0 -0
  666. data/platform/bb/RubyVM/src/com/xruby/runtime/lang/RubySymbol.java +309 -0
  667. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/RubyTwoArgBlock.java +0 -0
  668. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/RubyTwoArgMethod.java +0 -0
  669. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/RubyValue.java +0 -0
  670. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/RubyVarArgBlock.java +0 -0
  671. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/RubyVarArgMethod.java +0 -0
  672. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/annotation/DummyMethod.java +0 -0
  673. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/annotation/RubyAllocMethod.java +0 -0
  674. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/annotation/RubyLevelClass.java +0 -0
  675. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/annotation/RubyLevelConstant.java +0 -0
  676. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/annotation/RubyLevelMethod.java +0 -0
  677. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/annotation/RubyLevelModule.java +0 -0
  678. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/annotation/RubyLevelObject.java +0 -0
  679. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/annotation/UndefMethod.java +0 -0
  680. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/util/CgMethodItem.java +0 -0
  681. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/util/DummyMethod.java +0 -0
  682. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/util/MethodFactory.java +0 -0
  683. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/util/MethodFactoryHelper.java +0 -0
  684. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/util/MethodType.java +0 -0
  685. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/util/NoArgRunMethodHelper.java +0 -0
  686. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/util/OneArgRunMethodHelper.java +0 -0
  687. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/util/RubyClassBuilder.java +0 -0
  688. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/util/RubyClassFactory.java +0 -0
  689. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/util/RubyModuleBuilder.java +0 -0
  690. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/util/RubyModuleFactory.java +0 -0
  691. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/util/RubyObjectBuilder.java +0 -0
  692. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/util/RubyObjectFactory.java +0 -0
  693. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/util/RubyTypeFactory.java +0 -0
  694. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/util/RunMethodHelper.java +0 -0
  695. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/util/TwoArgRunMethodHelper.java +0 -0
  696. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/lang/util/VarArgRunMethodHelper.java +0 -0
  697. data/platform/{shared/rubyJVM → bb/RubyVM}/src/com/xruby/runtime/stdlib/RubyStringIO.java +0 -0
  698. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/io/CharConversionException.java +0 -0
  699. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/io/Closeable.java +0 -0
  700. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/io/DataInput.java +0 -0
  701. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/io/DataOutput.java +0 -0
  702. data/platform/bb/RubyVM/src/j2me/io/File.java +222 -0
  703. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/io/FileFilter.java +0 -0
  704. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/io/FileInputStream.java +0 -0
  705. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/io/FileNotFoundException.java +0 -0
  706. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/io/FileOutputStream.java +0 -0
  707. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/io/FilenameFilter.java +0 -0
  708. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/io/Flushable.java +0 -0
  709. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/io/InvalidClassException.java +0 -0
  710. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/io/InvalidObjectException.java +0 -0
  711. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/io/NotActiveException.java +0 -0
  712. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/io/NotSerializableException.java +0 -0
  713. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/io/ObjectInput.java +0 -0
  714. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/io/ObjectInputStream.java +0 -0
  715. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/io/ObjectInputValidation.java +0 -0
  716. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/io/ObjectOutput.java +0 -0
  717. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/io/ObjectOutputStream.java +0 -0
  718. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/io/ObjectStreamException.java +0 -0
  719. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/io/OptionalDataException.java +0 -0
  720. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/io/RandomAccessFile.java +0 -0
  721. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/io/Serializable.java +0 -0
  722. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/io/StreamCorruptedException.java +0 -0
  723. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/io/SyncFailedException.java +0 -0
  724. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/io/WriteAbortedException.java +0 -0
  725. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/lang/ArrayMe.java +0 -0
  726. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/lang/AssertMe.java +0 -0
  727. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/lang/CalendarMe.java +0 -0
  728. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/lang/CharSequence.java +0 -0
  729. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/lang/CharacterDataLatin1.java +0 -0
  730. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/lang/CharacterMe.java +0 -0
  731. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/lang/CloneNotSupportedException.java +0 -0
  732. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/lang/Cloneable.java +0 -0
  733. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/lang/Comparable.java +0 -0
  734. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/lang/Convert.java +0 -0
  735. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/lang/EnumConstantNotPresentException.java +0 -0
  736. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/lang/IllegalStateException.java +0 -0
  737. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/lang/Iterable.java +0 -0
  738. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/lang/MathEx.java +0 -0
  739. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/lang/NoSuchFieldException.java +0 -0
  740. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/lang/NoSuchMethodException.java +0 -0
  741. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/lang/Number.java +0 -0
  742. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/lang/PrintStreamMe.java +0 -0
  743. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/lang/Readable.java +0 -0
  744. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/lang/SecurityException.java +0 -0
  745. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/lang/StringBufferMe.java +0 -0
  746. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/lang/StringMe.java +0 -0
  747. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/lang/SystemMe.java +0 -0
  748. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/lang/ThreadLocal.java +0 -0
  749. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/lang/TimeZoneMe.java +0 -0
  750. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/lang/TypeNotPresentException.java +0 -0
  751. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/lang/UnsupportedOperationException.java +0 -0
  752. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/math/HugeDigit.java +0 -0
  753. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/math/HugeInt.java +0 -0
  754. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/math/HugeIntHelper.java +0 -0
  755. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/nio/Buffer.java +0 -0
  756. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/nio/BufferUnderflowException.java +0 -0
  757. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/nio/ByteBuffer.java +0 -0
  758. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/nio/ByteOrder.java +0 -0
  759. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/nio/CharBuffer.java +0 -0
  760. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/nio/InvalidMarkException.java +0 -0
  761. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/nio/channels/FileChannel.java +0 -0
  762. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/nio/channels/Pipe.java +0 -0
  763. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/text/ParsePosition.java +0 -0
  764. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/ArrayList.java +0 -0
  765. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/Collection.java +0 -0
  766. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/Collections.java +0 -0
  767. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/Comparator.java +0 -0
  768. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/ConcurrentModificationException.java +0 -0
  769. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/DuplicateFormatFlagsException.java +0 -0
  770. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/EventListener.java +0 -0
  771. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/FormatFlagsConversionMismatchException.java +0 -0
  772. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/Formattable.java +0 -0
  773. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/Formatter.java +0 -0
  774. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/FormatterClosedException.java +0 -0
  775. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/HashMap.java +0 -0
  776. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/HashSet.java +0 -0
  777. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/IllegalFormatCodePointException.java +0 -0
  778. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/IllegalFormatConversionException.java +0 -0
  779. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/IllegalFormatException.java +0 -0
  780. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/IllegalFormatFlagsException.java +0 -0
  781. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/IllegalFormatPrecisionException.java +0 -0
  782. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/IllegalFormatWidthException.java +0 -0
  783. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/InputMismatchException.java +0 -0
  784. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/InvalidPropertiesFormatException.java +0 -0
  785. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/Iterator.java +0 -0
  786. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/LinkedHashMap.java +0 -0
  787. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/LinkedHashSet.java +0 -0
  788. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/LinkedList.java +0 -0
  789. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/List.java +0 -0
  790. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/ListIterator.java +0 -0
  791. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/Locale.java +0 -0
  792. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/Map.java +0 -0
  793. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/MissingFormatArgumentException.java +0 -0
  794. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/MissingFormatWidthException.java +0 -0
  795. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/MissingResourceException.java +0 -0
  796. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/NavigableMap.java +0 -0
  797. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/NavigableSet.java +0 -0
  798. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/NoSuchElementException.java +0 -0
  799. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/Observable.java +0 -0
  800. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/Observer.java +0 -0
  801. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/Queue.java +0 -0
  802. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/RandomAccess.java +0 -0
  803. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/RandomMe.java +0 -0
  804. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/Set.java +0 -0
  805. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/SortedMap.java +0 -0
  806. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/SortedSet.java +0 -0
  807. data/platform/bb/RubyVM/src/j2me/util/StringParser.java +245 -0
  808. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/TooManyListenersException.java +0 -0
  809. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/UnknownFormatConversionException.java +0 -0
  810. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/UnknownFormatFlagsException.java +0 -0
  811. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/WeakHashMap.java +0 -0
  812. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/concurrent/ConcurrentHashMap.java +0 -0
  813. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/concurrent/ConcurrentMap.java +0 -0
  814. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/concurrent/atomic/AtomicLong.java +0 -0
  815. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/concurrent/locks/ReentrantLock.java +0 -0
  816. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/logging/Level.java +0 -0
  817. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/logging/LogRecord.java +0 -0
  818. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/logging/Logger.java +0 -0
  819. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/zip/ZipEntry.java +0 -0
  820. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2me/util/zip/ZipFile.java +0 -0
  821. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2mex/realtime/MemoryArea.java +0 -0
  822. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2mex/realtime/NoHeapRealtimeThread.java +0 -0
  823. data/platform/{shared/rubyJVM → bb/RubyVM}/src/j2mex/realtime/RealtimeThread.java +0 -0
  824. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/Javolution.java +0 -0
  825. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/JavolutionError.java +0 -0
  826. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/context/Allocator.java +0 -0
  827. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/context/AllocatorContext.java +0 -0
  828. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/context/ArrayFactory.java +0 -0
  829. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/context/ConcurrentContext.java +0 -0
  830. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/context/ConcurrentException.java +0 -0
  831. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/context/ConcurrentThread.java +0 -0
  832. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/context/Context.java +0 -0
  833. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/context/HeapContext.java +0 -0
  834. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/context/ImmortalContext.java +0 -0
  835. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/context/LocalContext.java +0 -0
  836. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/context/LogContext.java +0 -0
  837. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/context/ObjectFactory.java +0 -0
  838. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/context/PersistentContext.java +0 -0
  839. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/context/SecurityContext.java +0 -0
  840. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/context/StackContext.java +0 -0
  841. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/io/AppendableWriter.java +0 -0
  842. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/io/CharSequenceReader.java +0 -0
  843. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/io/UTF8ByteBufferReader.java +0 -0
  844. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/io/UTF8ByteBufferWriter.java +0 -0
  845. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/io/UTF8StreamReader.java +0 -0
  846. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/io/UTF8StreamWriter.java +0 -0
  847. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/lang/ClassInitializer.java +0 -0
  848. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/lang/Configurable.java +0 -0
  849. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/lang/Enum.java +0 -0
  850. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/lang/Immutable.java +0 -0
  851. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/lang/MathLib.java +0 -0
  852. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/lang/Realtime.java +0 -0
  853. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/lang/Reference.java +0 -0
  854. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/lang/Reflection.java +0 -0
  855. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/lang/Reusable.java +0 -0
  856. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/lang/ValueType.java +0 -0
  857. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/text/Appendable.java +0 -0
  858. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/text/CharArray.java +0 -0
  859. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/text/CharSet.java +0 -0
  860. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/text/Text.java +0 -0
  861. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/text/TextBuilder.java +0 -0
  862. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/text/TextFormat.java +0 -0
  863. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/text/TypeFormat.java +0 -0
  864. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/util/FastCollection.java +0 -0
  865. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/util/FastComparator.java +0 -0
  866. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/util/FastIterator.java +0 -0
  867. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/util/FastList.java +0 -0
  868. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/util/FastMap.java +0 -0
  869. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/util/FastSet.java +0 -0
  870. data/platform/bb/RubyVM/src/javolution/util/FastTable.java +975 -0
  871. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/util/Index.java +0 -0
  872. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/util/LocalMap.java +0 -0
  873. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/util/ReentrantLock.java +0 -0
  874. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/util/StandardLog.java +0 -0
  875. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/util/doc-files/list-add.png +0 -0
  876. data/platform/{shared/rubyJVM → bb/RubyVM}/src/javolution/util/doc-files/map-put.png +0 -0
  877. data/platform/{shared/rubyJVM → bb/RubyVM}/src/org/apache/oro/io/GlobFilenameFilter.java +0 -0
  878. data/platform/{shared/rubyJVM → bb/RubyVM}/src/org/apache/oro/io/RegexFilenameFilter.java +0 -0
  879. data/platform/{shared/rubyJVM → bb/RubyVM}/src/org/apache/oro/text/GenericPatternCache.java +0 -0
  880. data/platform/{shared/rubyJVM → bb/RubyVM}/src/org/apache/oro/text/GlobCompiler.java +0 -0
  881. data/platform/{shared/rubyJVM → bb/RubyVM}/src/org/apache/oro/text/MalformedCachePatternException.java +0 -0
  882. data/platform/{shared/rubyJVM → bb/RubyVM}/src/org/apache/oro/text/PatternCache.java +0 -0
  883. data/platform/{shared/rubyJVM → bb/RubyVM}/src/org/apache/oro/text/PatternCacheLRU.java +0 -0
  884. data/platform/{shared/rubyJVM → bb/RubyVM}/src/org/apache/oro/text/PatternMatchingEngineFactory.java +0 -0
  885. data/platform/{shared/rubyJVM → bb/RubyVM}/src/org/apache/oro/text/perl/MalformedPerl5PatternException.java +0 -0
  886. data/platform/{shared/rubyJVM → bb/RubyVM}/src/org/apache/oro/text/perl/ParsedSubstitutionEntry.java +0 -0
  887. data/platform/{shared/rubyJVM → bb/RubyVM}/src/org/apache/oro/text/perl/Perl5Util.java +0 -0
  888. data/platform/{shared/rubyJVM → bb/RubyVM}/src/org/apache/oro/text/regex/CharStringPointer.java +0 -0
  889. data/platform/{shared/rubyJVM → bb/RubyVM}/src/org/apache/oro/text/regex/MalformedPatternException.java +0 -0
  890. data/platform/{shared/rubyJVM → bb/RubyVM}/src/org/apache/oro/text/regex/MatchResult.java +0 -0
  891. data/platform/{shared/rubyJVM → bb/RubyVM}/src/org/apache/oro/text/regex/OpCode.java +0 -0
  892. data/platform/{shared/rubyJVM → bb/RubyVM}/src/org/apache/oro/text/regex/Pattern.java +0 -0
  893. data/platform/{shared/rubyJVM → bb/RubyVM}/src/org/apache/oro/text/regex/PatternCompiler.java +0 -0
  894. data/platform/{shared/rubyJVM → bb/RubyVM}/src/org/apache/oro/text/regex/PatternCompilerOptions.java +0 -0
  895. data/platform/{shared/rubyJVM → bb/RubyVM}/src/org/apache/oro/text/regex/PatternMatcher.java +0 -0
  896. data/platform/{shared/rubyJVM → bb/RubyVM}/src/org/apache/oro/text/regex/PatternMatcherInput.java +0 -0
  897. data/platform/{shared/rubyJVM → bb/RubyVM}/src/org/apache/oro/text/regex/PatternMatchingEngine.java +0 -0
  898. data/platform/{shared/rubyJVM → bb/RubyVM}/src/org/apache/oro/text/regex/Perl5Compiler.java +0 -0
  899. data/platform/{shared/rubyJVM → bb/RubyVM}/src/org/apache/oro/text/regex/Perl5MatchResult.java +0 -0
  900. data/platform/{shared/rubyJVM → bb/RubyVM}/src/org/apache/oro/text/regex/Perl5Matcher.java +0 -0
  901. data/platform/{shared/rubyJVM → bb/RubyVM}/src/org/apache/oro/text/regex/Perl5Pattern.java +0 -0
  902. data/platform/{shared/rubyJVM → bb/RubyVM}/src/org/apache/oro/text/regex/Perl5Repetition.java +0 -0
  903. data/platform/{shared/rubyJVM → bb/RubyVM}/src/org/apache/oro/text/regex/Perl5Substitution.java +0 -0
  904. data/platform/{shared/rubyJVM → bb/RubyVM}/src/org/apache/oro/text/regex/StringSubstitution.java +0 -0
  905. data/platform/{shared/rubyJVM → bb/RubyVM}/src/org/apache/oro/text/regex/Substitution.java +0 -0
  906. data/platform/{shared/rubyJVM → bb/RubyVM}/src/org/apache/oro/text/regex/Util.java +0 -0
  907. data/platform/{shared/rubyJVM → bb/RubyVM}/src/org/apache/oro/util/Cache.java +0 -0
  908. data/platform/{shared/rubyJVM → bb/RubyVM}/src/org/apache/oro/util/CacheLRU.java +0 -0
  909. data/platform/{shared/rubyJVM → bb/RubyVM}/src/org/apache/oro/util/GenericCache.java +0 -0
  910. data/platform/{shared/rubyJVM → bb/RubyVM}/src/org/apache/oro/util/GenericCacheEntry.java +0 -0
  911. data/platform/bb/RubyVM/src/org/json/me/RhoJSONArray.java +871 -0
  912. data/platform/bb/RubyVM/src/org/json/me/RhoJSONException.java +27 -0
  913. data/platform/bb/RubyVM/src/org/json/me/RhoJSONObject.java +1290 -0
  914. data/platform/bb/RubyVM/src/org/json/me/RhoJSONString.java +18 -0
  915. data/platform/bb/RubyVM/src/org/json/me/RhoJSONTokener.java +460 -0
  916. data/platform/bb/build/RubyVM_build.files +412 -411
  917. data/platform/bb/build/bb.rake +240 -90
  918. data/platform/bb/rhodes/platform/6.0/com/rho/BrowserAdapter5.java +155 -0
  919. data/platform/bb/rhodes/platform/6.0/com/rho/RhoMainScreen.java +36 -0
  920. data/platform/bb/rhodes/src/com/rho/RhoRubyHelper.java +5 -0
  921. data/platform/bb/rhodes/src/com/rho/file/Jsr75RAFileImpl.java +2 -2
  922. data/platform/bb/rhodes/src/com/rho/net/BaseSocket.java +6 -0
  923. data/platform/bb/rhodes/src/com/rho/net/NetworkAccess.java +1 -1
  924. data/platform/bb/rhodes/src/com/rho/net/SSLSocket.java +15 -0
  925. data/platform/bb/rhodes/src/com/rho/net/TCPSocket.java +15 -0
  926. data/platform/bb/rhodes/src/com/rho/rubyext/GeoLocation.java +2 -2
  927. data/platform/bb/rhodes/src/com/rho/rubyext/WebView.java +8 -3
  928. data/platform/bb/rhodes/src/rhomobile/PushListeningThread.java +39 -9
  929. data/platform/bb/rhodes/src/rhomobile/RhodesApplication.java +40 -42
  930. data/platform/bb/rhodes/src/rhomobile/RingtoneManager.java +2 -10
  931. data/platform/bb/rhodes/src/rhomobile/mapview/GoogleMapField.java +10 -10
  932. data/platform/iphone/Classes/AppManager/AppManager.m +9 -2
  933. data/platform/iphone/Classes/Camera/PickImageDelegate.m +6 -4
  934. data/platform/iphone/Classes/DateTimePicker.m +2 -0
  935. data/platform/iphone/Classes/DateTimePickerDelegate.m +19 -7
  936. data/platform/iphone/Classes/GeoLocation/LocationController.m +4 -0
  937. data/platform/iphone/Classes/MapView/MapViewController.h +1 -1
  938. data/platform/iphone/Classes/MapView/MapViewController.m +4 -1
  939. data/platform/iphone/Classes/NativeBar.m +7 -1
  940. data/platform/iphone/Classes/NavBar.m +4 -1
  941. data/platform/iphone/Classes/Phonebook/phonebook.m +5 -0
  942. data/platform/iphone/Classes/RhoAlert.h +1 -1
  943. data/platform/iphone/Classes/RhoAlert.m +8 -0
  944. data/platform/iphone/Classes/RhoMainView.h +0 -1
  945. data/platform/iphone/Classes/RhoNativeViewManager.mm +224 -0
  946. data/platform/iphone/Classes/RhoNativeViewManagerOC.h +45 -0
  947. data/platform/iphone/Classes/Rhodes.h +4 -1
  948. data/platform/iphone/Classes/Rhodes.m +157 -55
  949. data/platform/iphone/Classes/Signature/SignatureDelegate.h +29 -0
  950. data/platform/iphone/Classes/Signature/SignatureDelegate.m +98 -0
  951. data/platform/iphone/Classes/Signature/SignatureView.h +31 -0
  952. data/platform/iphone/Classes/Signature/SignatureView.m +216 -0
  953. data/platform/iphone/Classes/Signature/SignatureViewController.h +25 -0
  954. data/platform/iphone/Classes/Signature/SignatureViewController.m +163 -0
  955. data/platform/iphone/Classes/SimpleMainView.h +11 -1
  956. data/platform/iphone/Classes/SimpleMainView.m +243 -57
  957. data/platform/iphone/Classes/TabbedMainView.h +2 -0
  958. data/platform/iphone/Classes/TabbedMainView.m +9 -10
  959. data/platform/iphone/Classes/WebView.m +38 -24
  960. data/platform/iphone/Classes/rho/net/NetRequestImpl.m +11 -1
  961. data/platform/iphone/Entitlements.plist +6 -0
  962. data/platform/iphone/Info.plist +1 -1
  963. data/platform/iphone/RhoLib/RhoLib.xcodeproj/project.pbxproj +20 -16
  964. data/platform/iphone/rbuild/iphone.rake +138 -134
  965. data/platform/iphone/rhorubylib/rhorubylib.xcodeproj/project.pbxproj +19 -7
  966. data/platform/iphone/rhorunner.xcodeproj/project.pbxproj +65 -23
  967. data/platform/shared/SyncClient/RhoError.h +29 -0
  968. data/platform/shared/SyncClient/SyncClient.cpp +860 -0
  969. data/platform/shared/SyncClient/SyncClient.h +76 -0
  970. data/platform/shared/common/IRhoClassFactory.h +1 -3
  971. data/platform/shared/common/PosixThreadImpl.cpp +30 -12
  972. data/platform/shared/common/PosixThreadImpl.h +1 -0
  973. data/platform/shared/common/RhoAppAdapter.h +34 -0
  974. data/platform/shared/common/RhoConf.cpp +6 -5
  975. data/platform/shared/common/RhoConf.h +2 -1
  976. data/platform/shared/common/RhoFile.cpp +22 -3
  977. data/platform/shared/common/RhoFile.h +1 -1
  978. data/platform/shared/common/RhoNativeViewManager.h +43 -0
  979. data/platform/shared/common/RhoPort.h +16 -0
  980. data/platform/shared/common/RhoStd.h +9 -2
  981. data/platform/shared/common/RhoThread.h +2 -2
  982. data/platform/shared/common/RhodesApp.cpp +193 -111
  983. data/platform/shared/common/RhodesApp.h +28 -27
  984. data/platform/shared/common/RhodesAppBase.cpp +130 -0
  985. data/platform/shared/common/RhodesAppBase.h +64 -0
  986. data/platform/shared/common/SplashScreen.cpp +1 -1
  987. data/platform/shared/common/ThreadQueue.cpp +3 -3
  988. data/platform/shared/common/ThreadQueue.h +7 -7
  989. data/platform/shared/common/Tokenizer.h +2 -1
  990. data/platform/shared/common/iphone/RhoClassFactory.cpp +22 -0
  991. data/platform/shared/common/iphone/RhoClassfactory.h +29 -0
  992. data/platform/shared/common/iphone/RhoFileImpl.m +46 -0
  993. data/platform/shared/common/iphone/RhoThreadImpl.m +24 -0
  994. data/platform/shared/common/rhoparams.cpp +188 -0
  995. data/platform/shared/common/rhoparams.h +35 -42
  996. data/platform/shared/curl/lib/url.c +1 -1
  997. data/platform/shared/db/DBAdapter.cpp +68 -22
  998. data/platform/shared/db/DBAdapter.h +36 -5
  999. data/platform/shared/db/DBAttrManager.cpp +4 -0
  1000. data/platform/shared/db/DBAttrManager.h +2 -1
  1001. data/platform/shared/db/DBResult.cpp +2 -2
  1002. data/platform/shared/db/DBResult.h +25 -5
  1003. data/{res/build-tools → platform/shared/db/res}/db/syncdb.schema +0 -0
  1004. data/{res/build-tools → platform/shared/db/res}/db/syncdb.triggers +0 -0
  1005. data/platform/shared/json/JSONIterator.cpp +4 -2
  1006. data/platform/shared/json/RJSONTokener.c +16 -13
  1007. data/platform/shared/logging/RhoLog.cpp +1 -1
  1008. data/platform/shared/logging/RhoLogConf.cpp +12 -0
  1009. data/platform/shared/net/AsyncHttp.cpp +62 -63
  1010. data/platform/shared/net/AsyncHttp.h +26 -17
  1011. data/platform/shared/net/CURLNetRequest.cpp +248 -156
  1012. data/platform/shared/net/CURLNetRequest.h +42 -16
  1013. data/platform/shared/net/HttpServer.cpp +58 -84
  1014. data/platform/shared/net/HttpServer.h +6 -5
  1015. data/platform/shared/net/URI.cpp +39 -0
  1016. data/platform/shared/net/URI.h +3 -0
  1017. data/platform/{iphone/Classes/rho/net → shared/net/iphone}/sslimpl.cpp +0 -0
  1018. data/platform/{iphone/Classes/rho/net → shared/net/iphone}/sslimpl.h +0 -0
  1019. data/platform/shared/net/ssl.cpp +1 -1
  1020. data/platform/shared/ruby/ext/alert/alert.i +1 -1
  1021. data/platform/shared/ruby/ext/alert/alert_wrap.c +8 -8
  1022. data/platform/shared/ruby/ext/asynchttp/asynchttp.i +10 -17
  1023. data/platform/shared/ruby/ext/asynchttp/asynchttp_wrap.c +20 -340
  1024. data/platform/shared/ruby/ext/mapview/mapview.i +1 -1
  1025. data/platform/shared/ruby/ext/mapview/mapview_wrap.c +8 -8
  1026. data/platform/shared/ruby/ext/nativebar/nativebar.i +1 -1
  1027. data/platform/shared/ruby/ext/nativebar/nativebar_wrap.c +8 -8
  1028. data/platform/shared/ruby/ext/navbar/navbar.i +1 -1
  1029. data/platform/shared/ruby/ext/navbar/navbar_wrap.c +8 -8
  1030. data/platform/shared/ruby/ext/rho/rhoruby.c +29 -9
  1031. data/platform/shared/ruby/ext/rho/rhoruby.h +45 -7
  1032. data/platform/shared/ruby/ext/rhoconf/rhoconf.i +9 -2
  1033. data/platform/shared/ruby/ext/rhoconf/rhoconf_wrap.c +431 -122
  1034. data/platform/shared/ruby/ext/signature/signature.i +8 -0
  1035. data/platform/shared/ruby/ext/signature/signature_wrap.c +2184 -0
  1036. data/platform/shared/ruby/ext/sqlite3_api/sqlite3_api_wrap.c +32 -26
  1037. data/platform/shared/ruby/ext/syncengine/syncengine.i +8 -10
  1038. data/platform/shared/ruby/ext/syncengine/syncengine_wrap.c +449 -208
  1039. data/platform/shared/ruby/ext/webview/webview.i +1 -1
  1040. data/platform/shared/ruby/ext/webview/webview_wrap.c +11 -11
  1041. data/platform/shared/ruby/file.c +19 -11
  1042. data/platform/shared/ruby/linux/ruby/config.h +8 -8
  1043. data/platform/shared/ruby/strftime.c +9 -1
  1044. data/platform/shared/ruby/wince/io_wce.c +69 -29
  1045. data/platform/shared/ruby/wince/sys/stat.c +1 -1
  1046. data/platform/shared/ruby/wince/sys/timeb.c +1 -0
  1047. data/platform/shared/ruby/wince/wince.h +1 -0
  1048. data/platform/shared/rubyext/GeoLocation.cpp +27 -11
  1049. data/platform/shared/rubyext/GeoLocation.h +8 -2
  1050. data/platform/shared/rubyext/RhoAppAdapter.cpp +41 -0
  1051. data/platform/shared/rubyext/System.cpp +1 -18
  1052. data/platform/shared/rubyext/WebView.h +3 -1
  1053. data/platform/shared/sync/ClientRegister.cpp +2 -3
  1054. data/platform/shared/sync/ClientRegister.h +0 -2
  1055. data/platform/shared/sync/SyncEngine.cpp +136 -65
  1056. data/platform/shared/sync/SyncEngine.h +9 -4
  1057. data/platform/shared/sync/SyncNotify.cpp +123 -180
  1058. data/platform/shared/sync/SyncNotify.h +34 -24
  1059. data/platform/shared/sync/SyncSource.cpp +36 -33
  1060. data/platform/shared/sync/SyncSource.h +9 -3
  1061. data/platform/shared/sync/SyncThread.cpp +116 -38
  1062. data/platform/shared/sync/SyncThread.h +26 -30
  1063. data/platform/shared/test/test_helper.cpp +50 -0
  1064. data/platform/shared/test/test_helper.h +2 -0
  1065. data/platform/shared/xruby/src/com/xruby/compiler/codedom/AsciiValueExpression.java +54 -48
  1066. data/platform/shared/xruby/src/com/xruby/compiler/codegen/ClassGeneratorForRubyProgram.java +95 -95
  1067. data/platform/shared/xruby/src/com/xruby/compiler/codegen/RubyCompilerImpl.java +1 -1
  1068. data/platform/shared/xruby/src/com/xruby/compiler/codegen/RubyIDClassGenerator.java +102 -100
  1069. data/platform/wm/RhoLib/RhoLib.vcproj +10 -10
  1070. data/platform/wm/build/build_inf.js +1 -1
  1071. data/platform/wm/build/wm.rake +73 -14
  1072. data/platform/wm/rhodes/Alert.cpp +1 -1
  1073. data/platform/wm/rhodes/MainWindow.cpp +23 -4
  1074. data/platform/wm/rhodes/MainWindow.h +3 -1
  1075. data/platform/wm/rhodes/Rhodes.cpp +6 -5
  1076. data/platform/wm/rhodes/Vibrate.cpp +1 -1
  1077. data/platform/wm/rhodes/camera/Camera.cpp +2 -2
  1078. data/platform/wm/rhodes/phonebook/phonebook.cpp +2 -0
  1079. data/platform/wm/rhodes/rho/common/RhoClassFactory.cpp +2 -7
  1080. data/platform/wm/rhodes/rho/common/RhoClassFactory.h +0 -6
  1081. data/platform/wm/rhodes/rho/common/RhoThreadImpl.h +1 -0
  1082. data/platform/wm/rhodes/rho/net/NetRequest.cpp +1 -1
  1083. data/platform/wm/rhodes/rho/net/NetRequest.h +1 -0
  1084. data/platform/wm/rhodes/rho/net/NetRequestImpl.cpp +8 -3
  1085. data/platform/wm/rhodes/rho/net/NetRequestImpl.h +1 -0
  1086. data/platform/wm/rhodes/rho/rubyext/SystemImpl.cpp +13 -10
  1087. data/platform/wm/rhodes/rho/rubyext/WebView.cpp +11 -1
  1088. data/platform/wm/rhodes/rhodes.vcproj +26 -9
  1089. data/platform/wm/rhodes/signature/Signature.cpp +28 -0
  1090. data/platform/wm/rhodes/signature/Signature.h +3 -0
  1091. data/platform/wm/rhodes/stdafx.h +5 -0
  1092. data/platform/wm/rubylib/rubylib.vcproj +11 -3
  1093. data/platform/wm/syncengine/syncengine.vcproj +1 -1
  1094. data/platform/wm/tcmalloc/tcmalloc.vcproj +1 -0
  1095. data/rakefile.rb +189 -110
  1096. data/res/build-tools/xruby-0.3.3.jar +0 -0
  1097. data/res/generators/rhogen.rb +9 -9
  1098. data/res/generators/templates/application/app/Settings/home.erb +15 -18
  1099. data/res/generators/templates/application/app/Settings/index.erb +26 -42
  1100. data/res/generators/templates/application/app/Settings/login.erb +19 -23
  1101. data/res/generators/templates/application/app/Settings/reset.erb +12 -13
  1102. data/res/generators/templates/application/app/Settings/wait.erb +2 -2
  1103. data/res/generators/templates/application/app/application.rb +6 -2
  1104. data/res/generators/templates/application/app/helpers/application_helper.rb +39 -21
  1105. data/res/generators/templates/application/app/index.erb +21 -18
  1106. data/res/generators/templates/application/app/layout.erb +38 -21
  1107. data/res/generators/templates/application/build.yml +2 -1
  1108. data/res/generators/templates/application/public/css/android.css +122 -88
  1109. data/res/generators/templates/application/public/css/iphone.css +161 -133
  1110. data/res/generators/templates/application/public/css/windows_mobile.css +126 -116
  1111. data/res/generators/templates/application/public/images/iphone/jqtouch/backButton.png +0 -0
  1112. data/res/generators/templates/application/public/images/iphone/jqtouch/blueButton.png +0 -0
  1113. data/res/generators/templates/application/public/images/iphone/jqtouch/cancel.png +0 -0
  1114. data/res/generators/templates/application/public/images/iphone/jqtouch/chevron.png +0 -0
  1115. data/res/generators/templates/application/public/images/iphone/jqtouch/grayButton.png +0 -0
  1116. data/res/generators/templates/application/public/images/iphone/jqtouch/listArrowSel.png +0 -0
  1117. data/res/generators/templates/application/public/images/iphone/jqtouch/listGroup.png +0 -0
  1118. data/res/generators/templates/application/public/images/iphone/jqtouch/loading.gif +0 -0
  1119. data/res/generators/templates/application/public/images/iphone/jqtouch/on_off.png +0 -0
  1120. data/res/generators/templates/application/public/images/iphone/jqtouch/pinstripes.png +0 -0
  1121. data/res/generators/templates/application/public/images/iphone/jqtouch/selection.png +0 -0
  1122. data/res/generators/templates/application/public/images/iphone/jqtouch/thumb.png +0 -0
  1123. data/res/generators/templates/application/public/images/iphone/jqtouch/toggle.png +0 -0
  1124. data/res/generators/templates/application/public/images/iphone/jqtouch/toggleOn.png +0 -0
  1125. data/res/generators/templates/application/public/images/iphone/jqtouch/toolButton.png +0 -0
  1126. data/res/generators/templates/application/public/images/iphone/jqtouch/toolbar.png +0 -0
  1127. data/res/generators/templates/application/public/images/iphone/jqtouch/whiteButton.png +0 -0
  1128. data/res/generators/templates/application/public/jqtouch/jqtouch.css +378 -0
  1129. data/res/generators/templates/application/public/jqtouch/jqtouch.js +741 -0
  1130. data/res/generators/templates/application/public/jqtouch/jqtouch.transitions.js +60 -0
  1131. data/res/generators/templates/application/public/jqtouch/jquery.1.3.2.min.js +19 -0
  1132. data/res/generators/templates/application/rhoconfig.txt +6 -0
  1133. data/res/generators/templates/model/controller.rb +1 -2
  1134. data/res/generators/templates/model/edit.erb +22 -18
  1135. data/res/generators/templates/model/index.erb +25 -25
  1136. data/res/generators/templates/model/model.rb +4 -1
  1137. data/res/generators/templates/model/new.erb +20 -17
  1138. data/res/generators/templates/model/show.erb +16 -12
  1139. data/res/generators/templates/spec/app/mspec.rb +4 -1
  1140. data/res/generators/templates/spec/app/spec_runner.rb +4 -6
  1141. data/rhobuild.yml.example +13 -7
  1142. data/rhodes.gemspec +3 -2
  1143. data/spec/framework_spec/app/SpecRunner/controller.rb +0 -2
  1144. data/spec/framework_spec/app/mspec.rb +4 -1
  1145. data/spec/framework_spec/app/spec/core/dir/mkdir_spec.rb +3 -2
  1146. data/spec/framework_spec/app/spec/core/dir/path_spec.rb +1 -1
  1147. data/spec/framework_spec/app/spec/core/dir/shared/delete.rb +4 -2
  1148. data/spec/framework_spec/app/spec/core/file/basename_spec.rb +10 -10
  1149. data/spec/framework_spec/app/spec/core/file/constants/constants_spec.rb +2 -0
  1150. data/spec/framework_spec/app/spec/core/file/inspect_spec.rb +5 -3
  1151. data/spec/framework_spec/app/spec/core/file/path_spec.rb +1 -1
  1152. data/spec/framework_spec/app/spec/core/file/shared/fnmatch.rb +5 -5
  1153. data/spec/framework_spec/app/spec/core/file/shared/stat.rb +2 -2
  1154. data/spec/framework_spec/app/spec/core/file/split_spec.rb +2 -1
  1155. data/spec/framework_spec/app/spec/core/math/atanh_spec.rb +8 -6
  1156. data/spec/framework_spec/app/spec/shared/file/readable.rb +2 -1
  1157. data/spec/framework_spec/app/spec_runner.rb +50 -30
  1158. data/spec/framework_spec/build.yml +7 -4
  1159. data/spec/perfomance_spec/Rakefile +27 -0
  1160. data/spec/perfomance_spec/app/Perftest/controller.rb +92 -0
  1161. data/spec/perfomance_spec/app/Perftest/index.erb +21 -0
  1162. data/spec/perfomance_spec/app/Perftest/perftest.rb +4 -0
  1163. data/spec/perfomance_spec/app/application.rb +4 -0
  1164. data/spec/perfomance_spec/app/index.erb +0 -0
  1165. data/spec/perfomance_spec/app/layout.erb +25 -0
  1166. data/spec/perfomance_spec/build.yml +22 -0
  1167. data/spec/perfomance_spec/icon/icon.ico +0 -0
  1168. data/spec/perfomance_spec/icon/icon.png +0 -0
  1169. data/spec/perfomance_spec/public/css/android.css +287 -0
  1170. data/spec/perfomance_spec/public/css/blackberry.css +114 -0
  1171. data/spec/perfomance_spec/public/css/iphone.css +382 -0
  1172. data/{res/generators/templates/application → spec/perfomance_spec}/public/css/webkit.css +0 -0
  1173. data/spec/perfomance_spec/public/css/windows_mobile.css +212 -0
  1174. data/spec/perfomance_spec/public/pinstripes.png +0 -0
  1175. data/spec/perfomance_spec/rhoconfig.txt +34 -0
  1176. data/spec/phone_spec/app/Account/account.rb +7 -0
  1177. data/spec/phone_spec/app/Account_s/account_s.rb +50 -0
  1178. data/spec/phone_spec/app/Barcode/Barcode_UPC_01.png +0 -0
  1179. data/spec/phone_spec/app/Barcode/Barcode_UPC_02.jpg +0 -0
  1180. data/spec/{framework_spec → phone_spec}/app/BlobTest/blob_test.rb +0 -0
  1181. data/spec/{framework_spec → phone_spec}/app/BlobTest/test.png +0 -0
  1182. data/spec/{framework_spec → phone_spec}/app/BlobTest/test2.png +0 -0
  1183. data/spec/{framework_spec → phone_spec}/app/Case/case.rb +0 -0
  1184. data/spec/phone_spec/app/Case_s/case_s.rb +25 -0
  1185. data/spec/phone_spec/app/Customer/customer.rb +7 -0
  1186. data/spec/phone_spec/app/Customer_s/customer_s.rb +21 -0
  1187. data/spec/phone_spec/app/Data/big_test.json +1 -0
  1188. data/spec/phone_spec/app/Data/reqTest.rb +5 -0
  1189. data/spec/phone_spec/app/Data/test1.xml +6 -0
  1190. data/spec/phone_spec/app/Data/test_log.txt +1 -0
  1191. data/spec/phone_spec/app/Product/product.rb +29 -0
  1192. data/spec/phone_spec/app/Product_s/product_s.rb +22 -0
  1193. data/spec/phone_spec/app/Spec/asynchttp_spec.rb +131 -38
  1194. data/spec/phone_spec/app/Spec/barcode_spec.rb +19 -0
  1195. data/spec/phone_spec/app/Spec/blobsync_spec.rb +154 -0
  1196. data/spec/{framework_spec/app/spec → phone_spec/app/Spec}/bsearch_spec.rb +0 -0
  1197. data/spec/phone_spec/app/Spec/bulksync_spec.rb +74 -0
  1198. data/spec/phone_spec/app/Spec/contacts_spec.rb +23 -25
  1199. data/spec/phone_spec/app/Spec/crypt_spec.rb +14 -0
  1200. data/spec/phone_spec/app/Spec/date_spec.rb +17 -0
  1201. data/spec/{framework_spec/app/spec → phone_spec/app/Spec}/fixtures/client_info.txt +0 -0
  1202. data/spec/phone_spec/app/Spec/fixtures/object_values.txt +90 -0
  1203. data/spec/phone_spec/app/Spec/json_spec.rb +79 -42
  1204. data/spec/phone_spec/app/Spec/mapview_spec.rb +10 -12
  1205. data/spec/phone_spec/app/Spec/nativebar_spec.rb +5 -7
  1206. data/spec/phone_spec/app/Spec/navbar_spec.rb +6 -9
  1207. data/spec/phone_spec/app/Spec/pagination/fixtures/object_values.txt +91 -0
  1208. data/spec/phone_spec/app/Spec/rho_controller_spec.rb +156 -0
  1209. data/spec/phone_spec/app/Spec/rho_spec.rb +483 -0
  1210. data/spec/phone_spec/app/Spec/rhofile_spec.rb +52 -18
  1211. data/spec/phone_spec/app/Spec/rhom_object_spec.rb +835 -0
  1212. data/spec/phone_spec/app/Spec/syncengine_spec.rb +287 -0
  1213. data/spec/phone_spec/app/Spec/xml_spec.rb +88 -24
  1214. data/spec/phone_spec/app/Spec/xruby_spec.rb +61 -4
  1215. data/spec/phone_spec/app/SpecRunner/controller.rb +22 -0
  1216. data/spec/phone_spec/app/SpecRunner/index.erb +17 -0
  1217. data/spec/phone_spec/app/index.erb +1 -1
  1218. data/spec/phone_spec/app/spec_runner.rb +41 -0
  1219. data/spec/phone_spec/build.yml +16 -6
  1220. data/spec/phone_spec/rhoconfig.txt +2 -1
  1221. data/spec/phone_spec/server.rb +5 -0
  1222. metadata +944 -696
  1223. data/platform/android/Rhodes/jni/include/rhodes/SystemInfoImpl.h +0 -26
  1224. data/platform/android/Rhodes/jni/include/rhodes/jni/com_rhomobile_rhodes_Rhodes.h +0 -131
  1225. data/platform/android/Rhodes/jni/src/syncengine.cpp +0 -13
  1226. data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesInstance.java +0 -40
  1227. data/platform/iphone/Classes/RhoFileImpl.m +0 -40
  1228. data/platform/iphone/Classes/rho/common/RhoClassFactory.cpp +0 -26
  1229. data/platform/iphone/Classes/rho/common/RhoClassFactory.h +0 -34
  1230. data/platform/iphone/Classes/rho/common/SystemInfoImpl.h +0 -20
  1231. data/platform/shared/common/ISystemInfo.h +0 -16
  1232. data/platform/shared/common/rhoparams.c +0 -105
  1233. data/platform/shared/rubyJVM/src/com/rho/Convert.java +0 -1989
  1234. data/platform/shared/rubyJVM/src/com/rho/IRhoRubyHelper.java +0 -34
  1235. data/platform/shared/rubyJVM/src/com/rho/RhoClassFactory.java +0 -122
  1236. data/platform/shared/rubyJVM/src/com/rho/RhoConf.java +0 -370
  1237. data/platform/shared/rubyJVM/src/com/rho/RhoLogger.java +0 -275
  1238. data/platform/shared/rubyJVM/src/com/rho/RhoRuby.java +0 -333
  1239. data/platform/shared/rubyJVM/src/com/rho/RhodesApp.java +0 -308
  1240. data/platform/shared/rubyJVM/src/com/rho/db/DBAdapter.java +0 -1189
  1241. data/platform/shared/rubyJVM/src/com/rho/file/RandomAccessFile.java +0 -229
  1242. data/platform/shared/rubyJVM/src/com/rho/net/AsyncHttp.java +0 -401
  1243. data/platform/shared/rubyJVM/src/com/rho/net/NetRequest.java +0 -692
  1244. data/platform/shared/rubyJVM/src/com/rho/net/RhoConnection.java +0 -847
  1245. data/platform/shared/rubyJVM/src/com/rho/rjson/RJSONTokener.java +0 -247
  1246. data/platform/shared/rubyJVM/src/com/rho/sync/JSONArrayIterator.java +0 -62
  1247. data/platform/shared/rubyJVM/src/com/rho/sync/JSONEntry.java +0 -75
  1248. data/platform/shared/rubyJVM/src/com/rho/sync/JSONStructIterator.java +0 -74
  1249. data/platform/shared/rubyJVM/src/com/rho/sync/SyncEngine.java +0 -846
  1250. data/platform/shared/rubyJVM/src/com/rho/sync/SyncNotify.java +0 -664
  1251. data/platform/shared/rubyJVM/src/com/rho/sync/SyncSource.java +0 -954
  1252. data/platform/shared/rubyJVM/src/com/rho/sync/SyncThread.java +0 -822
  1253. data/platform/shared/rubyJVM/src/com/xruby/GeneratedMethods/RubyString_Methods.java +0 -264
  1254. data/platform/shared/rubyJVM/src/com/xruby/GeneratedMethods/RubySymbol_Methods.java +0 -37
  1255. data/platform/shared/rubyJVM/src/com/xruby/runtime/builtin/RubyDir.java +0 -307
  1256. data/platform/shared/rubyJVM/src/com/xruby/runtime/builtin/RubyFile.java +0 -312
  1257. data/platform/shared/rubyJVM/src/com/xruby/runtime/builtin/RubyIO.java +0 -395
  1258. data/platform/shared/rubyJVM/src/com/xruby/runtime/builtin/RubyIOFileExecutor.java +0 -218
  1259. data/platform/shared/rubyJVM/src/com/xruby/runtime/builtin/RubyString.java +0 -1462
  1260. data/platform/shared/rubyJVM/src/com/xruby/runtime/lang/RhoSupport.java +0 -364
  1261. data/platform/shared/rubyJVM/src/com/xruby/runtime/lang/RubyConstant.java +0 -26
  1262. data/platform/shared/rubyJVM/src/com/xruby/runtime/lang/RubyRuntime.java +0 -482
  1263. data/platform/shared/rubyJVM/src/com/xruby/runtime/lang/RubySymbol.java +0 -303
  1264. data/platform/shared/rubyJVM/src/j2me/io/File.java +0 -222
  1265. data/platform/shared/rubyJVM/src/j2me/util/StringParser.java +0 -236
  1266. data/platform/shared/rubyJVM/src/javolution/context/package.html +0 -123
  1267. data/platform/shared/rubyJVM/src/javolution/io/package.html +0 -5
  1268. data/platform/shared/rubyJVM/src/javolution/lang/package.html +0 -4
  1269. data/platform/shared/rubyJVM/src/javolution/text/package.html +0 -56
  1270. data/platform/shared/rubyJVM/src/javolution/util/FastTable.java +0 -975
  1271. data/platform/shared/rubyJVM/src/javolution/util/package.html +0 -244
  1272. data/platform/shared/rubyJVM/src/org/json/me/JSONArray.java +0 -871
  1273. data/platform/shared/rubyJVM/src/org/json/me/JSONException.java +0 -27
  1274. data/platform/shared/rubyJVM/src/org/json/me/JSONObject.java +0 -1290
  1275. data/platform/shared/rubyJVM/src/org/json/me/JSONString.java +0 -18
  1276. data/platform/shared/rubyJVM/src/org/json/me/JSONTokener.java +0 -460
  1277. data/platform/shared/rubyext/RhoRuby.cpp +0 -31
  1278. data/platform/shared/rubyext/RhoRuby.h +0 -32
  1279. data/platform/wm/rhodes/rho/common/SystemInfoImpl.h +0 -21
  1280. data/res/generators/templates/spec/app/fileutils.rb +0 -1592
  1281. data/res/generators/templates/spec/app/mspec/guards/endian.rb +0 -44
  1282. data/spec/framework_spec/app/Account/account.rb +0 -7
  1283. data/spec/framework_spec/app/BulkTest/bulk_test.rb +0 -9
  1284. data/spec/framework_spec/app/Customer/customer.rb +0 -6
  1285. data/spec/framework_spec/app/Product/controller.rb +0 -62
  1286. data/spec/framework_spec/app/Product/product.rb +0 -9
  1287. data/spec/framework_spec/app/fileutils.rb +0 -1592
  1288. data/spec/framework_spec/app/mspec/expectations/expectations.rb +0 -17
  1289. data/spec/framework_spec/app/mspec/expectations/should.rb +0 -25
  1290. data/spec/framework_spec/app/mspec/expectations.rb +0 -2
  1291. data/spec/framework_spec/app/mspec/fileutils.rb +0 -1589
  1292. data/spec/framework_spec/app/mspec/guards/background.rb +0 -21
  1293. data/spec/framework_spec/app/mspec/guards/bug.rb +0 -24
  1294. data/spec/framework_spec/app/mspec/guards/compliance.rb +0 -37
  1295. data/spec/framework_spec/app/mspec/guards/conflict.rb +0 -18
  1296. data/spec/framework_spec/app/mspec/guards/extensions.rb +0 -20
  1297. data/spec/framework_spec/app/mspec/guards/guard.rb +0 -165
  1298. data/spec/framework_spec/app/mspec/guards/noncompliance.rb +0 -20
  1299. data/spec/framework_spec/app/mspec/guards/platform.rb +0 -43
  1300. data/spec/framework_spec/app/mspec/guards/quarantine.rb +0 -17
  1301. data/spec/framework_spec/app/mspec/guards/runner.rb +0 -34
  1302. data/spec/framework_spec/app/mspec/guards/superuser.rb +0 -17
  1303. data/spec/framework_spec/app/mspec/guards/support.rb +0 -20
  1304. data/spec/framework_spec/app/mspec/guards/tty.rb +0 -20
  1305. data/spec/framework_spec/app/mspec/guards/version.rb +0 -38
  1306. data/spec/framework_spec/app/mspec/guards.rb +0 -16
  1307. data/spec/framework_spec/app/mspec/helpers/argv.rb +0 -43
  1308. data/spec/framework_spec/app/mspec/helpers/bignum.rb +0 -5
  1309. data/spec/framework_spec/app/mspec/helpers/const_lookup.rb +0 -9
  1310. data/spec/framework_spec/app/mspec/helpers/ducktype.rb +0 -33
  1311. data/spec/framework_spec/app/mspec/helpers/enumerator_class.rb +0 -9
  1312. data/spec/framework_spec/app/mspec/helpers/environment.rb +0 -32
  1313. data/spec/framework_spec/app/mspec/helpers/fixture.rb +0 -20
  1314. data/spec/framework_spec/app/mspec/helpers/flunk.rb +0 -5
  1315. data/spec/framework_spec/app/mspec/helpers/fs.rb +0 -58
  1316. data/spec/framework_spec/app/mspec/helpers/hash.rb +0 -27
  1317. data/spec/framework_spec/app/mspec/helpers/infinity.rb +0 -5
  1318. data/spec/framework_spec/app/mspec/helpers/io.rb +0 -17
  1319. data/spec/framework_spec/app/mspec/helpers/language_version.rb +0 -20
  1320. data/spec/framework_spec/app/mspec/helpers/metaclass.rb +0 -7
  1321. data/spec/framework_spec/app/mspec/helpers/mock_to_path.rb +0 -7
  1322. data/spec/framework_spec/app/mspec/helpers/nan.rb +0 -5
  1323. data/spec/framework_spec/app/mspec/helpers/ruby_exe.rb +0 -123
  1324. data/spec/framework_spec/app/mspec/helpers/scratch.rb +0 -17
  1325. data/spec/framework_spec/app/mspec/helpers/tmp.rb +0 -32
  1326. data/spec/framework_spec/app/mspec/helpers.rb +0 -19
  1327. data/spec/framework_spec/app/mspec/matchers/base.rb +0 -95
  1328. data/spec/framework_spec/app/mspec/matchers/be_an_instance_of.rb +0 -26
  1329. data/spec/framework_spec/app/mspec/matchers/be_ancestor_of.rb +0 -24
  1330. data/spec/framework_spec/app/mspec/matchers/be_close.rb +0 -27
  1331. data/spec/framework_spec/app/mspec/matchers/be_empty.rb +0 -20
  1332. data/spec/framework_spec/app/mspec/matchers/be_false.rb +0 -20
  1333. data/spec/framework_spec/app/mspec/matchers/be_kind_of.rb +0 -24
  1334. data/spec/framework_spec/app/mspec/matchers/be_nil.rb +0 -20
  1335. data/spec/framework_spec/app/mspec/matchers/be_true.rb +0 -20
  1336. data/spec/framework_spec/app/mspec/matchers/complain.rb +0 -56
  1337. data/spec/framework_spec/app/mspec/matchers/eql.rb +0 -26
  1338. data/spec/framework_spec/app/mspec/matchers/equal.rb +0 -26
  1339. data/spec/framework_spec/app/mspec/matchers/equal_element.rb +0 -78
  1340. data/spec/framework_spec/app/mspec/matchers/equal_utf16.rb +0 -34
  1341. data/spec/framework_spec/app/mspec/matchers/have_constant.rb +0 -30
  1342. data/spec/framework_spec/app/mspec/matchers/have_instance_method.rb +0 -24
  1343. data/spec/framework_spec/app/mspec/matchers/have_method.rb +0 -24
  1344. data/spec/framework_spec/app/mspec/matchers/have_private_instance_method.rb +0 -24
  1345. data/spec/framework_spec/app/mspec/matchers/have_public_instance_method.rb +0 -24
  1346. data/spec/framework_spec/app/mspec/matchers/include.rb +0 -32
  1347. data/spec/framework_spec/app/mspec/matchers/match_yaml.rb +0 -47
  1348. data/spec/framework_spec/app/mspec/matchers/method.rb +0 -14
  1349. data/spec/framework_spec/app/mspec/matchers/output.rb +0 -67
  1350. data/spec/framework_spec/app/mspec/matchers/output_to_fd.rb +0 -71
  1351. data/spec/framework_spec/app/mspec/matchers/raise_error.rb +0 -49
  1352. data/spec/framework_spec/app/mspec/matchers/respond_to.rb +0 -24
  1353. data/spec/framework_spec/app/mspec/matchers/stringsymboladapter.rb +0 -8
  1354. data/spec/framework_spec/app/mspec/matchers.rb +0 -25
  1355. data/spec/framework_spec/app/mspec/mocks/mock.rb +0 -159
  1356. data/spec/framework_spec/app/mspec/mocks/object.rb +0 -24
  1357. data/spec/framework_spec/app/mspec/mocks/proxy.rb +0 -151
  1358. data/spec/framework_spec/app/mspec/mocks.rb +0 -3
  1359. data/spec/framework_spec/app/mspec/pp.rb +0 -893
  1360. data/spec/framework_spec/app/mspec/runner/actions/debug.rb +0 -17
  1361. data/spec/framework_spec/app/mspec/runner/actions/filter.rb +0 -40
  1362. data/spec/framework_spec/app/mspec/runner/actions/gdb.rb +0 -17
  1363. data/spec/framework_spec/app/mspec/runner/actions/tag.rb +0 -133
  1364. data/spec/framework_spec/app/mspec/runner/actions/taglist.rb +0 -56
  1365. data/spec/framework_spec/app/mspec/runner/actions/tagpurge.rb +0 -56
  1366. data/spec/framework_spec/app/mspec/runner/actions/tally.rb +0 -116
  1367. data/spec/framework_spec/app/mspec/runner/actions/timer.rb +0 -22
  1368. data/spec/framework_spec/app/mspec/runner/actions.rb +0 -8
  1369. data/spec/framework_spec/app/mspec/runner/context.rb +0 -188
  1370. data/spec/framework_spec/app/mspec/runner/example.rb +0 -34
  1371. data/spec/framework_spec/app/mspec/runner/exception.rb +0 -43
  1372. data/spec/framework_spec/app/mspec/runner/filters/match.rb +0 -22
  1373. data/spec/framework_spec/app/mspec/runner/filters/profile.rb +0 -54
  1374. data/spec/framework_spec/app/mspec/runner/filters/regexp.rb +0 -7
  1375. data/spec/framework_spec/app/mspec/runner/filters/tag.rb +0 -29
  1376. data/spec/framework_spec/app/mspec/runner/filters.rb +0 -4
  1377. data/spec/framework_spec/app/mspec/runner/formatters/describe.rb +0 -24
  1378. data/spec/framework_spec/app/mspec/runner/formatters/dotted.rb +0 -98
  1379. data/spec/framework_spec/app/mspec/runner/formatters/file.rb +0 -19
  1380. data/spec/framework_spec/app/mspec/runner/formatters/html.rb +0 -81
  1381. data/spec/framework_spec/app/mspec/runner/formatters/method.rb +0 -93
  1382. data/spec/framework_spec/app/mspec/runner/formatters/specdoc.rb +0 -41
  1383. data/spec/framework_spec/app/mspec/runner/formatters/spinner.rb +0 -99
  1384. data/spec/framework_spec/app/mspec/runner/formatters/summary.rb +0 -11
  1385. data/spec/framework_spec/app/mspec/runner/formatters/unit.rb +0 -21
  1386. data/spec/framework_spec/app/mspec/runner/formatters/yaml.rb +0 -44
  1387. data/spec/framework_spec/app/mspec/runner/formatters.rb +0 -10
  1388. data/spec/framework_spec/app/mspec/runner/mspec.rb +0 -361
  1389. data/spec/framework_spec/app/mspec/runner/object.rb +0 -24
  1390. data/spec/framework_spec/app/mspec/runner/shared.rb +0 -12
  1391. data/spec/framework_spec/app/mspec/runner/tag.rb +0 -32
  1392. data/spec/framework_spec/app/mspec/runner.rb +0 -15
  1393. data/spec/framework_spec/app/mspec/utils/name_map.rb +0 -129
  1394. data/spec/framework_spec/app/mspec/utils/options.rb +0 -441
  1395. data/spec/framework_spec/app/mspec/utils/ruby_name.rb +0 -8
  1396. data/spec/framework_spec/app/mspec/utils/script.rb +0 -220
  1397. data/spec/framework_spec/app/mspec/utils/version.rb +0 -53
  1398. data/spec/framework_spec/app/mspec/version.rb +0 -5
  1399. data/spec/framework_spec/app/spec/blobsync_spec.rb +0 -155
  1400. data/spec/framework_spec/app/spec/bulksync_spec.rb +0 -65
  1401. data/spec/framework_spec/app/spec/fixtures/object_values.txt +0 -90
  1402. data/spec/framework_spec/app/spec/pagination/fixtures/object_values.txt +0 -91
  1403. data/spec/framework_spec/app/spec/rho_controller_spec.rb +0 -143
  1404. data/spec/framework_spec/app/spec/rho_spec.rb +0 -69
  1405. data/spec/framework_spec/app/spec/rhoerror_spec.rb +0 -40
  1406. data/spec/framework_spec/app/spec/rhom_db_adapter_spec.rb +0 -27
  1407. data/spec/framework_spec/app/spec/rhom_object_spec.rb +0 -660
  1408. data/spec/framework_spec/app/spec/rhom_spec.rb +0 -60
  1409. data/spec/framework_spec/app/spec/rhoruby_spec.rb +0 -31
  1410. data/spec/framework_spec/app/spec/syncengine_spec.rb +0 -190
  1411. data/spec/phone_spec/app/Spec/controller.rb +0 -69
  1412. data/spec/phone_spec/app/Spec/index.erb +0 -17
  1413. data/spec/phone_spec/app/Spec/spec_runner.rb +0 -22
@@ -1,1989 +0,0 @@
1
- package j2me.lang;
2
-
3
- import j2me.math.HugeInt;
4
- import j2me.lang.ArrayMe;
5
-
6
- public class Convert {
7
-
8
- public static final byte[] intToByteArray(int i) {
9
- if (i == Integer.MIN_VALUE)
10
- //return (byte[])MIN_INT_BYTE_ARRAY.clone();
11
- return ArrayMe.clone(MIN_INT_BYTE_ARRAY);
12
- int size = (i < 0) ? arraySize(-i) + 1 : arraySize(i);
13
- byte[] buf = new byte[size];
14
- getCharBytes(i, size, buf);
15
- return buf;
16
- }
17
-
18
-
19
- public static final byte[] intToByteArray(int i, int radix, boolean upper) {
20
- if (radix < Character.MIN_RADIX || radix > Character.MAX_RADIX)
21
- radix = 10;
22
- if (radix == 10)
23
- return intToByteArray(i); // much faster for base 10
24
- byte buf[] = new byte[33];
25
- byte[] digits = upper ? UCDIGITS : DIGITS;
26
- boolean negative = (i < 0);
27
- int charPos = 32;
28
- if (!negative) {
29
- i = -i;
30
- }
31
- while (i <= -radix) {
32
- buf[charPos--] = digits[-(i % radix)];
33
- i = i / radix;
34
- }
35
- buf[charPos] = digits[-i];
36
- if (negative) {
37
- buf[--charPos] = '-';
38
- }
39
- int len = 33 - charPos;
40
- byte[] out = new byte[len];
41
- System.arraycopy(buf,charPos,out,0,len);
42
- return out;
43
- }
44
-
45
- public static final byte[] longToByteArray(long i) {
46
- if (i == Long.MIN_VALUE)
47
- //return (byte[])MIN_LONG_BYTE_ARRAY.clone();
48
- return ArrayMe.clone(MIN_LONG_BYTE_ARRAY);
49
- // int version is slightly faster, use if possible
50
- if (i <= Integer.MAX_VALUE && i >= Integer.MIN_VALUE)
51
- return intToByteArray((int)i);
52
- int size = (i < 0) ? arraySize(-i) + 1 : arraySize(i);
53
- byte[] buf = new byte[size];
54
- getCharBytes(i, size, buf);
55
- return buf;
56
- }
57
-
58
- public static final byte[] longToByteArray(long i, int radix, boolean upper) {
59
- if (radix < Character.MIN_RADIX || radix > Character.MAX_RADIX)
60
- radix = 10;
61
- if (radix == 10)
62
- return longToByteArray(i); // much faster for base 10
63
- byte[] buf = new byte[65];
64
- byte[] digits = upper ? UCDIGITS : DIGITS;
65
- int charPos = 64;
66
- boolean negative = (i < 0);
67
- if (!negative) {
68
- i = -i;
69
- }
70
- while (i <= -radix) {
71
- buf[charPos--] = digits[(int)(-(i % radix))];
72
- i = i / radix;
73
- }
74
- buf[charPos] = digits[(int)(-i)];
75
- if (negative) {
76
- buf[--charPos] = '-';
77
- }
78
- int len = 65 - charPos;
79
- byte[] out = new byte[len];
80
- System.arraycopy(buf,charPos,out,0,len);
81
- return out;
82
- }
83
-
84
- public static final byte[] intToCharBytes(int i) {
85
- if (i == Integer.MIN_VALUE)
86
- //return (byte[])MIN_INT_BYTE_ARRAY.clone();
87
- return ArrayMe.clone(MIN_INT_BYTE_ARRAY);
88
- int size = (i < 0) ? arraySize(-i) + 1 : arraySize(i);
89
- byte[] buf = new byte[size];
90
- getCharBytes(i, size, buf);
91
- return buf;
92
- }
93
-
94
- public static final byte[] longToCharBytes(long i) {
95
- if (i == Long.MIN_VALUE)
96
- //return (byte[])MIN_LONG_BYTE_ARRAY.clone();
97
- return ArrayMe.clone(MIN_LONG_BYTE_ARRAY);
98
- int size = (i < 0) ? arraySize(-i) + 1 : arraySize(i);
99
- byte[] buf = new byte[size];
100
- getCharBytes(i, size, buf);
101
- return buf;
102
- }
103
- public static final char[] longToChars(long i) {
104
- if (i == Long.MIN_VALUE)
105
- //return (char[])MIN_LONG_CHAR_ARRAY.clone();
106
- return ArrayMe.clone(MIN_LONG_CHAR_ARRAY);
107
- int size = (i < 0) ? arraySize(-i) + 1 : arraySize(i);
108
- char[] buf = new char[size];
109
- getChars(i, size, buf);
110
- return buf;
111
- }
112
-
113
- public static final void getCharBytes(int i, int index, byte[] buf) {
114
- int q, r;
115
- int charPos = index;
116
- byte sign = 0;
117
-
118
- if (i < 0) {
119
- sign = '-';
120
- i = -i;
121
- }
122
-
123
- // Generate two digits per iteration
124
- while (i >= 65536) {
125
- q = i / 100;
126
- // really: r = i - (q * 100);
127
- r = i - ((q << 6) + (q << 5) + (q << 2));
128
- i = q;
129
- buf [--charPos] = DIGIT_ONES[r];
130
- buf [--charPos] =DIGIT_TENS[r];
131
- }
132
-
133
- // Fall thru to fast mode for smaller numbers
134
- // assert(i <= 65536, i);
135
- for (;;) {
136
- q = (i * 52429) >>> (16+3);
137
- r = i - ((q << 3) + (q << 1)); // r = i-(q*10) ...
138
- buf [--charPos] = DIGITS[r];
139
- i = q;
140
- if (i == 0) break;
141
- }
142
- if (sign != 0) {
143
- buf [--charPos] = sign;
144
- }
145
- }
146
-
147
- public static final void getCharBytes(long i, int index, byte[] buf) {
148
- long q;
149
- int r;
150
- int charPos = index;
151
- byte sign = 0;
152
-
153
- if (i < 0) {
154
- sign = '-';
155
- i = -i;
156
- }
157
-
158
- // Get 2 digits/iteration using longs until quotient fits into an int
159
- while (i > Integer.MAX_VALUE) {
160
- q = i / 100;
161
- // really: r = i - (q * 100);
162
- r = (int)(i - ((q << 6) + (q << 5) + (q << 2)));
163
- i = q;
164
- buf[--charPos] = DIGIT_ONES[r];
165
- buf[--charPos] =DIGIT_TENS[r];
166
- }
167
-
168
- // Get 2 digits/iteration using ints
169
- int q2;
170
- int i2 = (int)i;
171
- while (i2 >= 65536) {
172
- q2 = i2 / 100;
173
- // really: r = i2 - (q * 100);
174
- r = i2 - ((q2 << 6) + (q2 << 5) + (q2 << 2));
175
- i2 = q2;
176
- buf[--charPos] = DIGIT_ONES[r];
177
- buf[--charPos] =DIGIT_TENS[r];
178
- }
179
-
180
- // Fall thru to fast mode for smaller numbers
181
- // assert(i2 <= 65536, i2);
182
- for (;;) {
183
- q2 = (i2 * 52429) >>> (16+3);
184
- r = i2 - ((q2 << 3) + (q2 << 1)); // r = i2-(q2*10) ...
185
- buf[--charPos] = DIGITS[r];
186
- i2 = q2;
187
- if (i2 == 0) break;
188
- }
189
- if (sign != 0) {
190
- buf[--charPos] = sign;
191
- }
192
- }
193
- public static final void getChars(long i, int index, char[] buf) {
194
- long q;
195
- int r;
196
- int charPos = index;
197
- char sign = 0;
198
-
199
- if (i < 0) {
200
- sign = '-';
201
- i = -i;
202
- }
203
-
204
- // Get 2 digits/iteration using longs until quotient fits into an int
205
- while (i > Integer.MAX_VALUE) {
206
- q = i / 100;
207
- // really: r = i - (q * 100);
208
- r = (int)(i - ((q << 6) + (q << 5) + (q << 2)));
209
- i = q;
210
- buf[--charPos] = CDIGIT_ONES[r];
211
- buf[--charPos] = CDIGIT_TENS[r];
212
- }
213
-
214
- // Get 2 digits/iteration using ints
215
- int q2;
216
- int i2 = (int)i;
217
- while (i2 >= 65536) {
218
- q2 = i2 / 100;
219
- // really: r = i2 - (q * 100);
220
- r = i2 - ((q2 << 6) + (q2 << 5) + (q2 << 2));
221
- i2 = q2;
222
- buf[--charPos] = CDIGIT_ONES[r];
223
- buf[--charPos] = CDIGIT_TENS[r];
224
- }
225
-
226
- // Fall thru to fast mode for smaller numbers
227
- // assert(i2 <= 65536, i2);
228
- for (;;) {
229
- q2 = (i2 * 52429) >>> (16+3);
230
- r = i2 - ((q2 << 3) + (q2 << 1)); // r = i2-(q2*10) ...
231
- buf[--charPos] = CDIGITS[r];
232
- i2 = q2;
233
- if (i2 == 0) break;
234
- }
235
- if (sign != 0) {
236
- buf[--charPos] = sign;
237
- }
238
- }
239
-
240
- public static final int arraySize(long x) {
241
- long p = 10;
242
- for (int i=1; i<19; i++) {
243
- if (x < p)
244
- return i;
245
- p = 10*p;
246
- }
247
- return 19;
248
- }
249
-
250
- public static final int arraySize(int x) {
251
- for (int i=0; ; i++)
252
- if (x <= SIZE_TABLE[i])
253
- return i+1;
254
- }
255
- // the following group of conversions to binary/octal/hex
256
- // is mostly for use by the new sprintf code
257
- public static final byte[] intToBinaryBytes(int i) {
258
- return intToUnsignedBytes(i, 1, false);
259
- }
260
- public static final byte[] intToOctalBytes(int i) {
261
- return intToUnsignedBytes(i, 3, false);
262
- }
263
- public static final byte[] intToHexBytes(int i) {
264
- return intToUnsignedBytes(i, 4, false);
265
- }
266
-
267
- public static final byte[] intToHexBytes(int i, boolean upper) {
268
- return intToUnsignedBytes(i, 4, upper);
269
- }
270
-
271
-
272
- public static final byte[] longToBinaryBytes(long i) {
273
- return longToUnsignedBytes(i, 1, false);
274
- }
275
- public static final byte[] longToOctalBytes(long i) {
276
- return longToUnsignedBytes(i, 3, false);
277
- }
278
- public static final byte[] longToHexBytes(long i) {
279
- return longToUnsignedBytes(i, 4, false);
280
- }
281
-
282
- public static final byte[] longToHexBytes(long i, boolean upper) {
283
- return longToUnsignedBytes(i, 4, upper);
284
- }
285
-
286
- public static final byte[] intToRawUnsignedBytes(int i, int shift) {
287
- byte[] buf = new byte[32];
288
- int charPos = 32;
289
- int radix = 1 << shift;
290
- int mask = radix - 1;
291
- do {
292
- buf[--charPos] = DIGITS[i & mask];
293
- i >>>= shift;
294
- } while (i != 0);
295
- return buf;
296
- }
297
-
298
- public static final byte[] intToUnsignedBytes(int i, int shift, boolean upper) {
299
- byte[] buf = new byte[32];
300
- int charPos = 32;
301
- int radix = 1 << shift;
302
- int mask = radix - 1;
303
- byte[] digits = upper ? UCDIGITS : DIGITS;
304
- do {
305
- buf[--charPos] = digits[i & mask];
306
- i >>>= shift;
307
- } while (i != 0);
308
- int length = 32 - charPos;
309
- byte[] result = new byte[length];
310
- System.arraycopy(buf,charPos,result,0,length);
311
- return result;
312
- }
313
-
314
- public static final byte[] longToRawUnsignedBytes(long i, int shift) {
315
- byte[] buf = new byte[64];
316
- int charPos = 64;
317
- int radix = 1 << shift;
318
- long mask = radix - 1;
319
- do {
320
- buf[--charPos] = DIGITS[(int)(i & mask)];
321
- i >>>= shift;
322
- } while (i != 0);
323
- return buf;
324
- }
325
-
326
- public static final byte[] longToUnsignedBytes(long i, int shift, boolean upper) {
327
- byte[] buf = new byte[64];
328
- int charPos = 64;
329
- int radix = 1 << shift;
330
- long mask = radix - 1;
331
- byte[] digits = upper ? UCDIGITS : DIGITS;
332
- do {
333
- buf[--charPos] = digits[(int)(i & mask)];
334
- i >>>= shift;
335
- } while (i != 0);
336
- int length = 64 - charPos;
337
- byte[] result = new byte[length];
338
- System.arraycopy(buf,charPos,result,0,length);
339
- return result;
340
- }
341
-
342
- public static final long byteArrayToLong(byte[] bytes, int begin, int buflen, int base, boolean strict) {
343
- final int SCOMPLETE = 0;
344
- final int SBEGIN = 1;
345
- final int SSIGN = 2;
346
- final int SZERO = 3;
347
- final int SPOST_SIGN = 4;
348
- final int SDIGITS = 5;
349
- final int SDIGIT = 6;
350
- final int SDIGIT_STRICT = 7;
351
- final int SDIGIT_USC = 8;
352
- final int SEOD_STRICT = 13;
353
- final int SEOF = 14;
354
- final int SERR_NOT_STRICT = 17;
355
- final int SERR_TOO_BIG = 18;
356
- final int FLAG_NEGATIVE = 1 << 0;
357
- final int FLAG_DIGIT = 1 << 1;
358
- final int FLAG_UNDERSCORE = 1 << 2;
359
- final int FLAG_WHITESPACE = 1 << 3;
360
-
361
- if (bytes == null) {
362
- throw new IllegalArgumentException("null bytes");
363
- }
364
- if (buflen < 0 || buflen > bytes.length) {
365
- throw new IllegalArgumentException("invalid buflen specified");
366
- }
367
- int radix = base == 0 ? 10 : base;
368
- if (radix < Character.MIN_RADIX || radix > Character.MAX_RADIX) {
369
- throw new IllegalArgumentException("illegal radix " + radix);
370
- }
371
- if (buflen == 0) {
372
- throw new RuntimeException("InvalidInteger");//InvalidIntegerException();
373
- }
374
- int i = begin;
375
- buflen += begin;
376
- byte ival;
377
- int flags = 0;
378
- long limit = -Long.MAX_VALUE;
379
- long result = 0;
380
- long multmin = 0;
381
- int digit;
382
- int state = SBEGIN;
383
- while (state != SCOMPLETE) {
384
- states:
385
- switch(state) {
386
- case SBEGIN:
387
- if (strict) {
388
- for (; i < buflen && isWhitespace(bytes[i]); i++) ;
389
- } else {
390
- for (; i < buflen && (isWhitespace(ival = bytes[i]) || ival == '_'); i++) ;
391
- }
392
- state = i < buflen ? SSIGN : SEOF;
393
- break;
394
- case SSIGN:
395
- switch(bytes[i]) {
396
- case '-':
397
- flags |= FLAG_NEGATIVE;
398
- limit = Long.MIN_VALUE;
399
- case '+':
400
- if (++i >= buflen) {
401
- state = SEOF;
402
- } else if (bytes[i] == '0') {
403
- state = SZERO;
404
- } else {
405
- state = SPOST_SIGN;
406
- }
407
- break states;
408
- case '0':
409
- state = SZERO;
410
- break states;
411
- default:
412
- state = SDIGITS;
413
- break states;
414
- }
415
- case SZERO:
416
- if (++i >= buflen) {
417
- state = SCOMPLETE;
418
- break;
419
- }
420
- switch (bytes[i]) {
421
- case 'x':
422
- case 'X':
423
- if (base == 0 || base == 16) {
424
- radix = 16;
425
- state = ++i >= buflen ? SEOF : SPOST_SIGN;
426
- } else {
427
- state = SDIGITS;
428
- }
429
- break states;
430
- case 'b':
431
- case 'B':
432
- if (base == 0 || base == 2) {
433
- radix = 2;
434
- state = ++i >= buflen ? SEOF : SPOST_SIGN;
435
- } else {
436
- state = SDIGITS;
437
- }
438
- break states;
439
- case 'd':
440
- case 'D':
441
- if (base == 0 || base == 10) {
442
- radix = 10;
443
- state = ++i >= buflen ? SEOF : SPOST_SIGN;
444
- } else {
445
- state = SDIGITS;
446
- }
447
- break states;
448
- case 'o':
449
- case 'O':
450
- case '_':
451
- if (base == 0 || base == 8) {
452
- radix = 8;
453
- state = ++i >= buflen ? SEOF : SPOST_SIGN;
454
- } else {
455
- state = SDIGITS;
456
- }
457
- break states;
458
- default:
459
- if (base == 0 || base == 8) {
460
- radix = 8;
461
- }
462
- flags |= FLAG_DIGIT;
463
- state = SDIGITS;
464
- break states;
465
- }
466
- case SPOST_SIGN:
467
- if (strict) {
468
- int ibefore = i;
469
- for (; i < buflen && isWhitespace(bytes[i]); i++) ;
470
- if (ibefore != i) {
471
- // set this to enforce no-underscore rule (though I think
472
- // it's an MRI bug)
473
- flags |= FLAG_WHITESPACE;
474
- }
475
- } else {
476
- for ( ; i < buflen && (isWhitespace(ival = bytes[i]) || ival == '_'); i++) {
477
- if (ival == '_') {
478
- if ((flags & FLAG_WHITESPACE) != 0) {
479
- throw new RuntimeException("InvalidInteger");//InvalidIntegerException();
480
- }
481
- flags |= FLAG_UNDERSCORE;
482
- } else {
483
- if ((flags & FLAG_UNDERSCORE) != 0) {
484
- throw new RuntimeException("InvalidInteger");//InvalidIntegerException();
485
- }
486
- flags |= FLAG_WHITESPACE;
487
- }
488
- }
489
- }
490
- state = i < buflen ? SDIGITS : SEOF;
491
- break;
492
- case SDIGITS:
493
- digit = Character.digit((char) bytes[i],radix);
494
- if (digit < 0) {
495
- state = strict ? SEOD_STRICT : SEOF;
496
- break;
497
- }
498
- result = -digit;
499
- if (++i >= buflen) {
500
- state = SCOMPLETE;
501
- break;
502
- }
503
- multmin = limit / radix;
504
- flags = (flags | FLAG_DIGIT) & ~FLAG_UNDERSCORE;
505
- state = strict ? SDIGIT_STRICT : SDIGIT;
506
- break;
507
-
508
- case SDIGIT:
509
- while ((digit = Character.digit((char) bytes[i],radix)) >= 0) {
510
- if (result < multmin || ((result *= radix) < limit + digit)) {
511
- state = SERR_TOO_BIG;
512
- break states;
513
- }
514
- result -= digit;
515
- if (++i >= buflen) {
516
- state = SCOMPLETE;
517
- break states;
518
- }
519
- }
520
- state = bytes[i++] == '_' ? SDIGIT_USC : SEOF;
521
- break;
522
- case SDIGIT_USC:
523
- for ( ; i < buflen && bytes[i] == '_'; i++) ;
524
- state = i < buflen ? SDIGIT : SEOF;
525
- break;
526
-
527
- case SDIGIT_STRICT:
528
- while ((digit = Character.digit((char) bytes[i],radix)) >= 0) {
529
- if (result < multmin || ((result *= radix) < limit + digit)) {
530
- state = SERR_TOO_BIG;
531
- break states;
532
- }
533
- result -= digit;
534
- if (++i >= buflen) {
535
- state = SCOMPLETE;
536
- break states;
537
- }
538
- flags &= ~FLAG_UNDERSCORE;
539
- }
540
- if (bytes[i] == '_') {
541
- if ((flags & (FLAG_UNDERSCORE | FLAG_WHITESPACE)) != 0) {
542
- state = SERR_NOT_STRICT;
543
- break;
544
- }
545
- flags |= FLAG_UNDERSCORE;
546
- state = ++i >= buflen ? SEOD_STRICT : SDIGIT_STRICT;
547
- } else {
548
- state = SEOD_STRICT;
549
- }
550
- break;
551
-
552
- case SEOD_STRICT:
553
- if ((flags & FLAG_UNDERSCORE)!= 0) {
554
- state = SERR_NOT_STRICT;
555
- break;
556
- }
557
- for ( ; i < buflen && isWhitespace(bytes[i]); i++ );
558
- state = i < buflen ? SERR_NOT_STRICT : SCOMPLETE;
559
- break;
560
-
561
- case SEOF:
562
- if ((flags & FLAG_DIGIT) == 0) {
563
- throw new RuntimeException("no digits supplied");
564
- }
565
- state = SCOMPLETE;
566
- break;
567
-
568
- case SERR_TOO_BIG:
569
- throw new RuntimeException("can't convert to long");
570
-
571
- case SERR_NOT_STRICT:
572
- throw new RuntimeException("does not meet strict criteria");
573
-
574
- } // switch
575
- } //while
576
- if ((flags & FLAG_NEGATIVE) == 0) {
577
- return -result;
578
- } else {
579
- return result;
580
- }
581
- }
582
-
583
- public static final HugeInt byteArrayToBigInteger(byte[] bytes, int begin, int buflen, int base, boolean strict) {
584
- final int SCOMPLETE = 0;
585
- final int SBEGIN = 1;
586
- final int SSIGN = 2;
587
- final int SZERO = 3;
588
- final int SPOST_SIGN = 4;
589
- final int SDIGITS = 5;
590
- final int SDIGIT = 6;
591
- final int SDIGIT_STRICT = 7;
592
- final int SDIGIT_USC = 8;
593
- final int SEOD_STRICT = 13;
594
- final int SEOF = 14;
595
- final int SERR_NOT_STRICT = 17;
596
- final int FLAG_NEGATIVE = 1 << 0;
597
- final int FLAG_DIGIT = 1 << 1;
598
- final int FLAG_UNDERSCORE = 1 << 2;
599
- final int FLAG_WHITESPACE = 1 << 3;
600
-
601
- if (bytes == null) {
602
- throw new IllegalArgumentException("null bytes");
603
- }
604
- if (buflen < 0 || buflen > bytes.length) {
605
- throw new IllegalArgumentException("invalid buflen specified");
606
- }
607
- int radix = base == 0 ? 10 : base;
608
- if (radix < Character.MIN_RADIX || radix > Character.MAX_RADIX) {
609
- throw new IllegalArgumentException("illegal radix " + radix);
610
- }
611
- if (buflen == 0) {
612
- throw new RuntimeException("InvalidInteger");//InvalidIntegerException();
613
- }
614
- int i = begin;
615
- buflen += begin;
616
- byte ival;
617
- int flags = 0;
618
- int digit;
619
- int offset = 0;
620
- char[] chars = null;
621
- int state = SBEGIN;
622
- while (state != SCOMPLETE) {
623
- states:
624
- switch(state) {
625
- case SBEGIN:
626
- if (strict) {
627
- for (; i < buflen && isWhitespace(bytes[i]); i++) ;
628
- } else {
629
- for (; i < buflen && (isWhitespace(ival = bytes[i]) || ival == '_'); i++) ;
630
- }
631
- state = i < buflen ? SSIGN : SEOF;
632
- break;
633
- case SSIGN:
634
- switch(bytes[i]) {
635
- case '-':
636
- flags |= FLAG_NEGATIVE;
637
- case '+':
638
- if (++i >= buflen) {
639
- state = SEOF;
640
- } else if (bytes[i] == '0') {
641
- state = SZERO;
642
- } else {
643
- state = SPOST_SIGN;
644
- }
645
- break states;
646
- case '0':
647
- state = SZERO;
648
- break states;
649
- default:
650
- state = SDIGITS;
651
- break states;
652
- }
653
- case SZERO:
654
- if (++i >= buflen) {
655
- state = SCOMPLETE;
656
- break;
657
- }
658
- switch (bytes[i]) {
659
- case 'x':
660
- case 'X':
661
- if (base == 0 || base == 16) {
662
- radix = 16;
663
- state = ++i >= buflen ? SEOF : SPOST_SIGN;
664
- } else {
665
- state = SDIGITS;
666
- }
667
- break states;
668
- case 'b':
669
- case 'B':
670
- if (base == 0 || base == 2) {
671
- radix = 2;
672
- state = ++i >= buflen ? SEOF : SPOST_SIGN;
673
- } else {
674
- state = SDIGITS;
675
- }
676
- break states;
677
- default:
678
- if (base == 0 || base == 8) {
679
- radix = 8;
680
- }
681
- flags |= FLAG_DIGIT;
682
- state = SDIGITS;
683
- break states;
684
- }
685
- case SPOST_SIGN:
686
- if (strict) {
687
- int ibefore = i;
688
- for (; i < buflen && isWhitespace(bytes[i]); i++) ;
689
- if (ibefore != i) {
690
- // set this to enforce no-underscore rule (though I think
691
- // it's an MRI bug)
692
- flags |= FLAG_WHITESPACE;
693
- }
694
- } else {
695
- for ( ; i < buflen && (isWhitespace(ival = bytes[i]) || ival == '_'); i++) {
696
- if (ival == '_') {
697
- if ((flags & FLAG_WHITESPACE) != 0) {
698
- throw new RuntimeException("InvalidInteger");//InvalidIntegerException();
699
- }
700
- flags |= FLAG_UNDERSCORE;
701
- } else {
702
- if ((flags & FLAG_UNDERSCORE) != 0) {
703
- throw new RuntimeException("InvalidInteger");//InvalidIntegerException();
704
- }
705
- flags |= FLAG_WHITESPACE;
706
- }
707
- }
708
- }
709
- state = i < buflen ? SDIGITS : SEOF;
710
- break;
711
- case SDIGITS:
712
- digit = Character.digit((char) bytes[i],radix);
713
- if (digit < 0) {
714
- state = strict ? SEOD_STRICT : SEOF;
715
- break;
716
- }
717
- if ((flags & FLAG_NEGATIVE) == 0) {
718
- chars = new char[buflen - i];
719
- chars[0] = (char)bytes[i];
720
- offset = 1;
721
- } else {
722
- chars = new char[buflen - i + 1];
723
- chars[0] = '-';
724
- chars[1] = (char)bytes[i];
725
- offset = 2;
726
- }
727
- if (++i >= buflen) {
728
- state = SCOMPLETE;
729
- break;
730
- }
731
- flags = (flags | FLAG_DIGIT) & ~FLAG_UNDERSCORE;
732
- state = strict ? SDIGIT_STRICT : SDIGIT;
733
- break;
734
-
735
- case SDIGIT:
736
- while ((digit = Character.digit((char) bytes[i],radix)) >= 0) {
737
- chars[offset++] = (char)bytes[i];
738
- if (++i >= buflen) {
739
- state = SCOMPLETE;
740
- break states;
741
- }
742
- }
743
- state = bytes[i++] == '_' ? SDIGIT_USC : SEOF;
744
- break;
745
- case SDIGIT_USC:
746
- for ( ; i < buflen && bytes[i] == '_'; i++) ;
747
- state = i < buflen ? SDIGIT : SEOF;
748
- break;
749
-
750
- case SDIGIT_STRICT:
751
- while ((digit = Character.digit((char)bytes[i],radix)) >= 0) {
752
- chars[offset++] = (char)bytes[i];
753
- if (++i >= buflen) {
754
- state = SCOMPLETE;
755
- break states;
756
- }
757
- flags &= ~FLAG_UNDERSCORE;
758
- }
759
- if (bytes[i] == '_') {
760
- if ((flags & (FLAG_UNDERSCORE | FLAG_WHITESPACE)) != 0) {
761
- state = SERR_NOT_STRICT;
762
- break;
763
- }
764
- flags |= FLAG_UNDERSCORE;
765
- state = ++i >= buflen ? SEOD_STRICT : SDIGIT_STRICT;
766
- } else {
767
- state = SEOD_STRICT;
768
- }
769
- break;
770
-
771
- case SEOD_STRICT:
772
- if ((flags & FLAG_UNDERSCORE)!= 0) {
773
- state = SERR_NOT_STRICT;
774
- break;
775
- }
776
- for ( ; i < buflen && isWhitespace(bytes[i]); i++ );
777
- state = i < buflen ? SERR_NOT_STRICT : SCOMPLETE;
778
- break;
779
-
780
- case SEOF:
781
- if ((flags & FLAG_DIGIT) == 0) {
782
- throw new RuntimeException("no digits supplied");
783
- }
784
- state = SCOMPLETE;
785
- break;
786
-
787
- case SERR_NOT_STRICT:
788
- throw new RuntimeException("does not meet strict criteria");
789
-
790
- } // switch
791
- } //while
792
- if (chars == null) { // 0, won't happen if byteArrayToLong called first
793
- return BIG_INT_ZERO;
794
- } else {
795
- return new HugeInt(new String(chars,0,offset),radix);
796
- }
797
- }
798
-
799
- public static final double byteArrayToDouble(byte[] bytes, int begin, int buflen, boolean strict) {
800
- // Simple cases ( abs(exponent) <= 22 [up to 37 depending on significand length])
801
- // are converted directly, which is considerably faster than creating a Java
802
- // String and passing it to Double.parseDouble() (which in turn passes it to
803
- // sun.misc.FloatingDecimal); the latter approach involves 5 object allocations
804
- // (3 arrays + String + FloatingDecimal) and 3 array copies, two of them one byte/char
805
- // at a time (here and in FloatingDecimal).
806
- // However, the latter approach is employed for more difficult cases (generally
807
- // speaking, those that require rounding). (The code for the difficult cases is
808
- // quite involved; see sun.misc.FloatingDecimal.java if you're interested.)
809
-
810
- // states
811
- final int SCOMPLETE = 0;
812
- final int SBEGIN = 1; // remove leading whitespace (includes _ for lax)
813
- final int SSIGN = 2; // get sign, if any
814
-
815
- // optimistic pass - calculate value as digits are processed
816
- final int SOPTDIGIT = 3; // digits - lax rules
817
- final int SOPTDECDIGIT = 4; // decimal digits - lax rules
818
- final int SOPTEXP = 9; // exponent sign/digits - lax rules
819
- final int SOPTDIGIT_STRICT = 6; // digits - strict rules
820
- final int SOPTDECDIGIT_STRICT = 7; // decimal digits - strict rules
821
- final int SOPTEXP_STRICT = 8; // exponent sign/digits - strict rules
822
- final int SOPTCALC = 5; // complete calculation if possible
823
-
824
- // fallback pass - gather chars into array and pass to Double.parseDouble()
825
- final int SDIGIT = 10; // digits - lax rules
826
- final int SDECDIGIT = 11; // decimal digits - lax rules
827
- final int SEXP = 12; // exponent sign/digits - lax rules
828
- final int SDIGIT_STRICT = 13; // digits - strict rules
829
- final int SDECDIGIT_STRICT = 14; // decimal digits - strict rules
830
- final int SEXP_STRICT = 15; // exponent sign/digits - strict rules
831
-
832
- final int SERR_NOT_STRICT = 16;
833
-
834
- // largest abs(exponent) we can (potentially) handle without
835
- // calling Double.parseDouble() (aka sun.misc.FloatingDecimal)
836
- final int MAX_EXP = MAX_DECIMAL_DIGITS + MAX_SMALL_10; // (37)
837
-
838
- if (bytes == null) {
839
- throw new IllegalArgumentException("null bytes");
840
- }
841
- if (buflen < 0 || buflen > bytes.length) {
842
- throw new IllegalArgumentException("invalid buflen specified");
843
- }
844
- // TODO: get rid of this (lax returns 0.0, strict will throw)
845
- if (buflen == 0) {
846
- throw new NumberFormatException();
847
- }
848
- int i = begin;
849
- buflen += begin;
850
- byte ival = -1;
851
- boolean negative = false;
852
-
853
- // fields used for direct (optimistic) calculation
854
- int nDigits = 0; // number of significant digits, updated as parsed
855
- int nTrailingZeroes = 0; // zeroes that may go to significand or exponent
856
- int decPos = -1; // offset of decimal pt from start (-1 -> no decimal)
857
- long significand = 0; // significand, updated as parsed
858
- int exponent = 0; // exponent, updated as parsed
859
-
860
- // fields used for fallback (send to Double.parseDouble())
861
- int startPos = 0; // start of digits (or . if no leading digits)
862
- char[] chars = null;
863
- int offset = 0;
864
- int lastValidOffset = 0;
865
-
866
- int state = SBEGIN;
867
- while (state != SCOMPLETE) {
868
- states:
869
- switch(state) {
870
- case SBEGIN:
871
- if (strict) {
872
- for (; i < buflen && isWhitespace(bytes[i]); i++) ;
873
- } else {
874
- for (; i < buflen && (isWhitespace(ival = bytes[i]) || ival == '_'); i++) ;
875
- }
876
- if ( i >= buflen) {
877
- state = strict ? SERR_NOT_STRICT : SCOMPLETE;
878
- break;
879
- }
880
- // drop through for sign
881
- case SSIGN:
882
- switch(bytes[i]) {
883
- case '-':
884
- negative = true;
885
- case '+':
886
- if (++i >= buflen) {
887
- // TODO: turn off the negative? will return -0.0 in lax mode
888
- state = strict ? SERR_NOT_STRICT : SCOMPLETE;
889
- break states;
890
- }
891
- } // switch
892
- startPos = i; // will use this if we have to go back the slow way
893
- if (strict) {
894
- state = SOPTDIGIT_STRICT;
895
- break;
896
- }
897
- // drop through for non-strict digits
898
- case SOPTDIGIT:
899
- // first char must be digit or decimal point
900
- switch(ival = bytes[i++]) {
901
- case '0':
902
- // ignore leading zeroes
903
- break; // switch
904
- case '1': case '2': case '3': case '4':
905
- case '5': case '6': case '7': case '8': case '9':
906
- significand = (long)((int)ival-(int)'0');
907
- nDigits = 1;
908
- break; // switch
909
- case '.':
910
- state = SOPTDECDIGIT;
911
- break states;
912
- default:
913
- // no digits, go calc (will return +/- 0.0 for lax)
914
- state = SOPTCALC;
915
- break states;
916
- } // switch
917
- for ( ; i < buflen ; ) {
918
- switch(ival = bytes[i++]) {
919
- case '0':
920
- // ignore leading zeroes
921
- if (nDigits > 0) {
922
- // just save a count of zeroes for now; if no digit
923
- // ends up following them, they'll be applied to the
924
- // exponent rather than the significand (and our max
925
- // length for optimistic calc).
926
- nTrailingZeroes++;
927
- }
928
- break; // switch
929
- case '1': case '2': case '3': case '4':
930
- case '5': case '6': case '7': case '8': case '9':
931
- // ok, got a non-zero, have to own up to our horded zeroes
932
- if (nTrailingZeroes > 0) {
933
- if ((nDigits += nTrailingZeroes) < MAX_DECIMAL_DIGITS) {
934
- significand *= LONG_10_POWERS[nTrailingZeroes];
935
- nTrailingZeroes = 0;
936
- } // else catch oversize below
937
- }
938
- if (nDigits++ < MAX_DECIMAL_DIGITS) {
939
- significand = significand*10L + (long)((int)ival-(int)'0');
940
- break; // switch
941
- } else {
942
- // oh, well, it was worth a try. go let
943
- // Double/FloatingDecimal handle it
944
- state = SDIGIT;
945
- break states;
946
- }
947
- case '.':
948
- state = SOPTDECDIGIT;
949
- break states;
950
- case 'e':
951
- case 'E':
952
- state = SOPTEXP;
953
- break states;
954
- case '_':
955
- // ignore
956
- break; // switch
957
- default:
958
- // end of parseable data, go to calc
959
- state = SOPTCALC;
960
- break states;
961
-
962
- } // switch
963
- } // for
964
- state = SOPTCALC;
965
- break;
966
-
967
- case SOPTDECDIGIT:
968
- decPos = nDigits + nTrailingZeroes;
969
- for ( ; i < buflen && bytes[i] == '_'; i++ ) ;
970
- // first non_underscore char must be digit
971
- if (i < buflen) {
972
- switch(ival = bytes[i++]) {
973
- case '0':
974
- if (nDigits > 0) {
975
- nTrailingZeroes++;
976
- } else {
977
- exponent--;
978
- }
979
- break; // switch
980
- case '1': case '2': case '3': case '4':
981
- case '5': case '6': case '7': case '8': case '9':
982
- if (nTrailingZeroes > 0) {
983
- if ((nDigits += nTrailingZeroes) < MAX_DECIMAL_DIGITS) {
984
- significand *= LONG_10_POWERS[nTrailingZeroes];
985
- nTrailingZeroes = 0;
986
- } // else catch oversize below
987
- }
988
- if (nDigits++ < MAX_DECIMAL_DIGITS) {
989
- significand = significand*10L + (long)((int)ival-(int)'0');
990
- break; // switch
991
- } else {
992
- state = SDIGIT;
993
- break states;
994
- }
995
- default:
996
- // no dec digits, end of parseable data, go to calc
997
- state = SOPTCALC;
998
- break states;
999
-
1000
- } // switch
1001
- } // if
1002
- for ( ; i < buflen ; ) {
1003
- switch(ival = bytes[i++]) {
1004
- case '0':
1005
- if (nDigits > 0) {
1006
- nTrailingZeroes++;
1007
- } else {
1008
- exponent--;
1009
- }
1010
- break; // switch
1011
- case '1': case '2': case '3': case '4':
1012
- case '5': case '6': case '7': case '8': case '9':
1013
- if (nTrailingZeroes > 0) {
1014
- if ((nDigits += nTrailingZeroes) < MAX_DECIMAL_DIGITS) {
1015
- significand *= LONG_10_POWERS[nTrailingZeroes];
1016
- nTrailingZeroes = 0;
1017
- } // else catch oversize below
1018
- }
1019
- if (nDigits++ < MAX_DECIMAL_DIGITS) {
1020
- significand = significand*10L + (long)((int)ival-(int)'0');
1021
- break; // switch
1022
- } else {
1023
- state = SDIGIT;
1024
- break states;
1025
- }
1026
- case 'e':
1027
- case 'E':
1028
- state = SOPTEXP;
1029
- break states;
1030
- case '_':
1031
- // ignore
1032
- break; // switch
1033
- default:
1034
- // end of parseable data, go to calc
1035
- state = SOPTCALC;
1036
- break states;
1037
- } // switch
1038
- } // for
1039
- // no exponent, so drop through for calculation
1040
- case SOPTCALC:
1041
- // calculation for simple (and typical) case,
1042
- // adapted from sun.misc.FloatingDecimal
1043
- if (nDigits == 0) {
1044
- if (i + 1 < buflen) {
1045
- if ((ival == 'n' || ival == 'N') &&
1046
- (bytes[i] == 'a' || bytes[i] == 'A') &&
1047
- (bytes[i+1] == 'n' || bytes[i+1] == 'N')) {
1048
- return Double.NaN;
1049
- } else if ((ival == 'i' || ival == 'I') &&
1050
- (bytes[i] == 'n' || bytes[i] == 'N') &&
1051
- (bytes[i+1] == 'f' || bytes[i+1] == 'F')) {
1052
- return negative ? Double.NEGATIVE_INFINITY : Double.POSITIVE_INFINITY;
1053
- }
1054
- }
1055
- return negative ? -0.0d : 0.0d;
1056
- }
1057
- if (decPos < 0) {
1058
- exponent += nTrailingZeroes;
1059
- } else {
1060
- exponent += decPos - nDigits;
1061
- }
1062
- double dValue = (double)significand;
1063
- if (exponent == 0 || dValue == 0.0) {
1064
- return negative ? -dValue : dValue;
1065
- } else if ( exponent >= 0 ){
1066
- if ( exponent <= MAX_SMALL_10 ){
1067
- dValue *= SMALL_10_POWERS[exponent];
1068
- return negative ? -dValue : dValue;
1069
- }
1070
- int slop = MAX_DECIMAL_DIGITS - nDigits;
1071
- if ( exponent <= MAX_SMALL_10+slop ){
1072
- dValue = (dValue * SMALL_10_POWERS[slop]) * SMALL_10_POWERS[exponent-slop];
1073
- return negative ? -dValue : dValue;
1074
- }
1075
- } else {
1076
- // TODO: it's not clear to me why, in FloatingDecimal, the
1077
- // "slop" calculation performed above for positive exponents
1078
- // isn't used for negative exponents as well. Will find out...
1079
- if ( exponent >= -MAX_SMALL_10 ){
1080
- dValue = dValue / SMALL_10_POWERS[-exponent];
1081
- return negative ? -dValue : dValue;
1082
- }
1083
- }
1084
- // difficult case, send to Double/FloatingDecimal
1085
- state = SDIGIT;
1086
- break;
1087
-
1088
- case SOPTEXP:
1089
- {
1090
- // lax (str.to_f) allows underscores between e/E and sign
1091
- for ( ; i < buflen && bytes[i] == '_' ; i++ ) ;
1092
- if (i >= buflen) {
1093
- state = SOPTCALC;
1094
- break;
1095
- }
1096
- int expSign = 1;
1097
- int expSpec = 0;
1098
- switch (bytes[i]) {
1099
- case '-':
1100
- expSign = -1;
1101
- case '+':
1102
- if (++i >= buflen) {
1103
- state = SOPTCALC;
1104
- break states;
1105
- }
1106
- }
1107
- for ( ; i < buflen ; ) {
1108
- switch(ival = bytes[i++]) {
1109
- case '0': case '1': case '2': case '3': case '4':
1110
- case '5': case '6': case '7': case '8': case '9':
1111
- if ((expSpec = expSpec * 10 + ((int)ival-(int)'0')) >= MAX_EXP) {
1112
- // too big for us
1113
- state = SDIGIT;
1114
- break states;
1115
- }
1116
- break; //switch
1117
- case '_':
1118
- break; //switch
1119
- default:
1120
- exponent += expSign * expSpec;
1121
- state = SOPTCALC;
1122
- break states;
1123
- }
1124
- }
1125
- exponent += expSign * expSpec;
1126
- state = SOPTCALC;
1127
- break;
1128
- } // block
1129
-
1130
- case SOPTDIGIT_STRICT:
1131
- // first char must be digit or decimal point
1132
- switch(ival = bytes[i++]) {
1133
- case '0':
1134
- break; // switch
1135
- case '1': case '2': case '3': case '4':
1136
- case '5': case '6': case '7': case '8': case '9':
1137
- significand = (long)((int)ival-(int)'0');
1138
- nDigits = 1;
1139
- break; // switch
1140
- case '.':
1141
- state = SOPTDECDIGIT_STRICT;
1142
- break states;
1143
- default:
1144
- // no digits, error
1145
- state = SERR_NOT_STRICT;
1146
- break states;
1147
- }
1148
- for ( ; i < buflen ; ) {
1149
- switch(ival = bytes[i++]) {
1150
- case '0':
1151
- if (nDigits > 0) {
1152
- nTrailingZeroes++;
1153
- }
1154
- break; // switch
1155
- case '1': case '2': case '3': case '4':
1156
- case '5': case '6': case '7': case '8': case '9':
1157
- if (nTrailingZeroes > 0) {
1158
- if ((nDigits += nTrailingZeroes) < MAX_DECIMAL_DIGITS) {
1159
- significand *= LONG_10_POWERS[nTrailingZeroes];
1160
- nTrailingZeroes = 0;
1161
- } // else catch oversize below
1162
- }
1163
- if (nDigits++ < MAX_DECIMAL_DIGITS) {
1164
- significand = significand*10L + (long)((int)ival-(int)'0');
1165
- break; // switch
1166
- } else {
1167
- state = SDIGIT;
1168
- break states;
1169
- }
1170
- case '.':
1171
- state = SOPTDECDIGIT_STRICT;
1172
- break states;
1173
- case 'e':
1174
- case 'E':
1175
- state = SOPTEXP_STRICT;
1176
- break states;
1177
- case '_':
1178
- if (i >= buflen || bytes[i] < '0' || bytes[i] > '9') {
1179
- state = SERR_NOT_STRICT;
1180
- break states;
1181
- }
1182
- break; // switch
1183
- default:
1184
- // only whitespace allowed after value for strict
1185
- for ( --i; i < buflen && isWhitespace(bytes[i]); i++ );
1186
- state = i < buflen ? SERR_NOT_STRICT : SOPTCALC;
1187
- break states;
1188
- } // switch
1189
- } // for
1190
- // no more data, OK for strict to go calc
1191
- state = SOPTCALC;
1192
- break;
1193
-
1194
- case SOPTDECDIGIT_STRICT:
1195
- decPos = nDigits + nTrailingZeroes;
1196
- // first char must be digit
1197
- if (i < buflen) {
1198
- switch(ival = bytes[i++]) {
1199
- case '0':
1200
- if (nDigits > 0) {
1201
- nTrailingZeroes++;
1202
- } else {
1203
- exponent--;
1204
- }
1205
- break; // switch
1206
- case '1': case '2': case '3': case '4':
1207
- case '5': case '6': case '7': case '8': case '9':
1208
- if (nTrailingZeroes > 0) {
1209
- if ((nDigits += nTrailingZeroes) < MAX_DECIMAL_DIGITS) {
1210
- significand *= LONG_10_POWERS[nTrailingZeroes];
1211
- nTrailingZeroes = 0;
1212
- } // else catch oversize below
1213
- }
1214
- if (nDigits++ < MAX_DECIMAL_DIGITS) {
1215
- significand = significand*10L + (long)((int)ival-(int)'0');
1216
- break; // switch
1217
- } else {
1218
- state = SDIGIT;
1219
- break states;
1220
- }
1221
- default:
1222
- // no dec digits after '.', error for strict
1223
- state = SERR_NOT_STRICT;
1224
- break states;
1225
-
1226
- } // switch
1227
- } else {
1228
- state = SERR_NOT_STRICT;
1229
- break;
1230
- }
1231
- for ( ; i < buflen ; ) {
1232
- switch(ival = bytes[i++]) {
1233
- case '0':
1234
- if (nDigits > 0) {
1235
- nTrailingZeroes++;
1236
- } else {
1237
- exponent--;
1238
- }
1239
- break; // switch
1240
- case '1': case '2': case '3': case '4':
1241
- case '5': case '6': case '7': case '8': case '9':
1242
- if (nTrailingZeroes > 0) {
1243
- if ((nDigits += nTrailingZeroes) < MAX_DECIMAL_DIGITS) {
1244
- significand *= LONG_10_POWERS[nTrailingZeroes];
1245
- nTrailingZeroes = 0;
1246
- } // else catch oversize below
1247
- }
1248
- if (nDigits++ < MAX_DECIMAL_DIGITS) {
1249
- significand = significand*10L + (long)((int)ival-(int)'0');
1250
- break; // switch
1251
- } else {
1252
- state = SDIGIT;
1253
- break states;
1254
- }
1255
- case 'e':
1256
- case 'E':
1257
- state = SOPTEXP_STRICT;
1258
- break states;
1259
- case '_':
1260
- if (i >= buflen || bytes[i] < '0' || bytes[i] > '9') {
1261
- state = SERR_NOT_STRICT;
1262
- break states;
1263
- }
1264
- break; // switch
1265
- default:
1266
- // only whitespace allowed after value for strict
1267
- for ( --i; i < buflen && isWhitespace(bytes[i]); i++);
1268
- state = i < buflen ? SERR_NOT_STRICT : SOPTCALC;
1269
- break states;
1270
- } // switch
1271
- } // for
1272
- // no more data, OK for strict to go calc
1273
- state = SOPTCALC;
1274
- break;
1275
-
1276
- case SOPTEXP_STRICT:
1277
- {
1278
- int expSign = 1;
1279
- int expSpec = 0;
1280
-
1281
- if ( i < buflen) {
1282
- switch (bytes[i]) {
1283
- case '-':
1284
- expSign = -1;
1285
- case '+':
1286
- if (++i >= buflen) {
1287
- state = SERR_NOT_STRICT;
1288
- break states;
1289
- }
1290
- }
1291
- } else {
1292
- state = SERR_NOT_STRICT;
1293
- break;
1294
- }
1295
- // must be at least one digit for strict
1296
- if ( i < buflen ) {
1297
- switch(ival = bytes[i++]) {
1298
- case '0': case '1': case '2': case '3': case '4':
1299
- case '5': case '6': case '7': case '8': case '9':
1300
- expSpec = (int)ival-(int)'0';
1301
- break; //switch
1302
- default:
1303
- state = SERR_NOT_STRICT;
1304
- break states;
1305
- }
1306
- } else {
1307
- state = SERR_NOT_STRICT;
1308
- break;
1309
- }
1310
- for ( ; i < buflen ; ) {
1311
- switch(ival = bytes[i++]) {
1312
- case '0': case '1': case '2': case '3': case '4':
1313
- case '5': case '6': case '7': case '8': case '9':
1314
- if ((expSpec = expSpec * 10 + ((int)ival-(int)'0')) >= MAX_EXP) {
1315
- // too big for us
1316
- state = SDIGIT;
1317
- break states;
1318
- }
1319
- break; //switch
1320
- case '_':
1321
- if (i >= buflen || bytes[i] < '0' || bytes[i] > '9') {
1322
- state = SERR_NOT_STRICT;
1323
- break states;
1324
- }
1325
- break; //switch
1326
- default:
1327
- exponent += expSign * expSpec;
1328
- // only whitespace allowed after value for strict
1329
- for ( --i; i < buflen && isWhitespace(bytes[i]); i++);
1330
- state = i < buflen ? SERR_NOT_STRICT : SOPTCALC;
1331
- break states;
1332
- } // switch
1333
- } // for
1334
- exponent += expSign * expSpec;
1335
- state = SOPTCALC;
1336
- break;
1337
- } // block
1338
-
1339
- // fallback, copy non-whitespace chars to char buffer and send
1340
- // to Double.parseDouble() (front for sun.misc.FloatingDecimal)
1341
- case SDIGIT:
1342
- i = startPos;
1343
- if (negative) {
1344
- chars = new char[buflen - i + 1];
1345
- chars[0] = '-';
1346
- offset = 1;
1347
- } else {
1348
- chars = new char[buflen - i];
1349
- }
1350
- if (strict) {
1351
- state = SDIGIT_STRICT;
1352
- break;
1353
- }
1354
- // first char must be digit or decimal point
1355
- if (i < buflen) {
1356
- switch(ival = bytes[i++]) {
1357
- case '0':
1358
- // ignore leading zeroes
1359
- break; // switch
1360
- case '1': case '2': case '3': case '4':
1361
- case '5': case '6': case '7': case '8': case '9':
1362
- chars[offset++] = (char)ival;
1363
- lastValidOffset = offset;
1364
- break; // switch
1365
- case '.':
1366
- state = SDECDIGIT;
1367
- break states;
1368
- default:
1369
- state = SCOMPLETE;
1370
- break states;
1371
- } // switch
1372
- } // if
1373
- for ( ; i < buflen ; ) {
1374
- switch(ival = bytes[i++]) {
1375
- case '0': case '1': case '2': case '3': case '4':
1376
- case '5': case '6': case '7': case '8': case '9':
1377
- chars[offset++] = (char)ival;
1378
- lastValidOffset = offset;
1379
- break; // switch
1380
- case '.':
1381
- state = SDECDIGIT;
1382
- break states;
1383
- case 'e':
1384
- case 'E':
1385
- state = SEXP;
1386
- break states;
1387
- case '_':
1388
- break; // switch
1389
- default:
1390
- state = SCOMPLETE;
1391
- break states;
1392
- } // switch
1393
- } // for
1394
- state = SCOMPLETE;
1395
- break;
1396
-
1397
- case SDECDIGIT:
1398
- chars[offset++] = '.';
1399
- for ( ; i < buflen && bytes[i] == '_'; i++) ;
1400
- if ( i < buflen) {
1401
- switch(ival = bytes[i++]) {
1402
- case '0': case '1': case '2': case '3': case '4':
1403
- case '5': case '6': case '7': case '8': case '9':
1404
- chars[offset++] = (char)ival;
1405
- lastValidOffset = offset;
1406
- break; // switch
1407
- default:
1408
- state = SCOMPLETE;
1409
- break states;
1410
- } // switch
1411
- } // if
1412
- for ( ; i < buflen ; ) {
1413
- switch(ival = bytes[i++]) {
1414
- case '0': case '1': case '2': case '3': case '4':
1415
- case '5': case '6': case '7': case '8': case '9':
1416
- chars[offset++] = (char)ival;
1417
- lastValidOffset = offset;
1418
- break; // switch
1419
- case 'e':
1420
- case 'E':
1421
- state = SEXP;
1422
- break states;
1423
- case '_':
1424
- break; // switch
1425
- default:
1426
- state = SCOMPLETE;
1427
- break states;
1428
- } // switch
1429
- } // for
1430
- state = SCOMPLETE;
1431
- break;
1432
-
1433
- case SEXP:
1434
- chars[offset++] = 'E';
1435
- for ( ; i < buflen && bytes[i] == '_'; i++) ;
1436
- if (i >= buflen) {
1437
- state = SCOMPLETE;
1438
- break;
1439
- }
1440
- switch(bytes[i]) {
1441
- case '-':
1442
- case '+':
1443
- chars[offset++] = (char)bytes[i];
1444
- if (++i >= buflen) {
1445
- state = SCOMPLETE;
1446
- break states;
1447
- }
1448
- }
1449
- for ( ; i < buflen; ) {
1450
- switch(ival = bytes[i++]) {
1451
- case '0': case '1': case '2': case '3': case '4':
1452
- case '5': case '6': case '7': case '8': case '9':
1453
- chars[offset++] = (char)ival;
1454
- lastValidOffset = offset;
1455
- break;
1456
- case '_':
1457
- break;
1458
- default:
1459
- state = SCOMPLETE;
1460
- break states;
1461
- }
1462
- }
1463
- state = SCOMPLETE;
1464
- break;
1465
-
1466
- case SDIGIT_STRICT:
1467
- // first char must be digit or decimal point
1468
- if (i < buflen) {
1469
- switch(ival = bytes[i++]) {
1470
- case '0':
1471
- // ignore leading zeroes
1472
- break; // switch
1473
- case '1': case '2': case '3': case '4':
1474
- case '5': case '6': case '7': case '8': case '9':
1475
- chars[offset++] = (char)ival;
1476
- lastValidOffset = offset;
1477
- break; // switch
1478
- case '.':
1479
- state = SDECDIGIT_STRICT;
1480
- break states;
1481
- default:
1482
- state = SERR_NOT_STRICT;
1483
- break states;
1484
- } // switch
1485
- } else {
1486
- state = SERR_NOT_STRICT;
1487
- break;
1488
- }
1489
- for ( ; i < buflen ; ) {
1490
- switch(ival = bytes[i++]) {
1491
- case '0': case '1': case '2': case '3': case '4':
1492
- case '5': case '6': case '7': case '8': case '9':
1493
- chars[offset++] = (char)ival;
1494
- lastValidOffset = offset;
1495
- break; // switch
1496
- case '.':
1497
- state = SDECDIGIT_STRICT;
1498
- break states;
1499
- case 'e':
1500
- case 'E':
1501
- state = SEXP_STRICT;
1502
- break states;
1503
- case '_':
1504
- if (i >= buflen || bytes[i] < '0' || bytes[i] > '9') {
1505
- state = SERR_NOT_STRICT;
1506
- break states;
1507
- }
1508
- break; //switch
1509
- default:
1510
- // only whitespace allowed after value for strict
1511
- for ( --i; i < buflen && isWhitespace(bytes[i]); i++) ;
1512
- state = i < buflen ? SERR_NOT_STRICT : SCOMPLETE;
1513
- break states;
1514
- } // switch
1515
- } // for
1516
- state = SCOMPLETE;
1517
- break;
1518
-
1519
- case SDECDIGIT_STRICT:
1520
- chars[offset++] = '.';
1521
- if ( i < buflen) {
1522
- switch(ival = bytes[i++]) {
1523
- case '0': case '1': case '2': case '3': case '4':
1524
- case '5': case '6': case '7': case '8': case '9':
1525
- chars[offset++] = (char)ival;
1526
- lastValidOffset = offset;
1527
- break; // switch
1528
- default:
1529
- state = SERR_NOT_STRICT;
1530
- break states;
1531
- } // switch
1532
- } else {
1533
- state = SERR_NOT_STRICT;
1534
- break;
1535
- }
1536
- for ( ; i < buflen ; ) {
1537
- switch(ival = bytes[i++]) {
1538
- case '0': case '1': case '2': case '3': case '4':
1539
- case '5': case '6': case '7': case '8': case '9':
1540
- chars[offset++] = (char)ival;
1541
- lastValidOffset = offset;
1542
- break; // switch
1543
- case 'e':
1544
- case 'E':
1545
- state = SEXP_STRICT;
1546
- break states;
1547
- case '_':
1548
- if (i >= buflen || bytes[i] < '0' || bytes[i] > '9') {
1549
- state = SERR_NOT_STRICT;
1550
- break states;
1551
- }
1552
- break; //switch
1553
- default:
1554
- for ( --i; i < buflen && isWhitespace(bytes[i]); i++) ;
1555
- state = i < buflen ? SERR_NOT_STRICT : SCOMPLETE;
1556
- break states;
1557
- } // switch
1558
- } // for
1559
- state = SCOMPLETE;
1560
- break;
1561
-
1562
- case SEXP_STRICT:
1563
- chars[offset++] = 'E';
1564
- if ( i < buflen ) {
1565
- switch (bytes[i]) {
1566
- case '-':
1567
- case '+':
1568
- chars[offset++] = (char)bytes[i];
1569
- if (++i >= buflen) {
1570
- state = SERR_NOT_STRICT;
1571
- break states;
1572
- }
1573
- }
1574
- } else {
1575
- state = SERR_NOT_STRICT;
1576
- break;
1577
- }
1578
- // must be at least one digit for strict
1579
- if ( i < buflen ) {
1580
- switch(ival = bytes[i++]) {
1581
- case '0': case '1': case '2': case '3': case '4':
1582
- case '5': case '6': case '7': case '8': case '9':
1583
- chars[offset++] = (char)ival;
1584
- lastValidOffset = offset;
1585
- break; //switch
1586
- default:
1587
- state = SERR_NOT_STRICT;
1588
- break states;
1589
- }
1590
- } else {
1591
- state = SERR_NOT_STRICT;
1592
- break;
1593
- }
1594
- for ( ; i < buflen ; ) {
1595
- switch(ival = bytes[i++]) {
1596
- case '0': case '1': case '2': case '3': case '4':
1597
- case '5': case '6': case '7': case '8': case '9':
1598
- chars[offset++] = (char)ival;
1599
- lastValidOffset = offset;
1600
- break;
1601
- case '_':
1602
- if (i >= buflen || bytes[i] < '0' || bytes[i] > '9') {
1603
- state = SERR_NOT_STRICT;
1604
- break states;
1605
- }
1606
- break; //switch
1607
- default:
1608
- for ( --i; i < buflen && isWhitespace(bytes[i]); i++) ;
1609
- state = i < buflen ? SERR_NOT_STRICT : SCOMPLETE;
1610
- break states;
1611
- }
1612
- }
1613
- state = SCOMPLETE;
1614
- break;
1615
-
1616
- case SERR_NOT_STRICT:
1617
- throw new NumberFormatException("does not meet strict criteria");
1618
-
1619
- } // switch
1620
- } //while
1621
- if (chars == null || lastValidOffset == 0) {
1622
- return 0.0;
1623
- } else {
1624
- return Double.parseDouble(new String(chars,0,lastValidOffset));
1625
- }
1626
- }
1627
-
1628
- public static final byte[] twosComplementToBinaryBytes(byte[] in) {
1629
- return twosComplementToUnsignedBytes(in,1,false);
1630
- }
1631
- public static final byte[] twosComplementToOctalBytes(byte[] in) {
1632
- return twosComplementToUnsignedBytes(in,3,false);
1633
- }
1634
- public static final byte[] twosComplementToHexBytes(byte[] in, boolean upper) {
1635
- return twosComplementToUnsignedBytes(in,4,upper);
1636
- }
1637
- // shift is power of 2, so 1 = binary, 3 - octal, 4 = hex, anyhing
1638
- // larger will error.
1639
- public static final byte[] twosComplementToUnsignedBytes(byte[] in, int shift, boolean upper) {
1640
- if (shift < 1 || shift > 4) {
1641
- throw new IllegalArgumentException("shift value must be 1-4");
1642
- }
1643
- int ilen = in.length;
1644
- int olen = (ilen * 8 + shift - 1 ) / shift;
1645
- byte[] out = new byte[olen];
1646
- int mask = (1 << shift) - 1;
1647
- byte[] digits = upper ? UCDIGITS : DIGITS;
1648
- int bitbuf = 0;
1649
- int bitcnt = 0;
1650
- for (int i = ilen, o = olen; --o >= 0; ) {
1651
- if (bitcnt < shift) {
1652
- bitbuf |= ((int)in[--i] & (int)0xff) << bitcnt;
1653
- bitcnt += 8;
1654
- }
1655
- out[o] = digits[bitbuf & mask];
1656
- bitbuf >>= shift;
1657
- bitcnt -= shift;
1658
- }
1659
- return out;
1660
- }
1661
-
1662
- // The following two methods, used in conjunction, provide the
1663
- // equivalent of String#trim()
1664
- public static final int skipLeadingWhitespace(byte[] bytes){
1665
- int length = bytes.length;
1666
- int start = 0;
1667
- for ( ; start < length && isWhitespace(bytes[start]); start++) ;
1668
- return start;
1669
- }
1670
- public static final int skipTrailingWhitespace(byte[] bytes) {
1671
- int stop = bytes.length - 1;
1672
- for ( ; stop >= 0 && isWhitespace(bytes[stop]); stop-- ) ;
1673
- return stop + 1;
1674
- }
1675
-
1676
- private static final boolean isWhitespace(final byte b) {
1677
- return b == ' ' || (b <= 13 && b >= 9 && b != 11);
1678
- }
1679
-
1680
- public static final byte[] trim (byte[] bytes) {
1681
- if (bytes.length == 0)
1682
- return bytes;
1683
- int start = skipLeadingWhitespace(bytes);
1684
- if (start >= bytes.length) {
1685
- return EMPTY_BYTES;
1686
- }
1687
- int stop = skipTrailingWhitespace(bytes);
1688
- int length = stop - start;
1689
- if (length == bytes.length)
1690
- return bytes;
1691
- byte[] trimmed = new byte[length];
1692
- System.arraycopy(bytes,0,trimmed,0,length);
1693
- return trimmed;
1694
- }
1695
-
1696
- public static final byte[] delete(byte[] bytes, int pos, boolean copy) {
1697
- int buflen = bytes.length;
1698
- int newlen = buflen - 1;
1699
- if (pos < 0 || pos > newlen) {
1700
- throw new IllegalArgumentException("illegal position for delete");
1701
- }
1702
- int src = pos + 1;
1703
- if (copy) {
1704
- if (newlen == 0) {
1705
- return EMPTY_BYTES;
1706
- }
1707
- byte[] newbytes = new byte[newlen];
1708
- if (pos == 0) {
1709
- System.arraycopy(bytes,1,newbytes,0,newlen);
1710
- } else {
1711
- System.arraycopy(bytes,0,newbytes,0,pos);
1712
- System.arraycopy(bytes,src,newbytes,pos,newlen-pos);
1713
- }
1714
- return newbytes;
1715
- } else {
1716
- if (newlen > 0) {
1717
- System.arraycopy(bytes,src,bytes,pos,buflen-src);
1718
- bytes[newlen] = 0;
1719
- } else {
1720
- bytes[newlen-1] = 0;
1721
- }
1722
- return bytes;
1723
- }
1724
- }
1725
- public static final byte[] delete(byte[] bytes, int pos, int length, boolean copy) {
1726
- if (length < 0) {
1727
- throw new IllegalArgumentException("illegal length for delete");
1728
- }
1729
- int buflen = bytes.length;
1730
- if (length == 0 || buflen == 0 ) {
1731
- return bytes;
1732
- }
1733
- int newlen = buflen - length;
1734
- int newpos = pos + length;
1735
- if (pos < 0 || newpos > buflen) {
1736
- throw new IllegalArgumentException("illegal position for delete");
1737
- }
1738
- if (copy) {
1739
- if (newlen == 0) {
1740
- return EMPTY_BYTES;
1741
- }
1742
- byte[] newbytes = new byte[newlen];
1743
- if (pos == 0) {
1744
- System.arraycopy(bytes,length,newbytes,0,newlen);
1745
- } else if (pos == newlen) {
1746
- System.arraycopy(bytes,0,newbytes,0,newlen);
1747
- } else {
1748
- System.arraycopy(bytes,0,newbytes,0,pos);
1749
- System.arraycopy(bytes,newpos,newbytes,pos,buflen-newpos);
1750
- }
1751
- return newbytes;
1752
- } else {
1753
- if (newlen > 0) {
1754
- System.arraycopy(bytes,newpos,bytes,pos,buflen-newpos);
1755
- }
1756
- fill(bytes,newlen,buflen-newlen,(byte)0);
1757
- return bytes;
1758
- }
1759
- }
1760
-
1761
- public static final byte[] insert(byte[] bytes, int pos, byte value, boolean copy) {
1762
- int buflen = bytes.length;
1763
- if (pos < 0 || pos > buflen) {
1764
- throw new IllegalArgumentException("illegal position for insert");
1765
- }
1766
- if (copy) {
1767
- byte[] newbytes = new byte[buflen+1];
1768
- if (pos == 0) {
1769
- System.arraycopy(bytes,0,newbytes,1,buflen);
1770
- newbytes[0] = value;
1771
- } else if (pos == buflen) {
1772
- System.arraycopy(bytes,0,newbytes,0,buflen);
1773
- newbytes[buflen] = value;
1774
- } else {
1775
- System.arraycopy(bytes,0,newbytes,0,pos);
1776
- System.arraycopy(bytes,pos,newbytes,pos+1,buflen-pos);
1777
- newbytes[pos] = value;
1778
- }
1779
- return newbytes;
1780
- } else {
1781
- if (pos == buflen) {
1782
- throw new IllegalArgumentException("illegal position for insert with no copy");
1783
- }
1784
- if (pos > buflen - 1) {
1785
- System.arraycopy(bytes,pos,bytes,pos+1,buflen-pos-1);
1786
- }
1787
- bytes[pos] = value;
1788
- return bytes;
1789
- }
1790
- }
1791
-
1792
- public static final byte[] insert(byte[] bytes, int pos, byte[] value, boolean copy) {
1793
- int buflen = bytes.length;
1794
- if (pos < 0 || pos > buflen) {
1795
- throw new IllegalArgumentException("illegal position for insert");
1796
- }
1797
- int vlen = value.length;
1798
- if (copy) {
1799
- int newlen = buflen + vlen;
1800
- byte[] newbytes = new byte[newlen];
1801
- if (pos == 0) {
1802
- System.arraycopy(value,0,newbytes,0,vlen);
1803
- System.arraycopy(bytes,0,newbytes,vlen,buflen);
1804
- } else if (pos == buflen) {
1805
- System.arraycopy(bytes,0,newbytes,0,buflen);
1806
- System.arraycopy(value,0,newbytes,buflen,vlen);
1807
- } else {
1808
- System.arraycopy(bytes,0,newbytes,0,pos);
1809
- System.arraycopy(value,0,newbytes,pos,vlen);
1810
- System.arraycopy(bytes,pos,newbytes,pos+vlen,buflen-pos);
1811
- }
1812
- return newbytes;
1813
- } else {
1814
- int displace = pos + vlen;
1815
- if (displace > buflen) {
1816
- throw new IllegalArgumentException("inserted array won't fit in target array");
1817
- }
1818
- if (pos == 0) {
1819
- System.arraycopy(bytes,0,bytes,vlen,buflen-vlen);
1820
- System.arraycopy(value,0,bytes,0,vlen);
1821
- } else if (displace == buflen) {
1822
- System.arraycopy(value,0,bytes,pos,vlen);
1823
- } else {
1824
- System.arraycopy(bytes,pos,bytes,displace,buflen-displace);
1825
- System.arraycopy(value,0,bytes,pos,vlen);
1826
- }
1827
- return bytes;
1828
- }
1829
-
1830
- }
1831
- public static final byte[] append(byte[] bytes, byte value) {
1832
- int buflen = bytes.length;
1833
- byte[] newbytes = new byte[buflen + 1];
1834
- System.arraycopy(bytes,0,newbytes,0,buflen);
1835
- bytes[buflen] = value;
1836
- return bytes;
1837
- }
1838
-
1839
- public static final byte[] fill(byte[] bytes, int pos, int length, byte value) {
1840
- if (length < 0) {
1841
- throw new IllegalArgumentException("illegal length for fill");
1842
- }
1843
- int buflen = bytes.length;
1844
- int stop = pos + length;
1845
- if (stop > buflen)
1846
- stop = buflen;
1847
- for ( ; pos < stop; pos++) {
1848
- bytes[pos] = value;
1849
- }
1850
- return bytes;
1851
- }
1852
-
1853
- public static final byte[] copy(byte[] bytes) {
1854
- int buflen = bytes.length;
1855
- if (buflen == 0)
1856
- return bytes;
1857
- byte[] newbytes = new byte[buflen];
1858
- System.arraycopy(bytes,0,newbytes,0,buflen);
1859
- return newbytes;
1860
- }
1861
-
1862
- private static final long[] LONG_10_POWERS = {
1863
- 1L,
1864
- 10L,
1865
- 100L,
1866
- 1000L,
1867
- 10000L,
1868
- 100000L,
1869
- 1000000L,
1870
- 10000000L,
1871
- 100000000L,
1872
- 1000000000L,
1873
- 10000000000L,
1874
- 100000000000L,
1875
- 1000000000000L,
1876
- 10000000000000L,
1877
- 100000000000000L,
1878
- 1000000000000000L,
1879
- 10000000000000000L,
1880
- 100000000000000000L
1881
- };
1882
-
1883
- private static final HugeInt BIG_INT_ZERO = HugeInt.valueOf(0L);
1884
-
1885
- private static final byte[] EMPTY_BYTES = {};
1886
-
1887
- private static final byte[] MIN_INT_BYTE_ARRAY = {
1888
- '-','2','1','4','7','4','8','3','6','4','8'
1889
- };
1890
- private static final byte[] MIN_LONG_BYTE_ARRAY = {
1891
- '-','9','2','2','3','3','7','2','0','3','6','8','5','4','7','7','5','8','0','8'
1892
- };
1893
- private static final char[] MIN_LONG_CHAR_ARRAY = {
1894
- '-','9','2','2','3','3','7','2','0','3','6','8','5','4','7','7','5','8','0','8'
1895
- };
1896
- // Tables from java.lang.Integer, converted to byte (used in java.lang.Long as well)
1897
- private static final int[] SIZE_TABLE = { 9, 99, 999, 9999, 99999, 999999, 9999999,
1898
- 99999999, 999999999, Integer.MAX_VALUE };
1899
-
1900
- private static final byte[] DIGITS = {
1901
- '0' , '1' , '2' , '3' , '4' , '5' ,
1902
- '6' , '7' , '8' , '9' , 'a' , 'b' ,
1903
- 'c' , 'd' , 'e' , 'f' , 'g' , 'h' ,
1904
- 'i' , 'j' , 'k' , 'l' , 'm' , 'n' ,
1905
- 'o' , 'p' , 'q' , 'r' , 's' , 't' ,
1906
- 'u' , 'v' , 'w' , 'x' , 'y' , 'z'
1907
- };
1908
-
1909
- private static final byte[] UCDIGITS = {
1910
- '0' , '1' , '2' , '3' , '4' , '5' ,
1911
- '6' , '7' , '8' , '9' , 'A' , 'B' ,
1912
- 'C' , 'D' , 'E' , 'F' , 'G' , 'H' ,
1913
- 'I' , 'J' , 'K' , 'L' , 'M' , 'N' ,
1914
- 'O' , 'P' , 'Q' , 'R' , 'S' , 'T' ,
1915
- 'U' , 'V' , 'W' , 'X' , 'Y' , 'Z'
1916
- };
1917
- private static final byte[] DIGIT_TENS = {
1918
- '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
1919
- '1', '1', '1', '1', '1', '1', '1', '1', '1', '1',
1920
- '2', '2', '2', '2', '2', '2', '2', '2', '2', '2',
1921
- '3', '3', '3', '3', '3', '3', '3', '3', '3', '3',
1922
- '4', '4', '4', '4', '4', '4', '4', '4', '4', '4',
1923
- '5', '5', '5', '5', '5', '5', '5', '5', '5', '5',
1924
- '6', '6', '6', '6', '6', '6', '6', '6', '6', '6',
1925
- '7', '7', '7', '7', '7', '7', '7', '7', '7', '7',
1926
- '8', '8', '8', '8', '8', '8', '8', '8', '8', '8',
1927
- '9', '9', '9', '9', '9', '9', '9', '9', '9', '9',
1928
- } ;
1929
-
1930
- private static final byte[] DIGIT_ONES = {
1931
- '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
1932
- '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
1933
- '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
1934
- '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
1935
- '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
1936
- '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
1937
- '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
1938
- '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
1939
- '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
1940
- '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
1941
- } ;
1942
-
1943
-
1944
- private static final char[] CDIGITS = {
1945
- '0' , '1' , '2' , '3' , '4' , '5' ,
1946
- '6' , '7' , '8' , '9' , 'a' , 'b' ,
1947
- 'c' , 'd' , 'e' , 'f' , 'g' , 'h' ,
1948
- 'i' , 'j' , 'k' , 'l' , 'm' , 'n' ,
1949
- 'o' , 'p' , 'q' , 'r' , 's' , 't' ,
1950
- 'u' , 'v' , 'w' , 'x' , 'y' , 'z'
1951
- };
1952
- private static final char [] CDIGIT_TENS = {
1953
- '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
1954
- '1', '1', '1', '1', '1', '1', '1', '1', '1', '1',
1955
- '2', '2', '2', '2', '2', '2', '2', '2', '2', '2',
1956
- '3', '3', '3', '3', '3', '3', '3', '3', '3', '3',
1957
- '4', '4', '4', '4', '4', '4', '4', '4', '4', '4',
1958
- '5', '5', '5', '5', '5', '5', '5', '5', '5', '5',
1959
- '6', '6', '6', '6', '6', '6', '6', '6', '6', '6',
1960
- '7', '7', '7', '7', '7', '7', '7', '7', '7', '7',
1961
- '8', '8', '8', '8', '8', '8', '8', '8', '8', '8',
1962
- '9', '9', '9', '9', '9', '9', '9', '9', '9', '9',
1963
- } ;
1964
-
1965
- private static final char [] CDIGIT_ONES = {
1966
- '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
1967
- '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
1968
- '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
1969
- '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
1970
- '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
1971
- '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
1972
- '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
1973
- '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
1974
- '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
1975
- '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
1976
- } ;
1977
-
1978
- private static final double[] SMALL_10_POWERS = {
1979
- 1.0e0,
1980
- 1.0e1, 1.0e2, 1.0e3, 1.0e4, 1.0e5,
1981
- 1.0e6, 1.0e7, 1.0e8, 1.0e9, 1.0e10,
1982
- 1.0e11, 1.0e12, 1.0e13, 1.0e14, 1.0e15,
1983
- 1.0e16, 1.0e17, 1.0e18, 1.0e19, 1.0e20,
1984
- 1.0e21, 1.0e22
1985
- };
1986
- private static final int MAX_SMALL_10 = SMALL_10_POWERS.length - 1;
1987
- private static final int MAX_DECIMAL_DIGITS = 15;
1988
-
1989
- }