17
17
18
18
/**
19
19
* Node that maps to JSON Object structures in JSON content.
20
+ *<p>
21
+ * Note: class was <code>final</code> temporarily for Jackson 2.2.
20
22
*/
21
- public final class ObjectNode
23
+ public class ObjectNode
22
24
extends ContainerNode <ObjectNode >
23
25
{
24
26
// Note: LinkedHashMap for backwards compatibility
@@ -537,7 +539,7 @@ public ObjectNode retain(String... fieldNames) {
537
539
public ArrayNode putArray (String fieldName )
538
540
{
539
541
ArrayNode n = arrayNode ();
540
- _children . put (fieldName , n );
542
+ _put (fieldName , n );
541
543
return n ;
542
544
}
543
545
@@ -554,17 +556,16 @@ public ArrayNode putArray(String fieldName)
554
556
*/
555
557
public ObjectNode putObject (String fieldName )
556
558
{
557
- ObjectNode n = objectNode ();
558
- _children . put (fieldName , n );
559
+ ObjectNode n = objectNode ();
560
+ _put (fieldName , n );
559
561
return n ;
560
562
}
561
563
562
564
/**
563
565
* @return This node (to allow chaining)
564
566
*/
565
567
public ObjectNode putPOJO (String fieldName , Object pojo ) {
566
- _children .put (fieldName , pojoNode (pojo ));
567
- return this ;
568
+ return _put (fieldName , pojoNode (pojo ));
568
569
}
569
570
570
571
/**
@@ -582,8 +583,7 @@ public ObjectNode putNull(String fieldName)
582
583
* @return This node (to allow chaining)
583
584
*/
584
585
public ObjectNode put (String fieldName , short v ) {
585
- _children .put (fieldName , numberNode (v ));
586
- return this ;
586
+ return _put (fieldName , numberNode (v ));
587
587
}
588
588
589
589
/**
@@ -592,13 +592,9 @@ public ObjectNode put(String fieldName, short v) {
592
592
*
593
593
* @return This node (to allow chaining)
594
594
*/
595
- public ObjectNode put (String fieldName , Short value ) {
596
- if (value == null ) {
597
- _children .put (fieldName , nullNode ());
598
- } else {
599
- _children .put (fieldName , numberNode (value .shortValue ()));
600
- }
601
- return this ;
595
+ public ObjectNode put (String fieldName , Short v ) {
596
+ return _put (fieldName , (v == null ) ? nullNode ()
597
+ : numberNode (v .shortValue ()));
602
598
}
603
599
604
600
/**
@@ -607,8 +603,7 @@ public ObjectNode put(String fieldName, Short value) {
607
603
* @return This node (to allow chaining)
608
604
*/
609
605
public ObjectNode put (String fieldName , int v ) {
610
- _children .put (fieldName , numberNode (v ));
611
- return this ;
606
+ return _put (fieldName , numberNode (v ));
612
607
}
613
608
614
609
/**
@@ -617,13 +612,9 @@ public ObjectNode put(String fieldName, int v) {
617
612
*
618
613
* @return This node (to allow chaining)
619
614
*/
620
- public ObjectNode put (String fieldName , Integer value ) {
621
- if (value == null ) {
622
- _children .put (fieldName , nullNode ());
623
- } else {
624
- _children .put (fieldName , numberNode (value .intValue ()));
625
- }
626
- return this ;
615
+ public ObjectNode put (String fieldName , Integer v ) {
616
+ return _put (fieldName , (v == null ) ? nullNode ()
617
+ : numberNode (v .intValue ()));
627
618
}
628
619
629
620
/**
@@ -632,8 +623,7 @@ public ObjectNode put(String fieldName, Integer value) {
632
623
* @return This node (to allow chaining)
633
624
*/
634
625
public ObjectNode put (String fieldName , long v ) {
635
- _children .put (fieldName , numberNode (v ));
636
- return this ;
626
+ return _put (fieldName , numberNode (v ));
637
627
}
638
628
639
629
/**
@@ -642,13 +632,9 @@ public ObjectNode put(String fieldName, long v) {
642
632
*
643
633
* @return This node (to allow chaining)
644
634
*/
645
- public ObjectNode put (String fieldName , Long value ) {
646
- if (value == null ) {
647
- _children .put (fieldName , nullNode ());
648
- } else {
649
- _children .put (fieldName , numberNode (value .longValue ()));
650
- }
651
- return this ;
635
+ public ObjectNode put (String fieldName , Long v ) {
636
+ return _put (fieldName , (v == null ) ? nullNode ()
637
+ : numberNode (v .longValue ()));
652
638
}
653
639
654
640
/**
@@ -657,8 +643,7 @@ public ObjectNode put(String fieldName, Long value) {
657
643
* @return This node (to allow chaining)
658
644
*/
659
645
public ObjectNode put (String fieldName , float v ) {
660
- _children .put (fieldName , numberNode (v ));
661
- return this ;
646
+ return _put (fieldName , numberNode (v ));
662
647
}
663
648
664
649
/**
@@ -667,13 +652,9 @@ public ObjectNode put(String fieldName, float v) {
667
652
*
668
653
* @return This node (to allow chaining)
669
654
*/
670
- public ObjectNode put (String fieldName , Float value ) {
671
- if (value == null ) {
672
- _children .put (fieldName , nullNode ());
673
- } else {
674
- _children .put (fieldName , numberNode (value .floatValue ()));
675
- }
676
- return this ;
655
+ public ObjectNode put (String fieldName , Float v ) {
656
+ return _put (fieldName , (v == null ) ? nullNode ()
657
+ : numberNode (v .floatValue ()));
677
658
}
678
659
679
660
/**
@@ -682,8 +663,7 @@ public ObjectNode put(String fieldName, Float value) {
682
663
* @return This node (to allow chaining)
683
664
*/
684
665
public ObjectNode put (String fieldName , double v ) {
685
- _children .put (fieldName , numberNode (v ));
686
- return this ;
666
+ return _put (fieldName , numberNode (v ));
687
667
}
688
668
689
669
/**
@@ -692,13 +672,9 @@ public ObjectNode put(String fieldName, double v) {
692
672
*
693
673
* @return This node (to allow chaining)
694
674
*/
695
- public ObjectNode put (String fieldName , Double value ) {
696
- if (value == null ) {
697
- _children .put (fieldName , nullNode ());
698
- } else {
699
- _children .put (fieldName , numberNode (value .doubleValue ()));
700
- }
701
- return this ;
675
+ public ObjectNode put (String fieldName , Double v ) {
676
+ return _put (fieldName , (v == null ) ? nullNode ()
677
+ : numberNode (v .doubleValue ()));
702
678
}
703
679
704
680
/**
@@ -707,12 +683,8 @@ public ObjectNode put(String fieldName, Double value) {
707
683
* @return This node (to allow chaining)
708
684
*/
709
685
public ObjectNode put (String fieldName , BigDecimal v ) {
710
- if (v == null ) {
711
- putNull (fieldName );
712
- } else {
713
- _children .put (fieldName , numberNode (v ));
714
- }
715
- return this ;
686
+ return _put (fieldName , (v == null ) ? nullNode ()
687
+ : numberNode (v ));
716
688
}
717
689
718
690
/**
@@ -721,12 +693,8 @@ public ObjectNode put(String fieldName, BigDecimal v) {
721
693
* @return This node (to allow chaining)
722
694
*/
723
695
public ObjectNode put (String fieldName , String v ) {
724
- if (v == null ) {
725
- putNull (fieldName );
726
- } else {
727
- _children .put (fieldName , textNode (v ));
728
- }
729
- return this ;
696
+ return _put (fieldName , (v == null ) ? nullNode ()
697
+ : textNode (v ));
730
698
}
731
699
732
700
/**
@@ -735,8 +703,7 @@ public ObjectNode put(String fieldName, String v) {
735
703
* @return This node (to allow chaining)
736
704
*/
737
705
public ObjectNode put (String fieldName , boolean v ) {
738
- _children .put (fieldName , booleanNode (v ));
739
- return this ;
706
+ return _put (fieldName , booleanNode (v ));
740
707
}
741
708
742
709
/**
@@ -745,13 +712,9 @@ public ObjectNode put(String fieldName, boolean v) {
745
712
*
746
713
* @return This node (to allow chaining)
747
714
*/
748
- public ObjectNode put (String fieldName , Boolean value ) {
749
- if (value == null ) {
750
- _children .put (fieldName , nullNode ());
751
- } else {
752
- _children .put (fieldName , booleanNode (value .booleanValue ()));
753
- }
754
- return this ;
715
+ public ObjectNode put (String fieldName , Boolean v ) {
716
+ return _put (fieldName , (v == null ) ? nullNode ()
717
+ : booleanNode (v .booleanValue ()));
755
718
}
756
719
757
720
/**
@@ -760,14 +723,10 @@ public ObjectNode put(String fieldName, Boolean value) {
760
723
* @return This node (to allow chaining)
761
724
*/
762
725
public ObjectNode put (String fieldName , byte [] v ) {
763
- if (v == null ) {
764
- _children .put (fieldName , nullNode ());
765
- } else {
766
- _children .put (fieldName , binaryNode (v ));
767
- }
768
- return this ;
726
+ return _put (fieldName , (v == null ) ? nullNode ()
727
+ : binaryNode (v ));
769
728
}
770
-
729
+
771
730
/*
772
731
/**********************************************************
773
732
/* Standard methods
@@ -811,4 +770,16 @@ public String toString()
811
770
sb .append ("}" );
812
771
return sb .toString ();
813
772
}
773
+
774
+ /*
775
+ /**********************************************************
776
+ /* Internal methods (overridable)
777
+ /**********************************************************
778
+ */
779
+
780
+ protected ObjectNode _put (String fieldName , JsonNode value )
781
+ {
782
+ _children .put (fieldName , value );
783
+ return this ;
784
+ }
814
785
}
0 commit comments