2727import com .github ._1c_syntax .bsl .reader .common .xstream .ReadConverter ;
2828import com .thoughtworks .xstream .converters .UnmarshallingContext ;
2929import com .thoughtworks .xstream .io .HierarchicalStreamReader ;
30-
31- import java .util .Objects ;
30+ import lombok .extern .slf4j .Slf4j ;
3231
3332/**
3433 * Используется для преобразования содержимого пакета XDTO
3534 */
35+ @ Slf4j
3636@ CommonConverter
3737public class RoleDataConverter implements ReadConverter {
3838
@@ -54,15 +54,15 @@ public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext co
5454 if (OBJECT_NODE_NAME .equals (name )) {
5555 var objectRight = readObjectRight (reader , context );
5656 builder .objectRight (objectRight );
57- } else if (RESTRICTION_TEMPLATE_NODE_NAME .equals (name )) {
58- // пропускаем
59- reader .moveUp ();
60- continue ;
61- } else {
57+ } else if (!RESTRICTION_TEMPLATE_NODE_NAME .equals (name )) { // рестрикций пока нет
6258 var fieldClass = (Class <?>) TransformationUtils .fieldType (builder , name );
63- Objects .requireNonNull (fieldClass , "Field type not found for: " + name );
64- var value = ExtendXStream .readValue (context , fieldClass );
65- TransformationUtils .setValue (builder , name , value );
59+ if (fieldClass != null ) {
60+ var value = ExtendXStream .readValue (context , fieldClass );
61+ TransformationUtils .setValue (builder , name , value );
62+ } else {
63+ // пропустим без падения и будем надеяться, что о ворнинге кто-то скажет
64+ LOGGER .warn ("Field type not found for {}" , name );
65+ }
6666 }
6767
6868 reader .moveUp ();
@@ -81,11 +81,10 @@ private static RoleData.ObjectRight readObjectRight(HierarchicalStreamReader rea
8181 builder .right (right );
8282 } else {
8383 var fieldClass = (Class <?>) TransformationUtils .fieldType (builder , name );
84- if (fieldClass == null ) {
85- continue ;
84+ if (fieldClass != null ) {
85+ var value = ExtendXStream .readValue (context , fieldClass );
86+ TransformationUtils .setValue (builder , name , value );
8687 }
87- var value = ExtendXStream .readValue (context , fieldClass );
88- TransformationUtils .setValue (builder , name , value );
8988 }
9089
9190 reader .moveUp ();
@@ -100,11 +99,10 @@ private static RoleData.Right readRight(HierarchicalStreamReader reader, Unmarsh
10099 reader .moveDown ();
101100 var name = reader .getNodeName ();
102101 var fieldClass = (Class <?>) TransformationUtils .fieldType (builder , name );
103- if (fieldClass == null ) {
104- continue ;
102+ if (fieldClass != null ) {
103+ var value = ExtendXStream .readValue (context , fieldClass );
104+ TransformationUtils .setValue (builder , name , value );
105105 }
106- var value = ExtendXStream .readValue (context , fieldClass );
107- TransformationUtils .setValue (builder , name , value );
108106 reader .moveUp ();
109107 }
110108
0 commit comments