9393import de .symeda .sormas .api .sormastosormas .SormasToSormasShareInfoCriteria ;
9494import de .symeda .sormas .api .sormastosormas .SormasToSormasShareInfoDto ;
9595import de .symeda .sormas .api .sormastosormas .SormasToSormasValidationException ;
96+ import de .symeda .sormas .api .sormastosormas .ValidationErrors ;
9697import de .symeda .sormas .api .user .UserReferenceDto ;
9798import de .symeda .sormas .api .user .UserRight ;
9899import de .symeda .sormas .api .utils .DataHelper ;
@@ -175,7 +176,7 @@ public SormasToSormasFacadeEjb() {
175176 public void saveSharedCases (SormasToSormasEncryptedDataDto encryptedData ) throws SormasToSormasException , SormasToSormasValidationException {
176177 SormasToSormasCaseDto [] sharedCases = decryptSharedData (encryptedData , SormasToSormasCaseDto [].class );
177178
178- Map <String , Map < String , List < String >> > validationErrors = new HashMap <>();
179+ Map <String , ValidationErrors > validationErrors = new HashMap <>();
179180 List <ProcessedCaseData > casesToSave = new ArrayList <>(sharedCases .length );
180181
181182 for (SormasToSormasCaseDto sharedCase : sharedCases ) {
@@ -188,7 +189,7 @@ public void saveSharedCases(SormasToSormasEncryptedDataDto encryptedData) throws
188189
189190 ValidationErrors caseErrors = validateCase (caze );
190191 if (caseErrors .hasError ()) {
191- validationErrors .put (buildCaseValidationGroupName (caze ), caseErrors . getErrors () );
192+ validationErrors .put (buildCaseValidationGroupName (caze ), caseErrors );
192193
193194 continue ;
194195 }
@@ -200,11 +201,11 @@ public void saveSharedCases(SormasToSormasEncryptedDataDto encryptedData) throws
200201 caseValidationErrors .addAll (caseDataErrors );
201202
202203 if (caseValidationErrors .hasError ()) {
203- validationErrors .put (buildCaseValidationGroupName (caze ), caseValidationErrors . getErrors () );
204+ validationErrors .put (buildCaseValidationGroupName (caze ), caseValidationErrors );
204205 }
205206
206207 if (associatedContacts != null ) {
207- Map <String , Map < String , List < String >> > contactValidationErrors = processAssociatedContacts (associatedContacts , originInfo );
208+ Map <String , ValidationErrors > contactValidationErrors = processAssociatedContacts (associatedContacts , originInfo );
208209 validationErrors .putAll (contactValidationErrors );
209210 }
210211
@@ -243,7 +244,7 @@ public void saveSharedCases(SormasToSormasEncryptedDataDto encryptedData) throws
243244 public void saveSharedContacts (SormasToSormasEncryptedDataDto sharedData ) throws SormasToSormasException , SormasToSormasValidationException {
244245 SormasToSormasContactDto [] sharedContacts = decryptSharedData (sharedData , SormasToSormasContactDto [].class );
245246
246- Map <String , Map < String , List < String >> > validationErrors = new HashMap <>();
247+ Map <String , ValidationErrors > validationErrors = new HashMap <>();
247248 List <ProcessedContactData > contactsToSave = new ArrayList <>(sharedContacts .length );
248249
249250 for (SormasToSormasContactDto sharedContact : sharedContacts ) {
@@ -252,21 +253,19 @@ public void saveSharedContacts(SormasToSormasEncryptedDataDto sharedData) throws
252253
253254 ValidationErrors contactErrors = validateContact (contact );
254255 if (contactErrors .hasError ()) {
255- validationErrors .put (buildContactValidationGroupName (contact ), contactErrors . getErrors () );
256+ validationErrors .put (buildContactValidationGroupName (contact ), contactErrors );
256257
257258 continue ;
258259 }
259260
260- ValidationErrors contactErrorsErrors = new ValidationErrors ();
261-
262261 ValidationErrors originInfoErrors = processOriginInfo (contact .getSormasToSormasOriginInfo ());
263- contactErrorsErrors .addAll (originInfoErrors );
262+ contactErrors .addAll (originInfoErrors );
264263
265264 ValidationErrors contactDataErrors = processContactData (contact , person );
266265 contactErrors .addAll (contactDataErrors );
267266
268267 if (contactErrors .hasError ()) {
269- validationErrors .put (buildContactValidationGroupName (contact ), contactErrors . getErrors () );
268+ validationErrors .put (buildContactValidationGroupName (contact ), contactErrors );
270269 }
271270
272271 contactsToSave .add (ProcessedContactData .create (person , contact ));
@@ -384,15 +383,13 @@ public ServerAccessDataReferenceDto getOrganizationRef(String id) {
384383 }
385384
386385 private void validateCasesBeforeSend (List <Case > cases ) throws SormasToSormasException {
387- Map <String , Map < String , List < String >> > validationErrors = new HashMap <>();
386+ Map <String , ValidationErrors > validationErrors = new HashMap <>();
388387 for (Case caze : cases ) {
389388 if (!caseService .isCaseEditAllowed (caze )) {
390- Map <String , List <String >> error = new HashMap <>(1 );
391- error .put (
392- I18nProperties .getCaption (Captions .CaseData ),
393- Collections .singletonList (I18nProperties .getString (Strings .errorSormasToSormasNotEditable )));
394-
395- validationErrors .put (buildCaseValidationGroupName (caze ), error );
389+ validationErrors .put (
390+ buildCaseValidationGroupName (caze ),
391+ ValidationErrors
392+ .create (I18nProperties .getCaption (Captions .CaseData ), I18nProperties .getString (Strings .errorSormasToSormasNotEditable )));
396393 }
397394 }
398395
@@ -402,15 +399,13 @@ private void validateCasesBeforeSend(List<Case> cases) throws SormasToSormasExce
402399 }
403400
404401 private void validateContactsBeforeSend (List <Contact > contacts ) throws SormasToSormasException {
405- Map <String , Map < String , List < String >> > validationErrors = new HashMap <>();
402+ Map <String , ValidationErrors > validationErrors = new HashMap <>();
406403 for (Contact contact : contacts ) {
407404 if (!contactService .isContactEditAllowed (contact )) {
408- Map <String , List <String >> error = new HashMap <>(1 );
409- error .put (
410- I18nProperties .getCaption (Captions .Contact ),
411- Collections .singletonList (I18nProperties .getString (Strings .errorSormasToSormasNotEditable )));
412-
413- validationErrors .put (buildCaseValidationGroupName (contact ), error );
405+ validationErrors .put (
406+ buildCaseValidationGroupName (contact ),
407+ ValidationErrors
408+ .create (I18nProperties .getCaption (Captions .Contact ), I18nProperties .getString (Strings .errorSormasToSormasNotEditable )));
414409 }
415410 }
416411
@@ -500,10 +495,10 @@ private ValidationErrors processCaseData(
500495 return caseValidationErrors ;
501496 }
502497
503- private Map <String , Map < String , List < String >> > processAssociatedContacts (
498+ private Map <String , ValidationErrors > processAssociatedContacts (
504499 List <SormasToSormasCaseDto .AssociatedContactDto > associatedContacts ,
505500 SormasToSormasOriginInfoDto originInfo ) {
506- Map <String , Map < String , List < String >> > validationErrors = new HashMap <>();
501+ Map <String , ValidationErrors > validationErrors = new HashMap <>();
507502
508503 associatedContacts .forEach (associatedContact -> {
509504 ContactDto contact = associatedContact .getContact ();
@@ -512,7 +507,7 @@ private Map<String, Map<String, List<String>>> processAssociatedContacts(
512507 ValidationErrors contactErrors = processContactData (contact , associatedContact .getPerson ());
513508
514509 if (contactErrors .hasError ()) {
515- validationErrors .put (buildContactValidationGroupName (contact ), contactErrors . getErrors () );
510+ validationErrors .put (buildContactValidationGroupName (contact ), contactErrors );
516511 }
517512 });
518513
@@ -754,11 +749,9 @@ private <T> T handleValidationError(Supplier<T> saveOperation, String validation
754749 try {
755750 return saveOperation .get ();
756751 } catch (ValidationRuntimeException exception ) {
757- Map <String , List <String >> validationError = new HashMap <>(1 );
758- validationError .put (I18nProperties .getCaption (validationGroupCaption ), Collections .singletonList (exception .getMessage ()));
759-
760- Map <String , Map <String , List <String >>> parentError = new HashMap <>(1 );
761- parentError .put (parentValidationGroup , validationError );
752+ Map <String , ValidationErrors > parentError = new HashMap <>(1 );
753+ parentError
754+ .put (parentValidationGroup , ValidationErrors .create (I18nProperties .getCaption (validationGroupCaption ), exception .getMessage ()));
762755
763756 throw new SormasToSormasValidationException (parentError );
764757 }
@@ -903,7 +896,7 @@ private void sendEntityToSormas(List<?> entities, String endpoint, SormasToSorma
903896 int statusCode = response .getStatus ();
904897 if (statusCode != HttpStatus .SC_NO_CONTENT ) {
905898 String errorMessage = response .readEntity (String .class );
906- Map <String , Map < String , List < String >> > errors = null ;
899+ Map <String , ValidationErrors > errors = null ;
907900
908901 try {
909902 SormasToSormasErrorResponse errorResponse = objectMapper .readValue (errorMessage , SormasToSormasErrorResponse .class );
0 commit comments