calabash-android 0.4.7.pre4 → 0.4.7.pre6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (446) hide show
  1. checksums.yaml +4 -4
  2. data/lib/calabash-android/helpers.rb +22 -1
  3. data/lib/calabash-android/lib/TestServer.apk +0 -0
  4. data/lib/calabash-android/lib/apktool-cli-1.5.3-SNAPSHOT.jar +0 -0
  5. data/lib/calabash-android/version.rb +1 -1
  6. data/test-server/instrumentation-backend/.classpath +4 -1
  7. data/test-server/instrumentation-backend/libs/jackson-annotations-2.2.0-rc2-20130418.042013-1.jar +0 -0
  8. data/test-server/instrumentation-backend/libs/jackson-core-2.2.0-rc2-20130420.041001-2.jar +0 -0
  9. data/test-server/instrumentation-backend/libs/jackson-databind-2.2.0-rc2-20130422.041053-3.jar +0 -0
  10. data/test-server/instrumentation-backend/libs/robotium-solo-4.1.jar +0 -0
  11. data/test-server/instrumentation-backend/src/org/antlr/runtime/LegacyCommonTokenStream.java +6 -1
  12. data/test-server/instrumentation-backend/src/org/antlr/runtime/debug/DebugTokenStream.java +3 -3
  13. data/test-server/instrumentation-backend/src/org/antlr/runtime/misc/FastQueue.java +1 -1
  14. data/test-server/instrumentation-backend/src/org/antlr/runtime/tree/BaseTreeAdaptor.java +4 -4
  15. data/test-server/instrumentation-backend/src/org/antlr/runtime/tree/CommonErrorNode.java +8 -1
  16. data/test-server/instrumentation-backend/src/org/antlr/runtime/tree/TreeIterator.java +2 -3
  17. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/CalabashInstrumentationTestRunner.java +1 -1
  18. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/InstrumentationBackend.java +2 -2
  19. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/HttpServer.java +21 -11
  20. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/NanoHTTPD.java +127 -68
  21. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/button/PressButtonText.java +2 -2
  22. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/button/PressImageButtonDescription.java +2 -3
  23. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/gestures/Swipe.java +0 -1
  24. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/list/GetListData.java +1 -1
  25. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/list/GetListItemProperties.java +1 -1
  26. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/list/GetListItemText.java +1 -1
  27. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/AssertGridViewContainsNoDuplicates.java +4 -4
  28. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/Press.java +1 -1
  29. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/SelectTab.java +4 -4
  30. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForProgress.java +1 -1
  31. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForTab.java +4 -4
  32. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/QueryHelper.java +2 -1
  33. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/json/JSONUtils.java +1 -1
  34. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/QueryResult.java +2 -2
  35. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ast/UIQueryASTClassName.java +0 -2
  36. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ast/UIQueryUtils.java +3 -2
  37. metadata +7 -411
  38. data/test-server/instrumentation-backend/libs/robotium-solo-3.6.jar +0 -0
  39. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/activity/GetOpenedActivities.java +0 -31
  40. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/activity/GoBackToActivity.java +0 -67
  41. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/Base64Variant.java +0 -413
  42. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/Base64Variants.java +0 -90
  43. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/FormatSchema.java +0 -29
  44. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonEncoding.java +0 -47
  45. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonFactory.java +0 -937
  46. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonGenerationException.java +0 -28
  47. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonGenerator.java +0 -1197
  48. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonLocation.java +0 -141
  49. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonNode.java +0 -879
  50. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonParseException.java +0 -23
  51. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonParser.java +0 -1434
  52. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonProcessingException.java +0 -80
  53. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonStreamContext.java +0 -122
  54. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonToken.java +0 -161
  55. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/ObjectCodec.java +0 -157
  56. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/PrettyPrinter.java +0 -166
  57. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/SerializableString.java +0 -54
  58. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/Version.java +0 -90
  59. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/Versioned.java +0 -20
  60. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JacksonAnnotation.java +0 -20
  61. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonAnyGetter.java +0 -25
  62. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonAnySetter.java +0 -24
  63. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonAutoDetect.java +0 -148
  64. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonBackReference.java +0 -41
  65. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonCreator.java +0 -19
  66. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonGetter.java +0 -35
  67. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonIgnore.java +0 -57
  68. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonIgnoreProperties.java +0 -48
  69. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonIgnoreType.java +0 -33
  70. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonManagedReference.java +0 -41
  71. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonMethod.java +0 -90
  72. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonProperty.java +0 -38
  73. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonPropertyOrder.java +0 -46
  74. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonRawValue.java +0 -33
  75. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonSetter.java +0 -33
  76. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonSubTypes.java +0 -44
  77. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonTypeInfo.java +0 -236
  78. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonTypeName.java +0 -28
  79. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonUnwrapped.java +0 -76
  80. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonValue.java +0 -46
  81. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonWriteNullProperties.java +0 -34
  82. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/package-info.java +0 -16
  83. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/DataFormatDetector.java +0 -176
  84. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/DataFormatMatcher.java +0 -117
  85. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/InputAccessor.java +0 -130
  86. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/MatchStrength.java +0 -64
  87. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/package-info.java +0 -8
  88. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/ByteSourceBootstrapper.java +0 -518
  89. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/DefaultPrettyPrinter.java +0 -13
  90. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/Indenter.java +0 -23
  91. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonGeneratorBase.java +0 -570
  92. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonNumericParserBase.java +0 -20
  93. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonParserBase.java +0 -1067
  94. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonParserMinimalBase.java +0 -539
  95. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonReadContext.java +0 -188
  96. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonWriteContext.java +0 -178
  97. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/ReaderBasedParser.java +0 -1815
  98. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/ReaderBasedParserBase.java +0 -228
  99. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/StreamBasedParserBase.java +0 -197
  100. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/Utf8Generator.java +0 -1757
  101. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/Utf8StreamParser.java +0 -2966
  102. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/WriterBasedGenerator.java +0 -1815
  103. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/package-info.java +0 -6
  104. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/BaseReader.java +0 -117
  105. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/CharacterEscapes.java +0 -73
  106. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/IOContext.java +0 -239
  107. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/InputDecorator.java +0 -67
  108. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/JsonStringEncoder.java +0 -408
  109. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/MergedStream.java +0 -145
  110. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/NumberInput.java +0 -303
  111. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/NumberOutput.java +0 -398
  112. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/OutputDecorator.java +0 -40
  113. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/SegmentedStringWriter.java +0 -104
  114. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/SerializedString.java +0 -114
  115. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/UTF32Reader.java +0 -214
  116. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/UTF8Writer.java +0 -387
  117. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/package.html +0 -4
  118. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/AbstractTypeResolver.java +0 -63
  119. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/AnnotationIntrospector.java +0 -1485
  120. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/BeanDescription.java +0 -171
  121. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/BeanProperty.java +0 -123
  122. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/BeanPropertyDefinition.java +0 -66
  123. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ClassIntrospector.java +0 -117
  124. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ContextualDeserializer.java +0 -38
  125. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ContextualKeyDeserializer.java +0 -33
  126. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ContextualSerializer.java +0 -38
  127. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializationConfig.java +0 -926
  128. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializationContext.java +0 -262
  129. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializationProblemHandler.java +0 -56
  130. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializerFactory.java +0 -356
  131. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializerProvider.java +0 -185
  132. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/Deserializers.java +0 -339
  133. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/HandlerInstantiator.java +0 -115
  134. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/InjectableValues.java +0 -85
  135. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonDeserializer.java +0 -166
  136. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonMappingException.java +0 -335
  137. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonSerializable.java +0 -34
  138. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonSerializableWithType.java +0 -22
  139. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonSerializer.java +0 -138
  140. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/KeyDeserializer.java +0 -31
  141. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/KeyDeserializers.java +0 -21
  142. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/MapperConfig.java +0 -1154
  143. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/MappingIterator.java +0 -190
  144. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/MappingJsonFactory.java +0 -81
  145. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/Module.java +0 -255
  146. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ObjectMapper.java +0 -2885
  147. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ObjectReader.java +0 -958
  148. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ObjectWriter.java +0 -554
  149. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/PropertyNamingStrategy.java +0 -258
  150. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ResolvableDeserializer.java +0 -23
  151. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ResolvableSerializer.java +0 -23
  152. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/RuntimeJsonMappingException.java +0 -21
  153. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/SerializationConfig.java +0 -1041
  154. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/SerializerFactory.java +0 -198
  155. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/SerializerProvider.java +0 -552
  156. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/Serializers.java +0 -137
  157. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/TypeDeserializer.java +0 -118
  158. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/TypeSerializer.java +0 -164
  159. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JacksonInject.java +0 -30
  160. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JacksonStdImpl.java +0 -25
  161. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonCachable.java +0 -32
  162. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonDeserialize.java +0 -109
  163. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonFilter.java +0 -31
  164. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonRootName.java +0 -29
  165. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonSerialize.java +0 -216
  166. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonTypeIdResolver.java +0 -35
  167. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonTypeResolver.java +0 -28
  168. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonValueInstantiator.java +0 -26
  169. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonView.java +0 -37
  170. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/NoClass.java +0 -19
  171. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/package-info.java +0 -5
  172. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/AbstractDeserializer.java +0 -102
  173. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ArrayDeserializer.java +0 -28
  174. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ArrayDeserializers.java +0 -11
  175. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BasicDeserializerFactory.java +0 -894
  176. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BeanDeserializer.java +0 -1537
  177. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BeanDeserializerBuilder.java +0 -277
  178. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BeanDeserializerFactory.java +0 -1474
  179. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BeanDeserializerModifier.java +0 -58
  180. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/CollectionDeserializer.java +0 -47
  181. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ContainerDeserializer.java +0 -14
  182. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/CustomDeserializerFactory.java +0 -227
  183. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/DateDeserializer.java +0 -9
  184. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/EnumDeserializer.java +0 -15
  185. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/EnumResolver.java +0 -17
  186. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/FromStringDeserializer.java +0 -13
  187. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/JsonNodeDeserializer.java +0 -54
  188. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/MapDeserializer.java +0 -44
  189. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/SettableAnyProperty.java +0 -177
  190. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/SettableBeanProperty.java +0 -827
  191. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdDeserializationContext.java +0 -326
  192. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdDeserializer.java +0 -94
  193. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdDeserializerProvider.java +0 -494
  194. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdDeserializers.java +0 -119
  195. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdKeyDeserializer.java +0 -12
  196. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdKeyDeserializers.java +0 -11
  197. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdScalarDeserializer.java +0 -13
  198. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ThrowableDeserializer.java +0 -13
  199. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/UntypedObjectDeserializer.java +0 -9
  200. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ValueInstantiator.java +0 -280
  201. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ValueInstantiators.java +0 -52
  202. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/BeanPropertyMap.java +0 -257
  203. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/CreatorCollector.java +0 -141
  204. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/CreatorProperty.java +0 -152
  205. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/ExternalTypeHandler.java +0 -173
  206. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/PropertyBasedCreator.java +0 -117
  207. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/PropertyValue.java +0 -117
  208. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/PropertyValueBuffer.java +0 -102
  209. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/UnwrappedPropertyHandler.java +0 -41
  210. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/ValueInjector.java +0 -45
  211. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/package-info.java +0 -9
  212. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/package-info.java +0 -5
  213. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/AtomicBooleanDeserializer.java +0 -22
  214. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/AtomicReferenceDeserializer.java +0 -47
  215. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/CalendarDeserializer.java +0 -47
  216. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/ClassDeserializer.java +0 -49
  217. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/CollectionDeserializer.java +0 -265
  218. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/ContainerDeserializerBase.java +0 -37
  219. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/DateDeserializer.java +0 -30
  220. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/EnumDeserializer.java +0 -139
  221. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/EnumMapDeserializer.java +0 -90
  222. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/EnumSetDeserializer.java +0 -89
  223. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/FromStringDeserializer.java +0 -265
  224. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/JavaTypeDeserializer.java +0 -38
  225. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/JsonNodeDeserializer.java +0 -314
  226. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/MapDeserializer.java +0 -412
  227. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/ObjectArrayDeserializer.java +0 -201
  228. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/PrimitiveArrayDeserializers.java +0 -583
  229. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdDeserializer.java +0 -1136
  230. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdKeyDeserializer.java +0 -340
  231. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdKeyDeserializers.java +0 -108
  232. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdScalarDeserializer.java +0 -34
  233. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdValueInstantiator.java +0 -392
  234. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StringCollectionDeserializer.java +0 -227
  235. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StringDeserializer.java +0 -55
  236. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/ThrowableDeserializer.java +0 -164
  237. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/TimestampDeserializer.java +0 -30
  238. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/TokenBufferDeserializer.java +0 -36
  239. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/UntypedObjectDeserializer.java +0 -248
  240. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/package-info.java +0 -15
  241. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/exc/UnrecognizedPropertyException.java +0 -75
  242. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ext/DOMDeserializer.java +0 -65
  243. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ext/OptionalHandlerFactory.java +0 -217
  244. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ext/package-info.java +0 -23
  245. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/Annotated.java +0 -85
  246. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedClass.java +0 -980
  247. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedConstructor.java +0 -143
  248. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedField.java +0 -119
  249. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedMember.java +0 -56
  250. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedMethod.java +0 -188
  251. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedMethodMap.java +0 -85
  252. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedParameter.java +0 -191
  253. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedWithParams.java +0 -195
  254. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotationMap.java +0 -101
  255. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/BasicBeanDescription.java +0 -615
  256. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/BasicClassIntrospector.java +0 -364
  257. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/JacksonAnnotationIntrospector.java +0 -813
  258. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/MemberKey.java +0 -83
  259. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/MethodFilter.java +0 -12
  260. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/NopAnnotationIntrospector.java +0 -209
  261. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/POJOPropertiesCollector.java +0 -713
  262. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/POJOPropertyBuilder.java +0 -648
  263. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/VisibilityChecker.java +0 -424
  264. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/package-info.java +0 -12
  265. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/NamedType.java +0 -53
  266. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/SubtypeResolver.java +0 -39
  267. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/TypeIdResolver.java +0 -74
  268. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/TypeResolverBuilder.java +0 -151
  269. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsArrayTypeDeserializer.java +0 -126
  270. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsArrayTypeSerializer.java +0 -110
  271. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsExternalTypeDeserializer.java +0 -37
  272. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsExternalTypeSerializer.java +0 -129
  273. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsPropertyTypeDeserializer.java +0 -191
  274. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsPropertyTypeSerializer.java +0 -69
  275. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsWrapperTypeDeserializer.java +0 -103
  276. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsWrapperTypeSerializer.java +0 -121
  277. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/ClassNameIdResolver.java +0 -138
  278. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/MinimalClassNameIdResolver.java +0 -66
  279. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/StdSubtypeResolver.java +0 -151
  280. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/StdTypeResolverBuilder.java +0 -202
  281. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/TypeDeserializerBase.java +0 -154
  282. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/TypeIdResolverBase.java +0 -37
  283. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/TypeNameIdResolver.java +0 -154
  284. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/TypeSerializerBase.java +0 -31
  285. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/package-info.java +0 -9
  286. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/package-info.java +0 -10
  287. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleAbstractTypeResolver.java +0 -86
  288. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleDeserializers.java +0 -130
  289. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleKeyDeserializers.java +0 -59
  290. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleModule.java +0 -265
  291. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleSerializers.java +0 -206
  292. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleValueInstantiators.java +0 -45
  293. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/package-info.java +0 -16
  294. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/package-info.java +0 -34
  295. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/AnyGetterWriter.java +0 -48
  296. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/ArraySerializers.java +0 -7
  297. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BasicSerializerFactory.java +0 -806
  298. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanPropertyFilter.java +0 -30
  299. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanPropertyWriter.java +0 -512
  300. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanSerializer.java +0 -126
  301. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanSerializerBuilder.java +0 -140
  302. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanSerializerFactory.java +0 -780
  303. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanSerializerModifier.java +0 -95
  304. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/ContainerSerializers.java +0 -8
  305. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/CustomSerializerFactory.java +0 -293
  306. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/EnumSerializer.java +0 -17
  307. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/FilterProvider.java +0 -23
  308. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/FilteredBeanPropertyWriter.java +0 -96
  309. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/JdkSerializers.java +0 -11
  310. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/MapSerializer.java +0 -58
  311. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/PropertyBuilder.java +0 -372
  312. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/ScalarSerializerBase.java +0 -18
  313. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/SerializerBase.java +0 -23
  314. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/StdKeySerializer.java +0 -10
  315. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/StdSerializerProvider.java +0 -852
  316. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/StdSerializers.java +0 -372
  317. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/ToStringSerializer.java +0 -14
  318. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/FailingSerializer.java +0 -43
  319. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/JsonSerializerMap.java +0 -93
  320. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/PropertySerializerMap.java +0 -231
  321. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/ReadOnlyClassToSerializerMap.java +0 -73
  322. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/SerializerCache.java +0 -304
  323. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/SimpleBeanPropertyFilter.java +0 -109
  324. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/SimpleFilterProvider.java +0 -114
  325. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/UnknownSerializer.java +0 -54
  326. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/UnwrappingBeanPropertyWriter.java +0 -99
  327. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/UnwrappingBeanSerializer.java +0 -76
  328. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/package-info.java +0 -5
  329. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/package-info.java +0 -5
  330. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/AsArraySerializerBase.java +0 -185
  331. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/BeanSerializerBase.java +0 -340
  332. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/CalendarSerializer.java +0 -43
  333. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/CollectionSerializer.java +0 -113
  334. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/ContainerSerializerBase.java +0 -51
  335. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/DateSerializer.java +0 -42
  336. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/EnumMapSerializer.java +0 -218
  337. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/EnumSerializer.java +0 -84
  338. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/EnumSetSerializer.java +0 -47
  339. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/IndexedStringListSerializer.java +0 -116
  340. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/InetAddressSerializer.java +0 -51
  341. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/IterableSerializer.java +0 -63
  342. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/JsonValueSerializer.java +0 -233
  343. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/MapSerializer.java +0 -422
  344. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/NonTypedScalarSerializerBase.java +0 -34
  345. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/NullSerializer.java +0 -38
  346. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/ObjectArraySerializer.java +0 -281
  347. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/RawSerializer.java +0 -52
  348. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/ScalarSerializerBase.java +0 -52
  349. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/SerializableSerializer.java +0 -99
  350. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/SerializableWithTypeSerializer.java +0 -90
  351. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/SerializerBase.java +0 -184
  352. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StaticListSerializerBase.java +0 -46
  353. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdArraySerializers.java +0 -476
  354. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdContainerSerializers.java +0 -249
  355. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdJdkSerializers.java +0 -195
  356. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdKeySerializer.java +0 -43
  357. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdKeySerializers.java +0 -95
  358. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StringCollectionSerializer.java +0 -119
  359. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StringSerializer.java +0 -36
  360. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/TimeZoneSerializer.java +0 -38
  361. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/ToStringSerializer.java +0 -73
  362. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/TokenBufferSerializer.java +0 -66
  363. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/ArrayType.java +0 -260
  364. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/ClassKey.java +0 -94
  365. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/CollectionLikeType.java +0 -204
  366. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/CollectionType.java +0 -94
  367. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/HierarchicType.java +0 -88
  368. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/MapLikeType.java +0 -265
  369. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/MapType.java +0 -146
  370. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/SimpleType.java +0 -250
  371. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeBase.java +0 -148
  372. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeBindings.java +0 -351
  373. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeFactory.java +0 -1165
  374. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeModifier.java +0 -38
  375. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeParser.java +0 -134
  376. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/package-info.java +0 -10
  377. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/Annotations.java +0 -23
  378. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ArrayBuilders.java +0 -293
  379. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/BeanUtil.java +0 -260
  380. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ClassUtil.java +0 -645
  381. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/Comparators.java +0 -48
  382. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/EnumResolver.java +0 -108
  383. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/EnumValues.java +0 -82
  384. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ISO8601DateFormat.java +0 -52
  385. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ISO8601Utils.java +0 -230
  386. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/JSONPObject.java +0 -105
  387. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/JSONWrappedObject.java +0 -117
  388. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/LRUMap.java +0 -28
  389. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/LinkedNode.java +0 -45
  390. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/Named.java +0 -10
  391. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ObjectBuffer.java +0 -257
  392. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/PrimitiveArrayBuilder.java +0 -180
  393. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/Provider.java +0 -21
  394. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/RootNameLookup.java +0 -54
  395. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/StdDateFormat.java +0 -348
  396. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/package-info.java +0 -4
  397. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/ArrayNode.java +0 -758
  398. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/BaseJsonNode.java +0 -122
  399. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/BigIntegerNode.java +0 -104
  400. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/BinaryNode.java +0 -136
  401. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/BooleanNode.java +0 -84
  402. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/ContainerNode.java +0 -185
  403. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/DecimalNode.java +0 -96
  404. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/DoubleNode.java +0 -106
  405. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/IntNode.java +0 -122
  406. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/JsonNodeFactory.java +0 -222
  407. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/LongNode.java +0 -99
  408. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/MissingNode.java +0 -97
  409. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/NodeCursor.java +0 -222
  410. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/NullNode.java +0 -58
  411. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/NumericNode.java +0 -72
  412. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/ObjectNode.java +0 -696
  413. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/POJONode.java +0 -145
  414. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/TextNode.java +0 -299
  415. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/TreeTraversingParser.java +0 -383
  416. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/ValueNode.java +0 -58
  417. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/package-info.java +0 -8
  418. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/package-info.java +0 -30
  419. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/schema/JsonSchema.java +0 -82
  420. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/schema/JsonSerializableSchema.java +0 -46
  421. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/schema/SchemaAware.java +0 -25
  422. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/schema/package-info.java +0 -5
  423. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/BytesToNameCanonicalizer.java +0 -969
  424. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/CharsToNameCanonicalizer.java +0 -578
  425. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/Name.java +0 -50
  426. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/Name1.java +0 -44
  427. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/Name2.java +0 -40
  428. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/Name3.java +0 -39
  429. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/NameN.java +0 -68
  430. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/package-info.java +0 -5
  431. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/type/JavaType.java +0 -503
  432. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/type/TypeReference.java +0 -60
  433. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/type/package-info.java +0 -8
  434. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/BufferRecycler.java +0 -109
  435. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/ByteArrayBuilder.java +0 -294
  436. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/CharTypes.java +0 -237
  437. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/DefaultPrettyPrinter.java +0 -282
  438. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/InternCache.java +0 -49
  439. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/JsonGeneratorDelegate.java +0 -273
  440. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/JsonParserDelegate.java +0 -251
  441. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/JsonParserSequence.java +0 -150
  442. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/MinimalPrettyPrinter.java +0 -152
  443. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/TextBuffer.java +0 -707
  444. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/TokenBuffer.java +0 -1233
  445. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/VersionUtil.java +0 -79
  446. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/package-info.java +0 -4
@@ -1,228 +0,0 @@
1
- package sh.calaba.org.codehaus.jackson.impl;
2
-
3
- import java.io.*;
4
-
5
- import sh.calaba.org.codehaus.jackson.*;
6
- import sh.calaba.org.codehaus.jackson.io.IOContext;
7
-
8
- /**
9
- * This is a simple low-level input reader base class, used by
10
- * JSON parser.
11
- * The reason for sub-classing (over composition)
12
- * is due to need for direct access to character buffers
13
- * and positions.
14
- *
15
- * @author Tatu Saloranta
16
- *
17
- * @deprecated Since 1.9 sub-classes should just include code
18
- * from here as is.
19
- */
20
- @Deprecated
21
- public abstract class ReaderBasedParserBase
22
- extends JsonParserBase
23
- {
24
- /*
25
- /**********************************************************
26
- /* Configuration
27
- /**********************************************************
28
- */
29
-
30
- /**
31
- * Reader that can be used for reading more content, if one
32
- * buffer from input source, but in some cases pre-loaded buffer
33
- * is handed to the parser.
34
- */
35
- protected Reader _reader;
36
-
37
- /*
38
- /**********************************************************
39
- /* Current input data
40
- /**********************************************************
41
- */
42
-
43
- /**
44
- * Current buffer from which data is read; generally data is read into
45
- * buffer from input source.
46
- */
47
- protected char[] _inputBuffer;
48
-
49
- /*
50
- /**********************************************************
51
- /* Life-cycle
52
- /**********************************************************
53
- */
54
-
55
- protected ReaderBasedParserBase(IOContext ctxt, int features, Reader r)
56
- {
57
- super(ctxt, features);
58
- _reader = r;
59
- _inputBuffer = ctxt.allocTokenBuffer();
60
- }
61
-
62
- /*
63
- /**********************************************************
64
- /* Overrides
65
- /**********************************************************
66
- */
67
-
68
- @Override
69
- public int releaseBuffered(Writer w) throws IOException
70
- {
71
- int count = _inputEnd - _inputPtr;
72
- if (count < 1) {
73
- return 0;
74
- }
75
- // let's just advance ptr to end
76
- int origPtr = _inputPtr;
77
- w.write(_inputBuffer, origPtr, count);
78
- return count;
79
- }
80
-
81
- @Override
82
- public Object getInputSource() {
83
- return _reader;
84
- }
85
-
86
- /*
87
- /**********************************************************
88
- /* Low-level reading, other
89
- /**********************************************************
90
- */
91
-
92
- @Override
93
- protected final boolean loadMore() throws IOException
94
- {
95
- _currInputProcessed += _inputEnd;
96
- _currInputRowStart -= _inputEnd;
97
-
98
- if (_reader != null) {
99
- int count = _reader.read(_inputBuffer, 0, _inputBuffer.length);
100
- if (count > 0) {
101
- _inputPtr = 0;
102
- _inputEnd = count;
103
- return true;
104
- }
105
- // End of input
106
- _closeInput();
107
- // Should never return 0, so let's fail
108
- if (count == 0) {
109
- throw new IOException("Reader returned 0 characters when trying to read "+_inputEnd);
110
- }
111
- }
112
- return false;
113
- }
114
-
115
- protected char getNextChar(String eofMsg)
116
- throws IOException, JsonParseException
117
- {
118
- if (_inputPtr >= _inputEnd) {
119
- if (!loadMore()) {
120
- _reportInvalidEOF(eofMsg);
121
- }
122
- }
123
- return _inputBuffer[_inputPtr++];
124
- }
125
-
126
- @Override
127
- protected void _closeInput() throws IOException
128
- {
129
- /* 25-Nov-2008, tatus: As per [JACKSON-16] we are not to call close()
130
- * on the underlying Reader, unless we "own" it, or auto-closing
131
- * feature is enabled.
132
- * One downside is that when using our optimized
133
- * Reader (granted, we only do that for UTF-32...) this
134
- * means that buffer recycling won't work correctly.
135
- */
136
- if (_reader != null) {
137
- if (_ioContext.isResourceManaged() || isEnabled(Feature.AUTO_CLOSE_SOURCE)) {
138
- _reader.close();
139
- }
140
- _reader = null;
141
- }
142
- }
143
-
144
- /**
145
- * Method called to release internal buffers owned by the base
146
- * reader. This may be called along with {@link #_closeInput} (for
147
- * example, when explicitly closing this reader instance), or
148
- * separately (if need be).
149
- */
150
- @Override
151
- protected void _releaseBuffers()
152
- throws IOException
153
- {
154
- super._releaseBuffers();
155
- char[] buf = _inputBuffer;
156
- if (buf != null) {
157
- _inputBuffer = null;
158
- _ioContext.releaseTokenBuffer(buf);
159
- }
160
- }
161
-
162
- /*
163
- /**********************************************************
164
- /* Helper methods for subclasses
165
- /**********************************************************
166
- */
167
-
168
- /**
169
- * Helper method for checking whether input matches expected token
170
- *
171
- * @since 1.8
172
- */
173
- protected final boolean _matchToken(String matchStr, int i)
174
- throws IOException, JsonParseException
175
- {
176
- final int len = matchStr.length();
177
-
178
- do {
179
- if (_inputPtr >= _inputEnd) {
180
- if (!loadMore()) {
181
- _reportInvalidEOFInValue();
182
- }
183
- }
184
- if (_inputBuffer[_inputPtr] != matchStr.charAt(i)) {
185
- _reportInvalidToken(matchStr.substring(0, i), "'null', 'true', 'false' or NaN");
186
- }
187
- ++_inputPtr;
188
- } while (++i < len);
189
-
190
- // but let's also ensure we either get EOF, or non-alphanum char...
191
- if (_inputPtr >= _inputEnd) {
192
- if (!loadMore()) {
193
- return true;
194
- }
195
- }
196
- char c = _inputBuffer[_inputPtr];
197
- // if Java letter, it's a problem tho
198
- if (Character.isJavaIdentifierPart(c)) {
199
- ++_inputPtr;
200
- _reportInvalidToken(matchStr.substring(0, i), "'null', 'true', 'false' or NaN");
201
- }
202
- return true;
203
- }
204
-
205
- protected void _reportInvalidToken(String matchedPart, String msg)
206
- throws IOException, JsonParseException
207
- {
208
- StringBuilder sb = new StringBuilder(matchedPart);
209
- /* Let's just try to find what appears to be the token, using
210
- * regular Java identifier character rules. It's just a heuristic,
211
- * nothing fancy here.
212
- */
213
- while (true) {
214
- if (_inputPtr >= _inputEnd) {
215
- if (!loadMore()) {
216
- break;
217
- }
218
- }
219
- char c = _inputBuffer[_inputPtr];
220
- if (!Character.isJavaIdentifierPart(c)) {
221
- break;
222
- }
223
- ++_inputPtr;
224
- sb.append(c);
225
- }
226
- _reportError("Unrecognized token '"+sb.toString()+"': was expecting ");
227
- }
228
- }
@@ -1,197 +0,0 @@
1
- package sh.calaba.org.codehaus.jackson.impl;
2
-
3
- import java.io.*;
4
-
5
- import sh.calaba.org.codehaus.jackson.io.IOContext;
6
-
7
- /**
8
- * This is a simple low-level input reader base class, used by
9
- * JSON parser. It is used when underlying input source is
10
- * a byte stream such as {@link InputStream}.
11
- * The reason for sub-classing (over composition)
12
- * is due to need for direct access to low-level byte buffers
13
- * and positions.
14
- *
15
- * @author Tatu Saloranta
16
- *
17
- * @deprecated Since 1.9, sub-classes should just embed code from here
18
- */
19
- @Deprecated
20
- public abstract class StreamBasedParserBase
21
- extends JsonParserBase
22
- {
23
- /*
24
- /**********************************************************
25
- /* Configuration
26
- /**********************************************************
27
- */
28
-
29
- /**
30
- * Input stream that can be used for reading more content, if one
31
- * in use. May be null, if input comes just as a full buffer,
32
- * or if the stream has been closed.
33
- */
34
- protected InputStream _inputStream;
35
-
36
- /*
37
- /**********************************************************
38
- /* Current input data
39
- /**********************************************************
40
- */
41
-
42
- /**
43
- * Current buffer from which data is read; generally data is read into
44
- * buffer from input source, but in some cases pre-loaded buffer
45
- * is handed to the parser.
46
- */
47
- protected byte[] _inputBuffer;
48
-
49
- /**
50
- * Flag that indicates whether the input buffer is recycable (and
51
- * needs to be returned to recycler once we are done) or not.
52
- *<p>
53
- * If it is not, it also means that parser can NOT modify underlying
54
- * buffer.
55
- */
56
- protected boolean _bufferRecyclable;
57
-
58
- /*
59
- /**********************************************************
60
- /* Life-cycle
61
- /**********************************************************
62
- */
63
-
64
- protected StreamBasedParserBase(IOContext ctxt, int features,
65
- InputStream in, byte[] inputBuffer, int start, int end,
66
- boolean bufferRecyclable)
67
- {
68
- super(ctxt, features);
69
- _inputStream = in;
70
- _inputBuffer = inputBuffer;
71
- _inputPtr = start;
72
- _inputEnd = end;
73
- _bufferRecyclable = bufferRecyclable;
74
- }
75
-
76
- /*
77
- /**********************************************************
78
- /* Overrides
79
- /**********************************************************
80
- */
81
-
82
- @Override
83
- public int releaseBuffered(OutputStream out) throws IOException
84
- {
85
- int count = _inputEnd - _inputPtr;
86
- if (count < 1) {
87
- return 0;
88
- }
89
- // let's just advance ptr to end
90
- int origPtr = _inputPtr;
91
- out.write(_inputBuffer, origPtr, count);
92
- return count;
93
- }
94
-
95
- @Override
96
- public Object getInputSource() {
97
- return _inputStream;
98
- }
99
-
100
- /*
101
- /**********************************************************
102
- /* Low-level reading, other
103
- /**********************************************************
104
- */
105
-
106
- @Override
107
- protected final boolean loadMore()
108
- throws IOException
109
- {
110
- _currInputProcessed += _inputEnd;
111
- _currInputRowStart -= _inputEnd;
112
-
113
- if (_inputStream != null) {
114
- int count = _inputStream.read(_inputBuffer, 0, _inputBuffer.length);
115
- if (count > 0) {
116
- _inputPtr = 0;
117
- _inputEnd = count;
118
- return true;
119
- }
120
- // End of input
121
- _closeInput();
122
- // Should never return 0, so let's fail
123
- if (count == 0) {
124
- throw new IOException("InputStream.read() returned 0 characters when trying to read "+_inputBuffer.length+" bytes");
125
- }
126
- }
127
- return false;
128
- }
129
-
130
- /**
131
- * Helper method that will try to load at least specified number bytes in
132
- * input buffer, possible moving existing data around if necessary
133
- *
134
- * @since 1.6
135
- */
136
- protected final boolean _loadToHaveAtLeast(int minAvailable)
137
- throws IOException
138
- {
139
- // No input stream, no leading (either we are closed, or have non-stream input source)
140
- if (_inputStream == null) {
141
- return false;
142
- }
143
- // Need to move remaining data in front?
144
- int amount = _inputEnd - _inputPtr;
145
- if (amount > 0 && _inputPtr > 0) {
146
- _currInputProcessed += _inputPtr;
147
- _currInputRowStart -= _inputPtr;
148
- System.arraycopy(_inputBuffer, _inputPtr, _inputBuffer, 0, amount);
149
- _inputEnd = amount;
150
- } else {
151
- _inputEnd = 0;
152
- }
153
- _inputPtr = 0;
154
- while (_inputEnd < minAvailable) {
155
- int count = _inputStream.read(_inputBuffer, _inputEnd, _inputBuffer.length - _inputEnd);
156
- if (count < 1) {
157
- // End of input
158
- _closeInput();
159
- // Should never return 0, so let's fail
160
- if (count == 0) {
161
- throw new IOException("InputStream.read() returned 0 characters when trying to read "+amount+" bytes");
162
- }
163
- return false;
164
- }
165
- _inputEnd += count;
166
- }
167
- return true;
168
- }
169
-
170
- @Override
171
- protected void _closeInput() throws IOException
172
- {
173
- /* 25-Nov-2008, tatus: As per [JACKSON-16] we are not to call close()
174
- * on the underlying InputStream, unless we "own" it, or auto-closing
175
- * feature is enabled.
176
- */
177
- if (_inputStream != null) {
178
- if (_ioContext.isResourceManaged() || isEnabled(Feature.AUTO_CLOSE_SOURCE)) {
179
- _inputStream.close();
180
- }
181
- _inputStream = null;
182
- }
183
- }
184
-
185
- @Override
186
- protected void _releaseBuffers() throws IOException
187
- {
188
- super._releaseBuffers();
189
- if (_bufferRecyclable) {
190
- byte[] buf = _inputBuffer;
191
- if (buf != null) {
192
- _inputBuffer = null;
193
- _ioContext.releaseReadIOBuffer(buf);
194
- }
195
- }
196
- }
197
- }
@@ -1,1757 +0,0 @@
1
- package sh.calaba.org.codehaus.jackson.impl;
2
-
3
- import java.io.*;
4
- import java.math.BigDecimal;
5
- import java.math.BigInteger;
6
-
7
- import sh.calaba.org.codehaus.jackson.*;
8
- import sh.calaba.org.codehaus.jackson.io.CharacterEscapes;
9
- import sh.calaba.org.codehaus.jackson.io.IOContext;
10
- import sh.calaba.org.codehaus.jackson.io.NumberOutput;
11
- import sh.calaba.org.codehaus.jackson.io.SerializedString;
12
- import sh.calaba.org.codehaus.jackson.util.CharTypes;
13
-
14
- public class Utf8Generator
15
- extends JsonGeneratorBase
16
- {
17
- private final static byte BYTE_u = (byte) 'u';
18
-
19
- private final static byte BYTE_0 = (byte) '0';
20
-
21
- private final static byte BYTE_LBRACKET = (byte) '[';
22
- private final static byte BYTE_RBRACKET = (byte) ']';
23
- private final static byte BYTE_LCURLY = (byte) '{';
24
- private final static byte BYTE_RCURLY = (byte) '}';
25
-
26
- private final static byte BYTE_BACKSLASH = (byte) '\\';
27
- private final static byte BYTE_SPACE = (byte) ' ';
28
- private final static byte BYTE_COMMA = (byte) ',';
29
- private final static byte BYTE_COLON = (byte) ':';
30
- private final static byte BYTE_QUOTE = (byte) '"';
31
-
32
- protected final static int SURR1_FIRST = 0xD800;
33
- protected final static int SURR1_LAST = 0xDBFF;
34
- protected final static int SURR2_FIRST = 0xDC00;
35
- protected final static int SURR2_LAST = 0xDFFF;
36
-
37
- // intermediate copies only made up to certain length...
38
- private final static int MAX_BYTES_TO_BUFFER = 512;
39
-
40
- final static byte[] HEX_CHARS = CharTypes.copyHexBytes();
41
-
42
- private final static byte[] NULL_BYTES = { 'n', 'u', 'l', 'l' };
43
- private final static byte[] TRUE_BYTES = { 't', 'r', 'u', 'e' };
44
- private final static byte[] FALSE_BYTES = { 'f', 'a', 'l', 's', 'e' };
45
-
46
- /**
47
- * This is the default set of escape codes, over 7-bit ASCII range
48
- * (first 128 character codes), used for single-byte UTF-8 characters.
49
- */
50
- protected final static int[] sOutputEscapes = CharTypes.get7BitOutputEscapes();
51
-
52
- /*
53
- /**********************************************************
54
- /* Configuration, basic I/O
55
- /**********************************************************
56
- */
57
-
58
- final protected IOContext _ioContext;
59
-
60
- /**
61
- * Underlying output stream used for writing JSON content.
62
- */
63
- final protected OutputStream _outputStream;
64
-
65
- /*
66
- /**********************************************************
67
- /* Configuration, output escaping
68
- /**********************************************************
69
- */
70
-
71
- /**
72
- * Currently active set of output escape code definitions (whether
73
- * and how to escape or not) for 7-bit ASCII range (first 128
74
- * character codes). Defined separately to make potentially
75
- * customizable
76
- */
77
- protected int[] _outputEscapes = sOutputEscapes;
78
-
79
- /**
80
- * Value between 128 (0x80) and 65535 (0xFFFF) that indicates highest
81
- * Unicode code point that will not need escaping; or 0 to indicate
82
- * that all characters can be represented without escaping.
83
- * Typically used to force escaping of some portion of character set;
84
- * for example to always escape non-ASCII characters (if value was 127).
85
- *<p>
86
- * NOTE: not all sub-classes make use of this setting.
87
- */
88
- protected int _maximumNonEscapedChar;
89
-
90
- /**
91
- * Definition of custom character escapes to use for generators created
92
- * by this factory, if any. If null, standard data format specific
93
- * escapes are used.
94
- *
95
- * @since 1.8
96
- */
97
- protected CharacterEscapes _characterEscapes;
98
-
99
- /*
100
- /**********************************************************
101
- /* Output buffering
102
- /**********************************************************
103
- */
104
-
105
- /**
106
- * Intermediate buffer in which contents are buffered before
107
- * being written using {@link #_outputStream}.
108
- */
109
- protected byte[] _outputBuffer;
110
-
111
- /**
112
- * Pointer to the position right beyond the last character to output
113
- * (end marker; may be past the buffer)
114
- */
115
- protected int _outputTail = 0;
116
-
117
- /**
118
- * End marker of the output buffer; one past the last valid position
119
- * within the buffer.
120
- */
121
- protected final int _outputEnd;
122
-
123
- /**
124
- * Maximum number of <code>char</code>s that we know will always fit
125
- * in the output buffer after escaping
126
- */
127
- protected final int _outputMaxContiguous;
128
-
129
- /**
130
- * Intermediate buffer in which characters of a String are copied
131
- * before being encoded.
132
- */
133
- protected char[] _charBuffer;
134
-
135
- /**
136
- * Length of <code>_charBuffer</code>
137
- */
138
- protected final int _charBufferLength;
139
-
140
- /**
141
- * 6 character temporary buffer allocated if needed, for constructing
142
- * escape sequences
143
- */
144
- protected byte[] _entityBuffer;
145
-
146
- /**
147
- * Flag that indicates whether the output buffer is recycable (and
148
- * needs to be returned to recycler once we are done) or not.
149
- */
150
- protected boolean _bufferRecyclable;
151
-
152
- /*
153
- /**********************************************************
154
- /* Life-cycle
155
- /**********************************************************
156
- */
157
-
158
- public Utf8Generator(IOContext ctxt, int features, ObjectCodec codec,
159
- OutputStream out)
160
- {
161
-
162
- super(features, codec);
163
- _ioContext = ctxt;
164
- _outputStream = out;
165
- _bufferRecyclable = true;
166
- _outputBuffer = ctxt.allocWriteEncodingBuffer();
167
- _outputEnd = _outputBuffer.length;
168
- /* To be exact, each char can take up to 6 bytes when escaped (Unicode
169
- * escape with backslash, 'u' and 4 hex digits); but to avoid fluctuation,
170
- * we will actually round down to only do up to 1/8 number of chars
171
- */
172
- _outputMaxContiguous = _outputEnd >> 3;
173
- _charBuffer = ctxt.allocConcatBuffer();
174
- _charBufferLength = _charBuffer.length;
175
-
176
- // By default we use this feature to determine additional quoting
177
- if (isEnabled(Feature.ESCAPE_NON_ASCII)) {
178
- setHighestNonEscapedChar(127);
179
- }
180
- }
181
-
182
- public Utf8Generator(IOContext ctxt, int features, ObjectCodec codec,
183
- OutputStream out, byte[] outputBuffer, int outputOffset, boolean bufferRecyclable)
184
- {
185
-
186
- super(features, codec);
187
- _ioContext = ctxt;
188
- _outputStream = out;
189
- _bufferRecyclable = bufferRecyclable;
190
- _outputTail = outputOffset;
191
- _outputBuffer = outputBuffer;
192
- _outputEnd = _outputBuffer.length;
193
- // up to 6 bytes per char (see above), rounded up to 1/8
194
- _outputMaxContiguous = _outputEnd >> 3;
195
- _charBuffer = ctxt.allocConcatBuffer();
196
- _charBufferLength = _charBuffer.length;
197
-
198
- if (isEnabled(Feature.ESCAPE_NON_ASCII)) {
199
- setHighestNonEscapedChar(127);
200
- }
201
- }
202
-
203
- /*
204
- /**********************************************************
205
- /* Overridden configuration methods
206
- /**********************************************************
207
- */
208
-
209
- @Override
210
- public JsonGenerator setHighestNonEscapedChar(int charCode) {
211
- _maximumNonEscapedChar = (charCode < 0) ? 0 : charCode;
212
- return this;
213
- }
214
-
215
- @Override
216
- public int getHighestEscapedChar() {
217
- return _maximumNonEscapedChar;
218
- }
219
-
220
- @Override
221
- public JsonGenerator setCharacterEscapes(CharacterEscapes esc)
222
- {
223
- _characterEscapes = esc;
224
- if (esc == null) { // revert to standard escapes
225
- _outputEscapes = sOutputEscapes;
226
- } else {
227
- _outputEscapes = esc.getEscapeCodesForAscii();
228
- }
229
- return this;
230
- }
231
-
232
- /**
233
- * Method for accessing custom escapes factory uses for {@link JsonGenerator}s
234
- * it creates.
235
- *
236
- * @since 1.8
237
- */
238
- @Override
239
- public CharacterEscapes getCharacterEscapes() {
240
- return _characterEscapes;
241
- }
242
-
243
- @Override
244
- public Object getOutputTarget() {
245
- return _outputStream;
246
- }
247
-
248
- /*
249
- /**********************************************************
250
- /* Overridden methods
251
- /**********************************************************
252
- */
253
-
254
- /* Most overrides in this section are just to make methods final,
255
- * to allow better inlining...
256
- */
257
- @Override
258
- public final void writeStringField(String fieldName, String value)
259
- throws IOException, JsonGenerationException
260
- {
261
- writeFieldName(fieldName);
262
- writeString(value);
263
- }
264
-
265
- @Override
266
- public final void writeFieldName(String name) throws IOException, JsonGenerationException
267
- {
268
- int status = _writeContext.writeFieldName(name);
269
- if (status == JsonWriteContext.STATUS_EXPECT_VALUE) {
270
- _reportError("Can not write a field name, expecting a value");
271
- }
272
- if (_cfgPrettyPrinter != null) {
273
- _writePPFieldName(name, (status == JsonWriteContext.STATUS_OK_AFTER_COMMA));
274
- return;
275
- }
276
- if (status == JsonWriteContext.STATUS_OK_AFTER_COMMA) { // need comma
277
- if (_outputTail >= _outputEnd) {
278
- _flushBuffer();
279
- }
280
- _outputBuffer[_outputTail++] = BYTE_COMMA;
281
- }
282
- _writeFieldName(name);
283
- }
284
-
285
- @Override
286
- public final void writeFieldName(SerializedString name)
287
- throws IOException, JsonGenerationException
288
- {
289
- // Object is a value, need to verify it's allowed
290
- int status = _writeContext.writeFieldName(name.getValue());
291
- if (status == JsonWriteContext.STATUS_EXPECT_VALUE) {
292
- _reportError("Can not write a field name, expecting a value");
293
- }
294
- if (_cfgPrettyPrinter != null) {
295
- _writePPFieldName(name, (status == JsonWriteContext.STATUS_OK_AFTER_COMMA));
296
- return;
297
- }
298
- if (status == JsonWriteContext.STATUS_OK_AFTER_COMMA) {
299
- if (_outputTail >= _outputEnd) {
300
- _flushBuffer();
301
- }
302
- _outputBuffer[_outputTail++] = BYTE_COMMA;
303
- }
304
- _writeFieldName(name);
305
- }
306
-
307
- @Override
308
- public final void writeFieldName(SerializableString name)
309
- throws IOException, JsonGenerationException
310
- {
311
- // Object is a value, need to verify it's allowed
312
- int status = _writeContext.writeFieldName(name.getValue());
313
- if (status == JsonWriteContext.STATUS_EXPECT_VALUE) {
314
- _reportError("Can not write a field name, expecting a value");
315
- }
316
- if (_cfgPrettyPrinter != null) {
317
- _writePPFieldName(name, (status == JsonWriteContext.STATUS_OK_AFTER_COMMA));
318
- return;
319
- }
320
- if (status == JsonWriteContext.STATUS_OK_AFTER_COMMA) {
321
- if (_outputTail >= _outputEnd) {
322
- _flushBuffer();
323
- }
324
- _outputBuffer[_outputTail++] = BYTE_COMMA;
325
- }
326
- _writeFieldName(name);
327
- }
328
-
329
- /*
330
- /**********************************************************
331
- /* Output method implementations, structural
332
- /**********************************************************
333
- */
334
-
335
- @Override
336
- public final void writeStartArray() throws IOException, JsonGenerationException
337
- {
338
- _verifyValueWrite("start an array");
339
- _writeContext = _writeContext.createChildArrayContext();
340
- if (_cfgPrettyPrinter != null) {
341
- _cfgPrettyPrinter.writeStartArray(this);
342
- } else {
343
- if (_outputTail >= _outputEnd) {
344
- _flushBuffer();
345
- }
346
- _outputBuffer[_outputTail++] = BYTE_LBRACKET;
347
- }
348
- }
349
-
350
- @Override
351
- public final void writeEndArray() throws IOException, JsonGenerationException
352
- {
353
- if (!_writeContext.inArray()) {
354
- _reportError("Current context not an ARRAY but "+_writeContext.getTypeDesc());
355
- }
356
- if (_cfgPrettyPrinter != null) {
357
- _cfgPrettyPrinter.writeEndArray(this, _writeContext.getEntryCount());
358
- } else {
359
- if (_outputTail >= _outputEnd) {
360
- _flushBuffer();
361
- }
362
- _outputBuffer[_outputTail++] = BYTE_RBRACKET;
363
- }
364
- _writeContext = _writeContext.getParent();
365
- }
366
-
367
- @Override
368
- public final void writeStartObject() throws IOException, JsonGenerationException
369
- {
370
- _verifyValueWrite("start an object");
371
- _writeContext = _writeContext.createChildObjectContext();
372
- if (_cfgPrettyPrinter != null) {
373
- _cfgPrettyPrinter.writeStartObject(this);
374
- } else {
375
- if (_outputTail >= _outputEnd) {
376
- _flushBuffer();
377
- }
378
- _outputBuffer[_outputTail++] = BYTE_LCURLY;
379
- }
380
- }
381
-
382
- @Override
383
- public final void writeEndObject() throws IOException, JsonGenerationException
384
- {
385
- if (!_writeContext.inObject()) {
386
- _reportError("Current context not an object but "+_writeContext.getTypeDesc());
387
- }
388
- _writeContext = _writeContext.getParent();
389
- if (_cfgPrettyPrinter != null) {
390
- _cfgPrettyPrinter.writeEndObject(this, _writeContext.getEntryCount());
391
- } else {
392
- if (_outputTail >= _outputEnd) {
393
- _flushBuffer();
394
- }
395
- _outputBuffer[_outputTail++] = BYTE_RCURLY;
396
- }
397
- }
398
-
399
- protected final void _writeFieldName(String name)
400
- throws IOException, JsonGenerationException
401
- {
402
- /* To support [JACKSON-46], we'll do this:
403
- * (Question: should quoting of spaces (etc) still be enabled?)
404
- */
405
- if (!isEnabled(Feature.QUOTE_FIELD_NAMES)) {
406
- _writeStringSegments(name);
407
- return;
408
- }
409
- if (_outputTail >= _outputEnd) {
410
- _flushBuffer();
411
- }
412
- _outputBuffer[_outputTail++] = BYTE_QUOTE;
413
- // The beef:
414
- final int len = name.length();
415
- if (len <= _charBufferLength) { // yes, fits right in
416
- name.getChars(0, len, _charBuffer, 0);
417
- // But as one segment, or multiple?
418
- if (len <= _outputMaxContiguous) {
419
- if ((_outputTail + len) > _outputEnd) { // caller must ensure enough space
420
- _flushBuffer();
421
- }
422
- _writeStringSegment(_charBuffer, 0, len);
423
- } else {
424
- _writeStringSegments(_charBuffer, 0, len);
425
- }
426
- } else {
427
- _writeStringSegments(name);
428
- }
429
-
430
- // and closing quotes; need room for one more char:
431
- if (_outputTail >= _outputEnd) {
432
- _flushBuffer();
433
- }
434
- _outputBuffer[_outputTail++] = BYTE_QUOTE;
435
- }
436
-
437
- protected final void _writeFieldName(SerializableString name)
438
- throws IOException, JsonGenerationException
439
- {
440
- byte[] raw = name.asQuotedUTF8();
441
- if (!isEnabled(Feature.QUOTE_FIELD_NAMES)) {
442
- _writeBytes(raw);
443
- return;
444
- }
445
- if (_outputTail >= _outputEnd) {
446
- _flushBuffer();
447
- }
448
- _outputBuffer[_outputTail++] = BYTE_QUOTE;
449
-
450
- // Can do it all in buffer?
451
- final int len = raw.length;
452
- if ((_outputTail + len + 1) < _outputEnd) { // yup
453
- System.arraycopy(raw, 0, _outputBuffer, _outputTail, len);
454
- _outputTail += len;
455
- _outputBuffer[_outputTail++] = BYTE_QUOTE;
456
- } else {
457
- _writeBytes(raw);
458
- if (_outputTail >= _outputEnd) {
459
- _flushBuffer();
460
- }
461
- _outputBuffer[_outputTail++] = BYTE_QUOTE;
462
- }
463
- }
464
-
465
- /**
466
- * Specialized version of <code>_writeFieldName</code>, off-lined
467
- * to keep the "fast path" as simple (and hopefully fast) as possible.
468
- */
469
- protected final void _writePPFieldName(String name, boolean commaBefore)
470
- throws IOException, JsonGenerationException
471
- {
472
- if (commaBefore) {
473
- _cfgPrettyPrinter.writeObjectEntrySeparator(this);
474
- } else {
475
- _cfgPrettyPrinter.beforeObjectEntries(this);
476
- }
477
-
478
- if (isEnabled(Feature.QUOTE_FIELD_NAMES)) { // standard
479
- if (_outputTail >= _outputEnd) {
480
- _flushBuffer();
481
- }
482
- _outputBuffer[_outputTail++] = BYTE_QUOTE;
483
- final int len = name.length();
484
- if (len <= _charBufferLength) { // yes, fits right in
485
- name.getChars(0, len, _charBuffer, 0);
486
- // But as one segment, or multiple?
487
- if (len <= _outputMaxContiguous) {
488
- if ((_outputTail + len) > _outputEnd) { // caller must ensure enough space
489
- _flushBuffer();
490
- }
491
- _writeStringSegment(_charBuffer, 0, len);
492
- } else {
493
- _writeStringSegments(_charBuffer, 0, len);
494
- }
495
- } else {
496
- _writeStringSegments(name);
497
- }
498
- if (_outputTail >= _outputEnd) {
499
- _flushBuffer();
500
- }
501
- _outputBuffer[_outputTail++] = BYTE_QUOTE;
502
- } else { // non-standard, omit quotes
503
- _writeStringSegments(name);
504
- }
505
- }
506
-
507
- protected final void _writePPFieldName(SerializableString name, boolean commaBefore)
508
- throws IOException, JsonGenerationException
509
- {
510
- if (commaBefore) {
511
- _cfgPrettyPrinter.writeObjectEntrySeparator(this);
512
- } else {
513
- _cfgPrettyPrinter.beforeObjectEntries(this);
514
- }
515
-
516
- boolean addQuotes = isEnabled(Feature.QUOTE_FIELD_NAMES); // standard
517
- if (addQuotes) {
518
- if (_outputTail >= _outputEnd) {
519
- _flushBuffer();
520
- }
521
- _outputBuffer[_outputTail++] = BYTE_QUOTE;
522
- }
523
- _writeBytes(name.asQuotedUTF8());
524
- if (addQuotes) {
525
- if (_outputTail >= _outputEnd) {
526
- _flushBuffer();
527
- }
528
- _outputBuffer[_outputTail++] = BYTE_QUOTE;
529
- }
530
- }
531
-
532
- /*
533
- /**********************************************************
534
- /* Output method implementations, textual
535
- /**********************************************************
536
- */
537
-
538
- @Override
539
- public void writeString(String text)
540
- throws IOException, JsonGenerationException
541
- {
542
- _verifyValueWrite("write text value");
543
- if (text == null) {
544
- _writeNull();
545
- return;
546
- }
547
- // First: can we make a local copy of chars that make up text?
548
- final int len = text.length();
549
- if (len > _charBufferLength) { // nope: off-line handling
550
- _writeLongString(text);
551
- return;
552
- }
553
- // yes: good.
554
- text.getChars(0, len, _charBuffer, 0);
555
- // Output: if we can't guarantee it fits in output buffer, off-line as well:
556
- if (len > _outputMaxContiguous) {
557
- _writeLongString(_charBuffer, 0, len);
558
- return;
559
- }
560
- if ((_outputTail + len) >= _outputEnd) {
561
- _flushBuffer();
562
- }
563
- _outputBuffer[_outputTail++] = BYTE_QUOTE;
564
- _writeStringSegment(_charBuffer, 0, len); // we checked space already above
565
- /* [JACKSON-462] But that method may have had to expand multi-byte Unicode
566
- * chars, so we must check again
567
- */
568
- if (_outputTail >= _outputEnd) {
569
- _flushBuffer();
570
- }
571
- _outputBuffer[_outputTail++] = BYTE_QUOTE;
572
- }
573
-
574
- private final void _writeLongString(String text)
575
- throws IOException, JsonGenerationException
576
- {
577
- if (_outputTail >= _outputEnd) {
578
- _flushBuffer();
579
- }
580
- _outputBuffer[_outputTail++] = BYTE_QUOTE;
581
- _writeStringSegments(text);
582
- if (_outputTail >= _outputEnd) {
583
- _flushBuffer();
584
- }
585
- _outputBuffer[_outputTail++] = BYTE_QUOTE;
586
- }
587
-
588
- private final void _writeLongString(char[] text, int offset, int len)
589
- throws IOException, JsonGenerationException
590
- {
591
- if (_outputTail >= _outputEnd) {
592
- _flushBuffer();
593
- }
594
- _outputBuffer[_outputTail++] = BYTE_QUOTE;
595
- _writeStringSegments(_charBuffer, 0, len);
596
- if (_outputTail >= _outputEnd) {
597
- _flushBuffer();
598
- }
599
- _outputBuffer[_outputTail++] = BYTE_QUOTE;
600
- }
601
-
602
- @Override
603
- public void writeString(char[] text, int offset, int len)
604
- throws IOException, JsonGenerationException
605
- {
606
- _verifyValueWrite("write text value");
607
- if (_outputTail >= _outputEnd) {
608
- _flushBuffer();
609
- }
610
- _outputBuffer[_outputTail++] = BYTE_QUOTE;
611
- // One or multiple segments?
612
- if (len <= _outputMaxContiguous) {
613
- if ((_outputTail + len) > _outputEnd) { // caller must ensure enough space
614
- _flushBuffer();
615
- }
616
- _writeStringSegment(text, offset, len);
617
- } else {
618
- _writeStringSegments(text, offset, len);
619
- }
620
- // And finally, closing quotes
621
- if (_outputTail >= _outputEnd) {
622
- _flushBuffer();
623
- }
624
- _outputBuffer[_outputTail++] = BYTE_QUOTE;
625
- }
626
-
627
- @Override
628
- public final void writeString(SerializableString text)
629
- throws IOException, JsonGenerationException
630
- {
631
- _verifyValueWrite("write text value");
632
- if (_outputTail >= _outputEnd) {
633
- _flushBuffer();
634
- }
635
- _outputBuffer[_outputTail++] = BYTE_QUOTE;
636
- _writeBytes(text.asQuotedUTF8());
637
- if (_outputTail >= _outputEnd) {
638
- _flushBuffer();
639
- }
640
- _outputBuffer[_outputTail++] = BYTE_QUOTE;
641
- }
642
-
643
- @Override
644
- public void writeRawUTF8String(byte[] text, int offset, int length)
645
- throws IOException, JsonGenerationException
646
- {
647
- _verifyValueWrite("write text value");
648
- if (_outputTail >= _outputEnd) {
649
- _flushBuffer();
650
- }
651
- _outputBuffer[_outputTail++] = BYTE_QUOTE;
652
- _writeBytes(text, offset, length);
653
- if (_outputTail >= _outputEnd) {
654
- _flushBuffer();
655
- }
656
- _outputBuffer[_outputTail++] = BYTE_QUOTE;
657
- }
658
-
659
- @Override
660
- public void writeUTF8String(byte[] text, int offset, int len)
661
- throws IOException, JsonGenerationException
662
- {
663
- _verifyValueWrite("write text value");
664
- if (_outputTail >= _outputEnd) {
665
- _flushBuffer();
666
- }
667
- _outputBuffer[_outputTail++] = BYTE_QUOTE;
668
- // One or multiple segments?
669
- if (len <= _outputMaxContiguous) {
670
- _writeUTF8Segment(text, offset, len);
671
- } else {
672
- _writeUTF8Segments(text, offset, len);
673
- }
674
- if (_outputTail >= _outputEnd) {
675
- _flushBuffer();
676
- }
677
- _outputBuffer[_outputTail++] = BYTE_QUOTE;
678
- }
679
-
680
- /*
681
- /**********************************************************
682
- /* Output method implementations, unprocessed ("raw")
683
- /**********************************************************
684
- */
685
-
686
- @Override
687
- public void writeRaw(String text)
688
- throws IOException, JsonGenerationException
689
- {
690
- int start = 0;
691
- int len = text.length();
692
- while (len > 0) {
693
- char[] buf = _charBuffer;
694
- final int blen = buf.length;
695
- final int len2 = (len < blen) ? len : blen;
696
- text.getChars(start, start+len2, buf, 0);
697
- writeRaw(buf, 0, len2);
698
- start += len2;
699
- len -= len2;
700
- }
701
- }
702
-
703
- @Override
704
- public void writeRaw(String text, int offset, int len)
705
- throws IOException, JsonGenerationException
706
- {
707
- while (len > 0) {
708
- char[] buf = _charBuffer;
709
- final int blen = buf.length;
710
- final int len2 = (len < blen) ? len : blen;
711
- text.getChars(offset, offset+len2, buf, 0);
712
- writeRaw(buf, 0, len2);
713
- offset += len2;
714
- len -= len2;
715
- }
716
- }
717
-
718
- // @TODO: rewrite for speed...
719
- @Override
720
- public final void writeRaw(char[] cbuf, int offset, int len)
721
- throws IOException, JsonGenerationException
722
- {
723
- // First: if we have 3 x charCount spaces, we know it'll fit just fine
724
- {
725
- int len3 = len+len+len;
726
- if ((_outputTail + len3) > _outputEnd) {
727
- // maybe we could flush?
728
- if (_outputEnd < len3) { // wouldn't be enough...
729
- _writeSegmentedRaw(cbuf, offset, len);
730
- return;
731
- }
732
- // yes, flushing brings enough space
733
- _flushBuffer();
734
- }
735
- }
736
- len += offset; // now marks the end
737
-
738
- // Note: here we know there is enough room, hence no output boundary checks
739
- main_loop:
740
- while (offset < len) {
741
- inner_loop:
742
- while (true) {
743
- int ch = (int) cbuf[offset];
744
- if (ch > 0x7F) {
745
- break inner_loop;
746
- }
747
- _outputBuffer[_outputTail++] = (byte) ch;
748
- if (++offset >= len) {
749
- break main_loop;
750
- }
751
- }
752
- char ch = cbuf[offset++];
753
- if (ch < 0x800) { // 2-byte?
754
- _outputBuffer[_outputTail++] = (byte) (0xc0 | (ch >> 6));
755
- _outputBuffer[_outputTail++] = (byte) (0x80 | (ch & 0x3f));
756
- } else {
757
- _outputRawMultiByteChar(ch, cbuf, offset, len);
758
- }
759
- }
760
- }
761
-
762
- @Override
763
- public void writeRaw(char ch)
764
- throws IOException, JsonGenerationException
765
- {
766
- if ((_outputTail + 3) >= _outputEnd) {
767
- _flushBuffer();
768
- }
769
- final byte[] bbuf = _outputBuffer;
770
- if (ch <= 0x7F) {
771
- bbuf[_outputTail++] = (byte) ch;
772
- } else if (ch < 0x800) { // 2-byte?
773
- bbuf[_outputTail++] = (byte) (0xc0 | (ch >> 6));
774
- bbuf[_outputTail++] = (byte) (0x80 | (ch & 0x3f));
775
- } else {
776
- _outputRawMultiByteChar(ch, null, 0, 0);
777
- }
778
- }
779
-
780
- /**
781
- * Helper method called when it is possible that output of raw section
782
- * to output may cross buffer boundary
783
- */
784
- private final void _writeSegmentedRaw(char[] cbuf, int offset, int len)
785
- throws IOException, JsonGenerationException
786
- {
787
- final int end = _outputEnd;
788
- final byte[] bbuf = _outputBuffer;
789
-
790
- main_loop:
791
- while (offset < len) {
792
- inner_loop:
793
- while (true) {
794
- int ch = (int) cbuf[offset];
795
- if (ch >= 0x80) {
796
- break inner_loop;
797
- }
798
- // !!! TODO: fast(er) writes (roll input, output checks in one)
799
- if (_outputTail >= end) {
800
- _flushBuffer();
801
- }
802
- bbuf[_outputTail++] = (byte) ch;
803
- if (++offset >= len) {
804
- break main_loop;
805
- }
806
- }
807
- if ((_outputTail + 3) >= _outputEnd) {
808
- _flushBuffer();
809
- }
810
- char ch = cbuf[offset++];
811
- if (ch < 0x800) { // 2-byte?
812
- bbuf[_outputTail++] = (byte) (0xc0 | (ch >> 6));
813
- bbuf[_outputTail++] = (byte) (0x80 | (ch & 0x3f));
814
- } else {
815
- _outputRawMultiByteChar(ch, cbuf, offset, len);
816
- }
817
- }
818
- }
819
-
820
- /*
821
- /**********************************************************
822
- /* Output method implementations, base64-encoded binary
823
- /**********************************************************
824
- */
825
-
826
- @Override
827
- public void writeBinary(Base64Variant b64variant, byte[] data, int offset, int len)
828
- throws IOException, JsonGenerationException
829
- {
830
- _verifyValueWrite("write binary value");
831
- // Starting quotes
832
- if (_outputTail >= _outputEnd) {
833
- _flushBuffer();
834
- }
835
- _outputBuffer[_outputTail++] = BYTE_QUOTE;
836
- _writeBinary(b64variant, data, offset, offset+len);
837
- // and closing quotes
838
- if (_outputTail >= _outputEnd) {
839
- _flushBuffer();
840
- }
841
- _outputBuffer[_outputTail++] = BYTE_QUOTE;
842
- }
843
-
844
- /*
845
- /**********************************************************
846
- /* Output method implementations, primitive
847
- /**********************************************************
848
- */
849
-
850
- @Override
851
- public void writeNumber(int i)
852
- throws IOException, JsonGenerationException
853
- {
854
- _verifyValueWrite("write number");
855
- // up to 10 digits and possible minus sign
856
- if ((_outputTail + 11) >= _outputEnd) {
857
- _flushBuffer();
858
- }
859
- if (_cfgNumbersAsStrings) {
860
- _writeQuotedInt(i);
861
- return;
862
- }
863
- _outputTail = NumberOutput.outputInt(i, _outputBuffer, _outputTail);
864
- }
865
-
866
- private final void _writeQuotedInt(int i) throws IOException {
867
- if ((_outputTail + 13) >= _outputEnd) {
868
- _flushBuffer();
869
- }
870
- _outputBuffer[_outputTail++] = BYTE_QUOTE;
871
- _outputTail = NumberOutput.outputInt(i, _outputBuffer, _outputTail);
872
- _outputBuffer[_outputTail++] = BYTE_QUOTE;
873
- }
874
-
875
- @Override
876
- public void writeNumber(long l)
877
- throws IOException, JsonGenerationException
878
- {
879
- _verifyValueWrite("write number");
880
- if (_cfgNumbersAsStrings) {
881
- _writeQuotedLong(l);
882
- return;
883
- }
884
- if ((_outputTail + 21) >= _outputEnd) {
885
- // up to 20 digits, minus sign
886
- _flushBuffer();
887
- }
888
- _outputTail = NumberOutput.outputLong(l, _outputBuffer, _outputTail);
889
- }
890
-
891
- private final void _writeQuotedLong(long l) throws IOException {
892
- if ((_outputTail + 23) >= _outputEnd) {
893
- _flushBuffer();
894
- }
895
- _outputBuffer[_outputTail++] = BYTE_QUOTE;
896
- _outputTail = NumberOutput.outputLong(l, _outputBuffer, _outputTail);
897
- _outputBuffer[_outputTail++] = BYTE_QUOTE;
898
- }
899
-
900
- @Override
901
- public void writeNumber(BigInteger value)
902
- throws IOException, JsonGenerationException
903
- {
904
- _verifyValueWrite("write number");
905
- if (value == null) {
906
- _writeNull();
907
- } else if (_cfgNumbersAsStrings) {
908
- _writeQuotedRaw(value);
909
- } else {
910
- writeRaw(value.toString());
911
- }
912
- }
913
-
914
-
915
- @Override
916
- public void writeNumber(double d)
917
- throws IOException, JsonGenerationException
918
- {
919
- if (_cfgNumbersAsStrings ||
920
- // [JACKSON-139]
921
- (((Double.isNaN(d) || Double.isInfinite(d))
922
- && isEnabled(Feature.QUOTE_NON_NUMERIC_NUMBERS)))) {
923
- writeString(String.valueOf(d));
924
- return;
925
- }
926
- // What is the max length for doubles? 40 chars?
927
- _verifyValueWrite("write number");
928
- writeRaw(String.valueOf(d));
929
- }
930
-
931
- @Override
932
- public void writeNumber(float f)
933
- throws IOException, JsonGenerationException
934
- {
935
- if (_cfgNumbersAsStrings ||
936
- // [JACKSON-139]
937
- (((Float.isNaN(f) || Float.isInfinite(f))
938
- && isEnabled(Feature.QUOTE_NON_NUMERIC_NUMBERS)))) {
939
- writeString(String.valueOf(f));
940
- return;
941
- }
942
- // What is the max length for floats?
943
- _verifyValueWrite("write number");
944
- writeRaw(String.valueOf(f));
945
- }
946
-
947
- @Override
948
- public void writeNumber(BigDecimal value)
949
- throws IOException, JsonGenerationException
950
- {
951
- // Don't really know max length for big decimal, no point checking
952
- _verifyValueWrite("write number");
953
- if (value == null) {
954
- _writeNull();
955
- } else if (_cfgNumbersAsStrings) {
956
- _writeQuotedRaw(value);
957
- } else {
958
- writeRaw(value.toString());
959
- }
960
- }
961
-
962
- @Override
963
- public void writeNumber(String encodedValue)
964
- throws IOException, JsonGenerationException
965
- {
966
- _verifyValueWrite("write number");
967
- if (_cfgNumbersAsStrings) {
968
- _writeQuotedRaw(encodedValue);
969
- } else {
970
- writeRaw(encodedValue);
971
- }
972
- }
973
-
974
- private final void _writeQuotedRaw(Object value) throws IOException
975
- {
976
- if (_outputTail >= _outputEnd) {
977
- _flushBuffer();
978
- }
979
- _outputBuffer[_outputTail++] = BYTE_QUOTE;
980
- writeRaw(value.toString());
981
- if (_outputTail >= _outputEnd) {
982
- _flushBuffer();
983
- }
984
- _outputBuffer[_outputTail++] = BYTE_QUOTE;
985
- }
986
-
987
- @Override
988
- public void writeBoolean(boolean state)
989
- throws IOException, JsonGenerationException
990
- {
991
- _verifyValueWrite("write boolean value");
992
- if ((_outputTail + 5) >= _outputEnd) {
993
- _flushBuffer();
994
- }
995
- byte[] keyword = state ? TRUE_BYTES : FALSE_BYTES;
996
- int len = keyword.length;
997
- System.arraycopy(keyword, 0, _outputBuffer, _outputTail, len);
998
- _outputTail += len;
999
- }
1000
-
1001
- @Override
1002
- public void writeNull()
1003
- throws IOException, JsonGenerationException
1004
- {
1005
- _verifyValueWrite("write null value");
1006
- _writeNull();
1007
- }
1008
-
1009
- /*
1010
- /**********************************************************
1011
- /* Implementations for other methods
1012
- /**********************************************************
1013
- */
1014
-
1015
- @Override
1016
- protected final void _verifyValueWrite(String typeMsg)
1017
- throws IOException, JsonGenerationException
1018
- {
1019
- int status = _writeContext.writeValue();
1020
- if (status == JsonWriteContext.STATUS_EXPECT_NAME) {
1021
- _reportError("Can not "+typeMsg+", expecting field name");
1022
- }
1023
- if (_cfgPrettyPrinter == null) {
1024
- byte b;
1025
- switch (status) {
1026
- case JsonWriteContext.STATUS_OK_AFTER_COMMA:
1027
- b = BYTE_COMMA;
1028
- break;
1029
- case JsonWriteContext.STATUS_OK_AFTER_COLON:
1030
- b = BYTE_COLON;
1031
- break;
1032
- case JsonWriteContext.STATUS_OK_AFTER_SPACE:
1033
- b = BYTE_SPACE;
1034
- break;
1035
- case JsonWriteContext.STATUS_OK_AS_IS:
1036
- default:
1037
- return;
1038
- }
1039
- if (_outputTail >= _outputEnd) {
1040
- _flushBuffer();
1041
- }
1042
- _outputBuffer[_outputTail] = b;
1043
- ++_outputTail;
1044
- return;
1045
- }
1046
- // Otherwise, pretty printer knows what to do...
1047
- _verifyPrettyValueWrite(typeMsg, status);
1048
- }
1049
-
1050
- protected final void _verifyPrettyValueWrite(String typeMsg, int status)
1051
- throws IOException, JsonGenerationException
1052
- {
1053
- // If we have a pretty printer, it knows what to do:
1054
- switch (status) {
1055
- case JsonWriteContext.STATUS_OK_AFTER_COMMA: // array
1056
- _cfgPrettyPrinter.writeArrayValueSeparator(this);
1057
- break;
1058
- case JsonWriteContext.STATUS_OK_AFTER_COLON:
1059
- _cfgPrettyPrinter.writeObjectFieldValueSeparator(this);
1060
- break;
1061
- case JsonWriteContext.STATUS_OK_AFTER_SPACE:
1062
- _cfgPrettyPrinter.writeRootValueSeparator(this);
1063
- break;
1064
- case JsonWriteContext.STATUS_OK_AS_IS:
1065
- // First entry, but of which context?
1066
- if (_writeContext.inArray()) {
1067
- _cfgPrettyPrinter.beforeArrayValues(this);
1068
- } else if (_writeContext.inObject()) {
1069
- _cfgPrettyPrinter.beforeObjectEntries(this);
1070
- }
1071
- break;
1072
- default:
1073
- _cantHappen();
1074
- break;
1075
- }
1076
- }
1077
-
1078
- /*
1079
- /**********************************************************
1080
- /* Low-level output handling
1081
- /**********************************************************
1082
- */
1083
-
1084
- @Override
1085
- public final void flush()
1086
- throws IOException
1087
- {
1088
- _flushBuffer();
1089
- if (_outputStream != null) {
1090
- if (isEnabled(Feature.FLUSH_PASSED_TO_STREAM)) {
1091
- _outputStream.flush();
1092
- }
1093
- }
1094
- }
1095
-
1096
- @Override
1097
- public void close()
1098
- throws IOException
1099
- {
1100
- super.close();
1101
-
1102
- /* 05-Dec-2008, tatu: To add [JACKSON-27], need to close open
1103
- * scopes.
1104
- */
1105
- // First: let's see that we still have buffers...
1106
- if (_outputBuffer != null
1107
- && isEnabled(Feature.AUTO_CLOSE_JSON_CONTENT)) {
1108
- while (true) {
1109
- JsonStreamContext ctxt = getOutputContext();
1110
- if (ctxt.inArray()) {
1111
- writeEndArray();
1112
- } else if (ctxt.inObject()) {
1113
- writeEndObject();
1114
- } else {
1115
- break;
1116
- }
1117
- }
1118
- }
1119
- _flushBuffer();
1120
-
1121
- /* 25-Nov-2008, tatus: As per [JACKSON-16] we are not to call close()
1122
- * on the underlying Reader, unless we "own" it, or auto-closing
1123
- * feature is enabled.
1124
- * One downside: when using UTF8Writer, underlying buffer(s)
1125
- * may not be properly recycled if we don't close the writer.
1126
- */
1127
- if (_outputStream != null) {
1128
- if (_ioContext.isResourceManaged() || isEnabled(Feature.AUTO_CLOSE_TARGET)) {
1129
- _outputStream.close();
1130
- } else if (isEnabled(Feature.FLUSH_PASSED_TO_STREAM)) {
1131
- // If we can't close it, we should at least flush
1132
- _outputStream.flush();
1133
- }
1134
- }
1135
- // Internal buffer(s) generator has can now be released as well
1136
- _releaseBuffers();
1137
- }
1138
-
1139
- @Override
1140
- protected void _releaseBuffers()
1141
- {
1142
- byte[] buf = _outputBuffer;
1143
- if (buf != null && _bufferRecyclable) {
1144
- _outputBuffer = null;
1145
- _ioContext.releaseWriteEncodingBuffer(buf);
1146
- }
1147
- char[] cbuf = _charBuffer;
1148
- if (cbuf != null) {
1149
- _charBuffer = null;
1150
- _ioContext.releaseConcatBuffer(cbuf);
1151
- }
1152
- }
1153
-
1154
- /*
1155
- /**********************************************************
1156
- /* Internal methods, low-level writing, raw bytes
1157
- /**********************************************************
1158
- */
1159
-
1160
- private final void _writeBytes(byte[] bytes) throws IOException
1161
- {
1162
- final int len = bytes.length;
1163
- if ((_outputTail + len) > _outputEnd) {
1164
- _flushBuffer();
1165
- // still not enough?
1166
- if (len > MAX_BYTES_TO_BUFFER) {
1167
- _outputStream.write(bytes, 0, len);
1168
- return;
1169
- }
1170
- }
1171
- System.arraycopy(bytes, 0, _outputBuffer, _outputTail, len);
1172
- _outputTail += len;
1173
- }
1174
-
1175
- private final void _writeBytes(byte[] bytes, int offset, int len) throws IOException
1176
- {
1177
- if ((_outputTail + len) > _outputEnd) {
1178
- _flushBuffer();
1179
- // still not enough?
1180
- if (len > MAX_BYTES_TO_BUFFER) {
1181
- _outputStream.write(bytes, offset, len);
1182
- return;
1183
- }
1184
- }
1185
- System.arraycopy(bytes, offset, _outputBuffer, _outputTail, len);
1186
- _outputTail += len;
1187
- }
1188
-
1189
- /*
1190
- /**********************************************************
1191
- /* Internal methods, mid-level writing, String segments
1192
- /**********************************************************
1193
- */
1194
-
1195
- /**
1196
- * Method called when String to write is long enough not to fit
1197
- * completely in temporary copy buffer. If so, we will actually
1198
- * copy it in small enough chunks so it can be directly fed
1199
- * to single-segment writes (instead of maximum slices that
1200
- * would fit in copy buffer)
1201
- */
1202
- private final void _writeStringSegments(String text)
1203
- throws IOException, JsonGenerationException
1204
- {
1205
- int left = text.length();
1206
- int offset = 0;
1207
- final char[] cbuf = _charBuffer;
1208
-
1209
- while (left > 0) {
1210
- int len = Math.min(_outputMaxContiguous, left);
1211
- text.getChars(offset, offset+len, cbuf, 0);
1212
- if ((_outputTail + len) > _outputEnd) { // caller must ensure enough space
1213
- _flushBuffer();
1214
- }
1215
- _writeStringSegment(cbuf, 0, len);
1216
- offset += len;
1217
- left -= len;
1218
- }
1219
- }
1220
-
1221
- /**
1222
- * Method called when character sequence to write is long enough that
1223
- * its maximum encoded and escaped form is not guaranteed to fit in
1224
- * the output buffer. If so, we will need to choose smaller output
1225
- * chunks to write at a time.
1226
- */
1227
- private final void _writeStringSegments(char[] cbuf, int offset, int totalLen)
1228
- throws IOException, JsonGenerationException
1229
- {
1230
- do {
1231
- int len = Math.min(_outputMaxContiguous, totalLen);
1232
- if ((_outputTail + len) > _outputEnd) { // caller must ensure enough space
1233
- _flushBuffer();
1234
- }
1235
- _writeStringSegment(cbuf, offset, len);
1236
- offset += len;
1237
- totalLen -= len;
1238
- } while (totalLen > 0);
1239
- }
1240
-
1241
- /*
1242
- /**********************************************************
1243
- /* Internal methods, low-level writing, text segments
1244
- /**********************************************************
1245
- */
1246
-
1247
- /**
1248
- * This method called when the string content is already in
1249
- * a char buffer, and its maximum total encoded and escaped length
1250
- * can not exceed size of the output buffer.
1251
- * Caller must ensure that there is enough space in output buffer,
1252
- * assuming case of all non-escaped ASCII characters, as well as
1253
- * potentially enough space for other cases (but not necessarily flushed)
1254
- */
1255
- private final void _writeStringSegment(char[] cbuf, int offset, int len)
1256
- throws IOException, JsonGenerationException
1257
- {
1258
- // note: caller MUST ensure (via flushing) there's room for ASCII only
1259
-
1260
- // Fast+tight loop for ASCII-only, no-escaping-needed output
1261
- len += offset; // becomes end marker, then
1262
-
1263
- int outputPtr = _outputTail;
1264
- final byte[] outputBuffer = _outputBuffer;
1265
- final int[] escCodes = _outputEscapes;
1266
-
1267
- while (offset < len) {
1268
- int ch = cbuf[offset];
1269
- // note: here we know that (ch > 0x7F) will cover case of escaping non-ASCII too:
1270
- if (ch > 0x7F || escCodes[ch] != 0) {
1271
- break;
1272
- }
1273
- outputBuffer[outputPtr++] = (byte) ch;
1274
- ++offset;
1275
- }
1276
- _outputTail = outputPtr;
1277
- if (offset < len) {
1278
- // [JACKSON-106]
1279
- if (_characterEscapes != null) {
1280
- _writeCustomStringSegment2(cbuf, offset, len);
1281
- // [JACKSON-102]
1282
- } else if (_maximumNonEscapedChar == 0) {
1283
- _writeStringSegment2(cbuf, offset, len);
1284
- } else {
1285
- _writeStringSegmentASCII2(cbuf, offset, len);
1286
- }
1287
-
1288
- }
1289
- }
1290
-
1291
- /**
1292
- * Secondary method called when content contains characters to escape,
1293
- * and/or multi-byte UTF-8 characters.
1294
- */
1295
- private final void _writeStringSegment2(final char[] cbuf, int offset, final int end)
1296
- throws IOException, JsonGenerationException
1297
- {
1298
- // Ok: caller guarantees buffer can have room; but that may require flushing:
1299
- if ((_outputTail + 6 * (end - offset)) > _outputEnd) {
1300
- _flushBuffer();
1301
- }
1302
-
1303
- int outputPtr = _outputTail;
1304
-
1305
- final byte[] outputBuffer = _outputBuffer;
1306
- final int[] escCodes = _outputEscapes;
1307
-
1308
- while (offset < end) {
1309
- int ch = cbuf[offset++];
1310
- if (ch <= 0x7F) {
1311
- if (escCodes[ch] == 0) {
1312
- outputBuffer[outputPtr++] = (byte) ch;
1313
- continue;
1314
- }
1315
- int escape = escCodes[ch];
1316
- if (escape > 0) { // 2-char escape, fine
1317
- outputBuffer[outputPtr++] = BYTE_BACKSLASH;
1318
- outputBuffer[outputPtr++] = (byte) escape;
1319
- } else {
1320
- // ctrl-char, 6-byte escape...
1321
- outputPtr = _writeGenericEscape(ch, outputPtr);
1322
- }
1323
- continue;
1324
- }
1325
- if (ch <= 0x7FF) { // fine, just needs 2 byte output
1326
- outputBuffer[outputPtr++] = (byte) (0xc0 | (ch >> 6));
1327
- outputBuffer[outputPtr++] = (byte) (0x80 | (ch & 0x3f));
1328
- } else {
1329
- outputPtr = _outputMultiByteChar(ch, outputPtr);
1330
- }
1331
- }
1332
- _outputTail = outputPtr;
1333
- }
1334
-
1335
- /*
1336
- /**********************************************************
1337
- /* Internal methods, low-level writing, text segment
1338
- /* with additional escaping (ASCII or such)
1339
- /* (since 1.8; see [JACKSON-102])
1340
- /**********************************************************
1341
- */
1342
-
1343
- /**
1344
- * Same as <code>_writeStringSegment2(char[], ...)</code., but with
1345
- * additional escaping for high-range code points
1346
- *
1347
- * @since 1.8
1348
- */
1349
- private final void _writeStringSegmentASCII2(final char[] cbuf, int offset, final int end)
1350
- throws IOException, JsonGenerationException
1351
- {
1352
- // Ok: caller guarantees buffer can have room; but that may require flushing:
1353
- if ((_outputTail + 6 * (end - offset)) > _outputEnd) {
1354
- _flushBuffer();
1355
- }
1356
-
1357
- int outputPtr = _outputTail;
1358
-
1359
- final byte[] outputBuffer = _outputBuffer;
1360
- final int[] escCodes = _outputEscapes;
1361
- final int maxUnescaped = _maximumNonEscapedChar;
1362
-
1363
- while (offset < end) {
1364
- int ch = cbuf[offset++];
1365
- if (ch <= 0x7F) {
1366
- if (escCodes[ch] == 0) {
1367
- outputBuffer[outputPtr++] = (byte) ch;
1368
- continue;
1369
- }
1370
- int escape = escCodes[ch];
1371
- if (escape > 0) { // 2-char escape, fine
1372
- outputBuffer[outputPtr++] = BYTE_BACKSLASH;
1373
- outputBuffer[outputPtr++] = (byte) escape;
1374
- } else {
1375
- // ctrl-char, 6-byte escape...
1376
- outputPtr = _writeGenericEscape(ch, outputPtr);
1377
- }
1378
- continue;
1379
- }
1380
- if (ch > maxUnescaped) { // [JACKSON-102] Allow forced escaping if non-ASCII (etc) chars:
1381
- outputPtr = _writeGenericEscape(ch, outputPtr);
1382
- continue;
1383
- }
1384
- if (ch <= 0x7FF) { // fine, just needs 2 byte output
1385
- outputBuffer[outputPtr++] = (byte) (0xc0 | (ch >> 6));
1386
- outputBuffer[outputPtr++] = (byte) (0x80 | (ch & 0x3f));
1387
- } else {
1388
- outputPtr = _outputMultiByteChar(ch, outputPtr);
1389
- }
1390
- }
1391
- _outputTail = outputPtr;
1392
- }
1393
-
1394
- /*
1395
- /**********************************************************
1396
- /* Internal methods, low-level writing, text segment
1397
- /* with fully custom escaping (and possibly escaping of non-ASCII
1398
- /**********************************************************
1399
- */
1400
-
1401
- /**
1402
- * Same as <code>_writeStringSegmentASCII2(char[], ...)</code., but with
1403
- * additional checking for completely custom escapes
1404
- *
1405
- * @since 1.8
1406
- */
1407
- private final void _writeCustomStringSegment2(final char[] cbuf, int offset, final int end)
1408
- throws IOException, JsonGenerationException
1409
- {
1410
- // Ok: caller guarantees buffer can have room; but that may require flushing:
1411
- if ((_outputTail + 6 * (end - offset)) > _outputEnd) {
1412
- _flushBuffer();
1413
- }
1414
- int outputPtr = _outputTail;
1415
-
1416
- final byte[] outputBuffer = _outputBuffer;
1417
- final int[] escCodes = _outputEscapes;
1418
- // may or may not have this limit
1419
- final int maxUnescaped = (_maximumNonEscapedChar <= 0) ? 0xFFFF : _maximumNonEscapedChar;
1420
- final CharacterEscapes customEscapes = _characterEscapes; // non-null
1421
-
1422
- while (offset < end) {
1423
- int ch = cbuf[offset++];
1424
- if (ch <= 0x7F) {
1425
- if (escCodes[ch] == 0) {
1426
- outputBuffer[outputPtr++] = (byte) ch;
1427
- continue;
1428
- }
1429
- int escape = escCodes[ch];
1430
- if (escape > 0) { // 2-char escape, fine
1431
- outputBuffer[outputPtr++] = BYTE_BACKSLASH;
1432
- outputBuffer[outputPtr++] = (byte) escape;
1433
- } else if (escape == CharacterEscapes.ESCAPE_CUSTOM) {
1434
- SerializableString esc = customEscapes.getEscapeSequence(ch);
1435
- if (esc == null) {
1436
- throw new JsonGenerationException("Invalid custom escape definitions; custom escape not found for character code 0x"
1437
- +Integer.toHexString(ch)+", although was supposed to have one");
1438
- }
1439
- outputPtr = _writeCustomEscape(outputBuffer, outputPtr, esc, end-offset);
1440
- } else {
1441
- // ctrl-char, 6-byte escape...
1442
- outputPtr = _writeGenericEscape(ch, outputPtr);
1443
- }
1444
- continue;
1445
- }
1446
- if (ch > maxUnescaped) { // [JACKSON-102] Allow forced escaping if non-ASCII (etc) chars:
1447
- outputPtr = _writeGenericEscape(ch, outputPtr);
1448
- continue;
1449
- }
1450
- SerializableString esc = customEscapes.getEscapeSequence(ch);
1451
- if (esc != null) {
1452
- outputPtr = _writeCustomEscape(outputBuffer, outputPtr, esc, end-offset);
1453
- continue;
1454
- }
1455
- if (ch <= 0x7FF) { // fine, just needs 2 byte output
1456
- outputBuffer[outputPtr++] = (byte) (0xc0 | (ch >> 6));
1457
- outputBuffer[outputPtr++] = (byte) (0x80 | (ch & 0x3f));
1458
- } else {
1459
- outputPtr = _outputMultiByteChar(ch, outputPtr);
1460
- }
1461
- }
1462
- _outputTail = outputPtr;
1463
- }
1464
-
1465
- private int _writeCustomEscape(byte[] outputBuffer, int outputPtr, SerializableString esc, int remainingChars)
1466
- throws IOException, JsonGenerationException
1467
- {
1468
- byte[] raw = esc.asUnquotedUTF8(); // must be escaped at this point, shouldn't double-quote
1469
- int len = raw.length;
1470
- if (len > 6) { // may violate constraints we have, do offline
1471
- return _handleLongCustomEscape(outputBuffer, outputPtr, _outputEnd, raw, remainingChars);
1472
- }
1473
- // otherwise will fit without issues, so:
1474
- System.arraycopy(raw, 0, outputBuffer, outputPtr, len);
1475
- return (outputPtr + len);
1476
- }
1477
-
1478
- private int _handleLongCustomEscape(byte[] outputBuffer, int outputPtr, int outputEnd, byte[] raw,
1479
- int remainingChars)
1480
- throws IOException, JsonGenerationException
1481
- {
1482
- int len = raw.length;
1483
- if ((outputPtr + len) > outputEnd) {
1484
- _outputTail = outputPtr;
1485
- _flushBuffer();
1486
- outputPtr = _outputTail;
1487
- if (len > outputBuffer.length) { // very unlikely, but possible...
1488
- _outputStream.write(raw, 0, len);
1489
- return outputPtr;
1490
- }
1491
- System.arraycopy(raw, 0, outputBuffer, outputPtr, len);
1492
- outputPtr += len;
1493
- }
1494
- // but is the invariant still obeyed? If not, flush once more
1495
- if ((outputPtr + 6 * remainingChars) > outputEnd) {
1496
- _flushBuffer();
1497
- return _outputTail;
1498
- }
1499
- return outputPtr;
1500
- }
1501
-
1502
- /*
1503
- /**********************************************************
1504
- /* Internal methods, low-level writing, "raw UTF-8" segments
1505
- /**********************************************************
1506
- */
1507
-
1508
- /**
1509
- * Method called when UTF-8 encoded (but NOT yet escaped!) content is not guaranteed
1510
- * to fit in the output buffer after escaping; as such, we just need to
1511
- * chunk writes.
1512
- */
1513
- private final void _writeUTF8Segments(byte[] utf8, int offset, int totalLen)
1514
- throws IOException, JsonGenerationException
1515
- {
1516
- do {
1517
- int len = Math.min(_outputMaxContiguous, totalLen);
1518
- _writeUTF8Segment(utf8, offset, len);
1519
- offset += len;
1520
- totalLen -= len;
1521
- } while (totalLen > 0);
1522
- }
1523
-
1524
- private final void _writeUTF8Segment(byte[] utf8, final int offset, final int len)
1525
- throws IOException, JsonGenerationException
1526
- {
1527
- // fast loop to see if escaping is needed; don't copy, just look
1528
- final int[] escCodes = _outputEscapes;
1529
-
1530
- for (int ptr = offset, end = offset + len; ptr < end; ) {
1531
- // 28-Feb-2011, tatu: escape codes just cover 7-bit range, so:
1532
- int ch = utf8[ptr++];
1533
- if ((ch >= 0) && escCodes[ch] != 0) {
1534
- _writeUTF8Segment2(utf8, offset, len);
1535
- return;
1536
- }
1537
- }
1538
-
1539
- // yes, fine, just copy the sucker
1540
- if ((_outputTail + len) > _outputEnd) { // enough room or need to flush?
1541
- _flushBuffer(); // but yes once we flush (caller guarantees length restriction)
1542
- }
1543
- System.arraycopy(utf8, offset, _outputBuffer, _outputTail, len);
1544
- _outputTail += len;
1545
- }
1546
-
1547
- private final void _writeUTF8Segment2(final byte[] utf8, int offset, int len)
1548
- throws IOException, JsonGenerationException
1549
- {
1550
- int outputPtr = _outputTail;
1551
-
1552
- // Ok: caller guarantees buffer can have room; but that may require flushing:
1553
- if ((outputPtr + (len * 6)) > _outputEnd) {
1554
- _flushBuffer();
1555
- outputPtr = _outputTail;
1556
- }
1557
-
1558
- final byte[] outputBuffer = _outputBuffer;
1559
- final int[] escCodes = _outputEscapes;
1560
- len += offset; // so 'len' becomes 'end'
1561
-
1562
- while (offset < len) {
1563
- byte b = utf8[offset++];
1564
- int ch = b;
1565
- if (ch < 0 || escCodes[ch] == 0) {
1566
- outputBuffer[outputPtr++] = b;
1567
- continue;
1568
- }
1569
- int escape = escCodes[ch];
1570
- if (escape > 0) { // 2-char escape, fine
1571
- outputBuffer[outputPtr++] = BYTE_BACKSLASH;
1572
- outputBuffer[outputPtr++] = (byte) escape;
1573
- } else {
1574
- // ctrl-char, 6-byte escape...
1575
- outputPtr = _writeGenericEscape(ch, outputPtr);
1576
- }
1577
- }
1578
- _outputTail = outputPtr;
1579
- }
1580
-
1581
- /*
1582
- /**********************************************************
1583
- /* Internal methods, low-level writing, base64 encoded
1584
- /**********************************************************
1585
- */
1586
-
1587
- protected void _writeBinary(Base64Variant b64variant, byte[] input, int inputPtr, final int inputEnd)
1588
- throws IOException, JsonGenerationException
1589
- {
1590
- // Encoding is by chunks of 3 input, 4 output chars, so:
1591
- int safeInputEnd = inputEnd - 3;
1592
- // Let's also reserve room for possible (and quoted) lf char each round
1593
- int safeOutputEnd = _outputEnd - 6;
1594
- int chunksBeforeLF = b64variant.getMaxLineLength() >> 2;
1595
-
1596
- // Ok, first we loop through all full triplets of data:
1597
- while (inputPtr <= safeInputEnd) {
1598
- if (_outputTail > safeOutputEnd) { // need to flush
1599
- _flushBuffer();
1600
- }
1601
- // First, mash 3 bytes into lsb of 32-bit int
1602
- int b24 = ((int) input[inputPtr++]) << 8;
1603
- b24 |= ((int) input[inputPtr++]) & 0xFF;
1604
- b24 = (b24 << 8) | (((int) input[inputPtr++]) & 0xFF);
1605
- _outputTail = b64variant.encodeBase64Chunk(b24, _outputBuffer, _outputTail);
1606
- if (--chunksBeforeLF <= 0) {
1607
- // note: must quote in JSON value
1608
- _outputBuffer[_outputTail++] = '\\';
1609
- _outputBuffer[_outputTail++] = 'n';
1610
- chunksBeforeLF = b64variant.getMaxLineLength() >> 2;
1611
- }
1612
- }
1613
-
1614
- // And then we may have 1 or 2 leftover bytes to encode
1615
- int inputLeft = inputEnd - inputPtr; // 0, 1 or 2
1616
- if (inputLeft > 0) { // yes, but do we have room for output?
1617
- if (_outputTail > safeOutputEnd) { // don't really need 6 bytes but...
1618
- _flushBuffer();
1619
- }
1620
- int b24 = ((int) input[inputPtr++]) << 16;
1621
- if (inputLeft == 2) {
1622
- b24 |= (((int) input[inputPtr++]) & 0xFF) << 8;
1623
- }
1624
- _outputTail = b64variant.encodeBase64Partial(b24, inputLeft, _outputBuffer, _outputTail);
1625
- }
1626
- }
1627
-
1628
- /*
1629
- /**********************************************************
1630
- /* Internal methods, character escapes/encoding
1631
- /**********************************************************
1632
- */
1633
-
1634
- /**
1635
- * Method called to output a character that is beyond range of
1636
- * 1- and 2-byte UTF-8 encodings, when outputting "raw"
1637
- * text (meaning it is not to be escaped or quoted)
1638
- */
1639
- private final int _outputRawMultiByteChar(int ch, char[] cbuf, int inputOffset, int inputLen)
1640
- throws IOException
1641
- {
1642
- // Let's handle surrogates gracefully (as 4 byte output):
1643
- if (ch >= SURR1_FIRST) {
1644
- if (ch <= SURR2_LAST) { // yes, outside of BMP
1645
- // Do we have second part?
1646
- if (inputOffset >= inputLen) { // nope... have to note down
1647
- _reportError("Split surrogate on writeRaw() input (last character)");
1648
- }
1649
- _outputSurrogates(ch, cbuf[inputOffset]);
1650
- return (inputOffset+1);
1651
- }
1652
- }
1653
- final byte[] bbuf = _outputBuffer;
1654
- bbuf[_outputTail++] = (byte) (0xe0 | (ch >> 12));
1655
- bbuf[_outputTail++] = (byte) (0x80 | ((ch >> 6) & 0x3f));
1656
- bbuf[_outputTail++] = (byte) (0x80 | (ch & 0x3f));
1657
- return inputOffset;
1658
- }
1659
-
1660
- protected final void _outputSurrogates(int surr1, int surr2)
1661
- throws IOException
1662
- {
1663
- int c = _decodeSurrogate(surr1, surr2);
1664
- if ((_outputTail + 4) > _outputEnd) {
1665
- _flushBuffer();
1666
- }
1667
- final byte[] bbuf = _outputBuffer;
1668
- bbuf[_outputTail++] = (byte) (0xf0 | (c >> 18));
1669
- bbuf[_outputTail++] = (byte) (0x80 | ((c >> 12) & 0x3f));
1670
- bbuf[_outputTail++] = (byte) (0x80 | ((c >> 6) & 0x3f));
1671
- bbuf[_outputTail++] = (byte) (0x80 | (c & 0x3f));
1672
- }
1673
-
1674
- /**
1675
- *
1676
- * @param ch
1677
- * @param outputPtr Position within output buffer to append multi-byte in
1678
- *
1679
- * @return New output position after appending
1680
- *
1681
- * @throws IOException
1682
- */
1683
- private final int _outputMultiByteChar(int ch, int outputPtr)
1684
- throws IOException
1685
- {
1686
- byte[] bbuf = _outputBuffer;
1687
- if (ch >= SURR1_FIRST && ch <= SURR2_LAST) { // yes, outside of BMP; add an escape
1688
- bbuf[outputPtr++] = BYTE_BACKSLASH;
1689
- bbuf[outputPtr++] = BYTE_u;
1690
-
1691
- bbuf[outputPtr++] = HEX_CHARS[(ch >> 12) & 0xF];
1692
- bbuf[outputPtr++] = HEX_CHARS[(ch >> 8) & 0xF];
1693
- bbuf[outputPtr++] = HEX_CHARS[(ch >> 4) & 0xF];
1694
- bbuf[outputPtr++] = HEX_CHARS[ch & 0xF];
1695
- } else {
1696
- bbuf[outputPtr++] = (byte) (0xe0 | (ch >> 12));
1697
- bbuf[outputPtr++] = (byte) (0x80 | ((ch >> 6) & 0x3f));
1698
- bbuf[outputPtr++] = (byte) (0x80 | (ch & 0x3f));
1699
- }
1700
- return outputPtr;
1701
- }
1702
-
1703
- protected final int _decodeSurrogate(int surr1, int surr2) throws IOException
1704
- {
1705
- // First is known to be valid, but how about the other?
1706
- if (surr2 < SURR2_FIRST || surr2 > SURR2_LAST) {
1707
- String msg = "Incomplete surrogate pair: first char 0x"+Integer.toHexString(surr1)+", second 0x"+Integer.toHexString(surr2);
1708
- _reportError(msg);
1709
- }
1710
- int c = 0x10000 + ((surr1 - SURR1_FIRST) << 10) + (surr2 - SURR2_FIRST);
1711
- return c;
1712
- }
1713
-
1714
- private final void _writeNull() throws IOException
1715
- {
1716
- if ((_outputTail + 4) >= _outputEnd) {
1717
- _flushBuffer();
1718
- }
1719
- System.arraycopy(NULL_BYTES, 0, _outputBuffer, _outputTail, 4);
1720
- _outputTail += 4;
1721
- }
1722
-
1723
- /**
1724
- * Method called to write a generic Unicode escape for given character.
1725
- *
1726
- * @param charToEscape Character to escape using escape sequence (\\uXXXX)
1727
- */
1728
- private int _writeGenericEscape(int charToEscape, int outputPtr)
1729
- throws IOException
1730
- {
1731
- final byte[] bbuf = _outputBuffer;
1732
- bbuf[outputPtr++] = BYTE_BACKSLASH;
1733
- bbuf[outputPtr++] = BYTE_u;
1734
- if (charToEscape > 0xFF) {
1735
- int hi = (charToEscape >> 8) & 0xFF;
1736
- bbuf[outputPtr++] = HEX_CHARS[hi >> 4];
1737
- bbuf[outputPtr++] = HEX_CHARS[hi & 0xF];
1738
- charToEscape &= 0xFF;
1739
- } else {
1740
- bbuf[outputPtr++] = BYTE_0;
1741
- bbuf[outputPtr++] = BYTE_0;
1742
- }
1743
- // We know it's a control char, so only the last 2 chars are non-0
1744
- bbuf[outputPtr++] = HEX_CHARS[charToEscape >> 4];
1745
- bbuf[outputPtr++] = HEX_CHARS[charToEscape & 0xF];
1746
- return outputPtr;
1747
- }
1748
-
1749
- protected final void _flushBuffer() throws IOException
1750
- {
1751
- int len = _outputTail;
1752
- if (len > 0) {
1753
- _outputTail = 0;
1754
- _outputStream.write(_outputBuffer, 0, len);
1755
- }
1756
- }
1757
- }