@@ -715,6 +715,8 @@ private void processField( ModelField field, XmlFieldMetadata xmlFieldMetadata,
715
715
716
716
String adder ;
717
717
718
+ boolean requireSetter = false ;
719
+
718
720
if ( wrappedItems )
719
721
{
720
722
sc .add ( tagComparison );
@@ -735,7 +737,7 @@ private void processField( ModelField field, XmlFieldMetadata xmlFieldMetadata,
735
737
}
736
738
sc .add ( associationType + " " + associationName + " = " + defaultValue + ";" );
737
739
738
- sc . add ( objectName + ".set" + capFieldName + "( " + associationName + " );" ) ;
740
+ requireSetter = true ;
739
741
740
742
adder = associationName + ".add" ;
741
743
}
@@ -789,8 +791,8 @@ private void processField( ModelField field, XmlFieldMetadata xmlFieldMetadata,
789
791
790
792
sc .add ( associationName + " = " + defaultValue + ";" );
791
793
792
- sc . add ( objectName + ".set" + capFieldName + "( " + associationName + " );" ) ;
793
-
794
+ requireSetter = true ;
795
+
794
796
sc .unindent ();
795
797
sc .add ( "}" );
796
798
@@ -848,15 +850,15 @@ private void processField( ModelField field, XmlFieldMetadata xmlFieldMetadata,
848
850
849
851
sc .unindent ();
850
852
sc .add ( "}" );
851
-
852
- sc .unindent ();
853
- sc .add ( "}" );
854
853
}
855
- else
854
+
855
+ if (requireSetter )
856
856
{
857
- sc .unindent ();
858
- sc .add ( "}" );
857
+ sc .add ( objectName + ".set" + capFieldName + "( " + associationName + " );" );
859
858
}
859
+ sc .unindent ();
860
+ sc .add ( "}" );
861
+
860
862
}
861
863
else
862
864
{
@@ -870,7 +872,7 @@ private void processField( ModelField field, XmlFieldMetadata xmlFieldMetadata,
870
872
if ( locationTracker != null )
871
873
{
872
874
sc .add ( locationTracker .getName () + " " + LOCATION_VAR + "s;" );
873
- writeNewSetLocation ( field , objectName , LOCATION_VAR + "s" , sc );
875
+ writeNewLocation ( LOCATION_VAR + "s" , sc );
874
876
}
875
877
876
878
if ( xmlAssociationMetadata .isMapExplode () )
@@ -954,7 +956,7 @@ private void processField( ModelField field, XmlFieldMetadata xmlFieldMetadata,
954
956
sc .unindent ();
955
957
sc .add ( "}" );
956
958
}
957
-
959
+ writeSetLocation ( field , objectName , LOCATION_VAR + "s" , sc );
958
960
sc .unindent ();
959
961
sc .add ( "}" );
960
962
}
@@ -1659,6 +1661,11 @@ private String buildNewLocation( String source )
1659
1661
+ ( ( sourceTracker != null ) ? ", " + source : "" ) + " )" ;
1660
1662
}
1661
1663
1664
+ private void writeSetLocation ( ModelField field , String objectName , String trackerVariable , JSourceCode sc )
1665
+ {
1666
+ writeSetLocation ( "\" " + field .getName () + "\" " , objectName , trackerVariable , sc );
1667
+ }
1668
+
1662
1669
private void writeSetLocation ( String key , String objectName , String trackerVariable , JSourceCode sc )
1663
1670
{
1664
1671
if ( locationTracker == null )
0 commit comments