@@ -2471,36 +2471,14 @@ public void copyCurrentEvent(JsonParser p) throws IOException
2471
2471
writeFieldName (p .getCurrentName ());
2472
2472
break ;
2473
2473
case ID_STRING :
2474
- if (p .hasTextCharacters ()) {
2475
- writeString (p .getTextCharacters (), p .getTextOffset (), p .getTextLength ());
2476
- } else {
2477
- writeString (p .getText ());
2478
- }
2474
+ _copyCurrentStringValue (p );
2479
2475
break ;
2480
2476
case ID_NUMBER_INT :
2481
- {
2482
- NumberType n = p .getNumberType ();
2483
- if (n == NumberType .INT ) {
2484
- writeNumber (p .getIntValue ());
2485
- } else if (n == NumberType .BIG_INTEGER ) {
2486
- writeNumber (p .getBigIntegerValue ());
2487
- } else {
2488
- writeNumber (p .getLongValue ());
2489
- }
2477
+ _copyCurrentIntValue (p );
2490
2478
break ;
2491
- }
2492
2479
case ID_NUMBER_FLOAT :
2493
- {
2494
- Number n = p .getNumberValueExact ();
2495
- if (n instanceof BigDecimal ) {
2496
- writeNumber ((BigDecimal ) n );
2497
- } else if (n instanceof Double ) {
2498
- writeNumber (n .doubleValue ());
2499
- } else {
2500
- writeNumber (n .floatValue ());
2501
- }
2480
+ _copyCurrentFloatValue (p );
2502
2481
break ;
2503
- }
2504
2482
case ID_TRUE :
2505
2483
writeBoolean (true );
2506
2484
break ;
@@ -2616,36 +2594,14 @@ protected void _copyCurrentContents(JsonParser p) throws IOException
2616
2594
break ;
2617
2595
2618
2596
case ID_STRING :
2619
- if (p .hasTextCharacters ()) {
2620
- writeString (p .getTextCharacters (), p .getTextOffset (), p .getTextLength ());
2621
- } else {
2622
- writeString (p .getText ());
2623
- }
2597
+ _copyCurrentStringValue (p );
2624
2598
break ;
2625
2599
case ID_NUMBER_INT :
2626
- {
2627
- NumberType n = p .getNumberType ();
2628
- if (n == NumberType .INT ) {
2629
- writeNumber (p .getIntValue ());
2630
- } else if (n == NumberType .BIG_INTEGER ) {
2631
- writeNumber (p .getBigIntegerValue ());
2632
- } else {
2633
- writeNumber (p .getLongValue ());
2634
- }
2600
+ _copyCurrentIntValue (p );
2635
2601
break ;
2636
- }
2637
2602
case ID_NUMBER_FLOAT :
2638
- {
2639
- Number n = p .getNumberValueExact ();
2640
- if (n instanceof BigDecimal ) {
2641
- writeNumber ((BigDecimal ) n );
2642
- } else if (n instanceof Double ) {
2643
- writeNumber (n .doubleValue ());
2644
- } else {
2645
- writeNumber (n .floatValue ());
2646
- }
2603
+ _copyCurrentFloatValue (p );
2647
2604
break ;
2648
- }
2649
2605
case ID_TRUE :
2650
2606
writeBoolean (true );
2651
2607
break ;
@@ -2664,6 +2620,63 @@ protected void _copyCurrentContents(JsonParser p) throws IOException
2664
2620
}
2665
2621
}
2666
2622
2623
+ /**
2624
+ * Method for copying current {@link JsonToken#VALUE_NUMBER_FLOAT} value;
2625
+ * overridable by format backend implementations.
2626
+ *
2627
+ * @param p Parser that points to the value to copy
2628
+ *
2629
+ * @since 2.15
2630
+ */
2631
+ protected void _copyCurrentFloatValue (JsonParser p ) throws IOException
2632
+ {
2633
+ Number n = p .getNumberValueExact ();
2634
+ if (n instanceof BigDecimal ) {
2635
+ writeNumber ((BigDecimal ) n );
2636
+ } else if (n instanceof Double ) {
2637
+ writeNumber (n .doubleValue ());
2638
+ } else {
2639
+ writeNumber (n .floatValue ());
2640
+ }
2641
+ }
2642
+
2643
+ /**
2644
+ * Method for copying current {@link JsonToken#VALUE_NUMBER_FLOAT} value;
2645
+ * overridable by format backend implementations.
2646
+ *
2647
+ * @param p Parser that points to the value to copy
2648
+ *
2649
+ * @since 2.15
2650
+ */
2651
+ protected void _copyCurrentIntValue (JsonParser p ) throws IOException
2652
+ {
2653
+ NumberType n = p .getNumberType ();
2654
+ if (n == NumberType .INT ) {
2655
+ writeNumber (p .getIntValue ());
2656
+ } else if (n == NumberType .LONG ) {
2657
+ writeNumber (p .getLongValue ());
2658
+ } else {
2659
+ writeNumber (p .getBigIntegerValue ());
2660
+ }
2661
+ }
2662
+
2663
+ /**
2664
+ * Method for copying current {@link JsonToken#VALUE_STRING} value;
2665
+ * overridable by format backend implementations.
2666
+ *
2667
+ * @param p Parser that points to the value to copy
2668
+ *
2669
+ * @since 2.15
2670
+ */
2671
+ protected void _copyCurrentStringValue (JsonParser p ) throws IOException
2672
+ {
2673
+ if (p .hasTextCharacters ()) {
2674
+ writeString (p .getTextCharacters (), p .getTextOffset (), p .getTextLength ());
2675
+ } else {
2676
+ writeString (p .getText ());
2677
+ }
2678
+ }
2679
+
2667
2680
/*
2668
2681
/**********************************************************************
2669
2682
/* Public API, buffer handling
0 commit comments