1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package fr.paris.lutece.plugins.identitystore.v3.web.rs;
35
36 import fr.paris.lutece.plugins.identitystore.business.application.ClientApplication;
37 import fr.paris.lutece.plugins.identitystore.business.attribute.AttributeCertificate;
38 import fr.paris.lutece.plugins.identitystore.business.attribute.AttributeKey;
39 import fr.paris.lutece.plugins.identitystore.business.attribute.KeyType;
40 import fr.paris.lutece.plugins.identitystore.business.contract.AttributeCertification;
41 import fr.paris.lutece.plugins.identitystore.business.contract.AttributeRequirement;
42 import fr.paris.lutece.plugins.identitystore.business.contract.AttributeRight;
43 import fr.paris.lutece.plugins.identitystore.business.contract.ServiceContract;
44 import fr.paris.lutece.plugins.identitystore.business.duplicates.suspicions.SuspiciousIdentityHome;
45 import fr.paris.lutece.plugins.identitystore.business.identity.Identity;
46 import fr.paris.lutece.plugins.identitystore.business.identity.IdentityAttribute;
47 import fr.paris.lutece.plugins.identitystore.business.identity.IdentityHome;
48 import fr.paris.lutece.plugins.identitystore.business.referentiel.RefAttributeCertificationLevel;
49 import fr.paris.lutece.plugins.identitystore.business.referentiel.RefAttributeCertificationProcessus;
50 import fr.paris.lutece.plugins.identitystore.business.referentiel.RefCertificationLevel;
51 import fr.paris.lutece.plugins.identitystore.business.referentiel.RefCertificationLevelHome;
52 import fr.paris.lutece.plugins.identitystore.service.attribute.IdentityAttributeService;
53 import fr.paris.lutece.plugins.identitystore.service.contract.AttributeCertificationDefinitionService;
54 import fr.paris.lutece.plugins.identitystore.service.contract.RefAttributeCertificationDefinitionNotFoundException;
55 import fr.paris.lutece.plugins.identitystore.v3.web.rs.dto.application.ClientApplicationDto;
56 import fr.paris.lutece.plugins.identitystore.v3.web.rs.dto.common.AttributeDto;
57 import fr.paris.lutece.plugins.identitystore.v3.web.rs.dto.common.AttributeKeyDto;
58 import fr.paris.lutece.plugins.identitystore.v3.web.rs.dto.common.AttributeType;
59 import fr.paris.lutece.plugins.identitystore.v3.web.rs.dto.common.AttributeValueDto;
60 import fr.paris.lutece.plugins.identitystore.v3.web.rs.dto.common.ExpirationDefinition;
61 import fr.paris.lutece.plugins.identitystore.v3.web.rs.dto.common.IdentityDto;
62 import fr.paris.lutece.plugins.identitystore.v3.web.rs.dto.common.MergeDefinition;
63 import fr.paris.lutece.plugins.identitystore.v3.web.rs.dto.contract.AttributeDefinitionDto;
64 import fr.paris.lutece.plugins.identitystore.v3.web.rs.dto.contract.AttributeRequirementDto;
65 import fr.paris.lutece.plugins.identitystore.v3.web.rs.dto.contract.AttributeRightDto;
66 import fr.paris.lutece.plugins.identitystore.v3.web.rs.dto.contract.CertificationProcessusDto;
67 import fr.paris.lutece.plugins.identitystore.v3.web.rs.dto.contract.ServiceContractDto;
68 import fr.paris.lutece.plugins.identitystore.v3.web.rs.dto.referentiel.AttributeCertificationLevelDto;
69 import fr.paris.lutece.plugins.identitystore.v3.web.rs.dto.referentiel.AttributeCertificationProcessusDto;
70 import fr.paris.lutece.plugins.identitystore.v3.web.rs.dto.referentiel.LevelDto;
71 import fr.paris.lutece.plugins.identitystore.web.exception.IdentityStoreException;
72 import org.apache.commons.collections.CollectionUtils;
73 import org.apache.commons.collections.MapUtils;
74 import org.apache.commons.lang3.StringUtils;
75
76 import java.sql.Timestamp;
77 import java.util.ArrayList;
78 import java.util.Collections;
79 import java.util.List;
80 import java.util.Optional;
81 import java.util.stream.Collectors;
82
83
84
85
86
87
88 public final class DtoConverter
89 {
90
91
92
93 private DtoConverter( )
94 {
95 }
96
97
98
99
100
101
102
103
104 public static IdentityDto convertIdentityToDto( final Identity identity )
105 {
106 final IdentityDto identityDto = new IdentityDto( );
107 identityDto.setConnectionId( identity.getConnectionId( ) );
108 identityDto.setCustomerId( identity.getCustomerId( ) );
109 identityDto.setLastUpdateDate( identity.getLastUpdateDate( ) );
110 identityDto.setCreationDate( identity.getCreationDate( ) );
111 identityDto.setMonParisActive( identity.isMonParisActive( ) );
112
113 if ( identity.isMerged( ) )
114 {
115 final MergeDefinition merge = new MergeDefinition( );
116 merge.setMerged( identity.isMerged( ) );
117 merge.setMergeDate( identity.getMergeDate( ) );
118 if ( identity.getMasterIdentityId( ) != null )
119 {
120 merge.setMasterCustomerId( IdentityHome.findByPrimaryKey( identity.getMasterIdentityId( ) ).getCustomerId( ) );
121 }
122 identityDto.setMerge( merge );
123 }
124
125 if ( identity.getExpirationDate( ) != null || identity.isDeleted( ) || identity.getDeleteDate( ) != null )
126 {
127 final ExpirationDefinition expiration = new ExpirationDefinition( );
128 expiration.setExpirationDate( identity.getExpirationDate( ) );
129 expiration.setDeleted( identity.isDeleted( ) );
130 expiration.setDeleteDate( identity.getDeleteDate( ) );
131 identityDto.setExpiration( expiration );
132 }
133
134 identityDto.setSuspicious( SuspiciousIdentityHome.hasSuspicious( Collections.singletonList( identity.getCustomerId( ) ) ) );
135
136 if ( MapUtils.isNotEmpty( identity.getAttributes( ) ) )
137 {
138 for ( final IdentityAttribute attribute : identity.getAttributes( ).values( ) )
139 {
140 identityDto.getAttributes( ).add( convertAttributeToDto( attribute ) );
141 }
142 }
143
144 return identityDto;
145 }
146
147 public static Identity convertDtoToIdentity( final IdentityDto dto )
148 {
149 final Identityins/identitystore/business/identity/Identity.html#Identity">Identity identity = new Identity( );
150 identity.setConnectionId( dto.getConnectionId( ) );
151 identity.setCustomerId( dto.getCustomerId( ) );
152 identity.setLastUpdateDate( dto.getLastUpdateDate( ) );
153 identity.setMonParisActive( dto.isMonParisActive( ) );
154 identity.setCreationDate( dto.getCreationDate( ) );
155
156 if ( dto.getExpiration( ) != null )
157 {
158 identity.setDeleted( dto.getExpiration( ).isDeleted( ) );
159 identity.setExpirationDate( dto.getExpiration( ).getExpirationDate( ) );
160 identity.setDeleteDate( dto.getExpiration( ).getDeleteDate( ) );
161 }
162
163 if ( dto.getMerge( ) != null )
164 {
165 identity.setMerged( dto.isMerged( ) );
166 identity.setMergeDate( dto.getMerge( ).getMergeDate( ) );
167 }
168
169 identity.getAttributes( ).putAll( dto.getAttributes( ).stream( ).map( DtoConverter::convertDtoToAttribute )
170 .collect( Collectors.toMap( o -> o.getAttributeKey( ).getKeyName( ), o -> o ) ) );
171
172 return identity;
173 }
174
175 private static AttributeDto convertAttributeToDto( final IdentityAttribute attribute )
176 {
177 final AttributeKey attributeKey = attribute.getAttributeKey( );
178
179 final AttributeDto attributeDto = new AttributeDto( );
180 attributeDto.setKey( attributeKey.getKeyName( ) );
181 attributeDto.setValue( attribute.getValue( ) );
182 attributeDto.setType( attributeKey.getKeyType( ).getCode( ) );
183 attributeDto.setLastUpdateClientCode( attribute.getLastUpdateClientCode( ) );
184 attributeDto.setLastUpdateDate( attribute.getLastUpdateDate( ) );
185
186 if ( attribute.getCertificate( ) != null )
187 {
188 attributeDto.setCertifier( attribute.getCertificate( ).getCertifierCode( ) );
189 attributeDto.setCertificationLevel( AttributeCertificationDefinitionService.instance( )
190 .getLevelAsInteger( attribute.getCertificate( ).getCertifierCode( ), attributeKey.getKeyName( ) ) );
191 attributeDto.setCertificationDate( attribute.getCertificate( ).getCertificateDate( ) );
192
193 }
194 return attributeDto;
195 }
196
197 private static IdentityAttribute convertDtoToAttribute( final AttributeDto dto )
198 {
199 final IdentityAttributetystore/business/identity/IdentityAttribute.html#IdentityAttribute">IdentityAttribute attribute = new IdentityAttribute( );
200 attribute.setValue( dto.getValue( ) );
201 attribute.setLastUpdateClientCode( dto.getLastUpdateClientCode( ) );
202 attribute.setLastUpdateDate( dto.getLastUpdateDate( ) );
203
204 final AttributeKeytitystore/business/attribute/AttributeKey.html#AttributeKey">AttributeKey attributeKey = new AttributeKey( );
205 attributeKey.setKeyName( dto.getKey( ) );
206 attributeKey.setKeyType( KeyType.valueByCode( dto.getType( ) ) );
207 attribute.setAttributeKey( attributeKey );
208
209 if ( dto.getCertificationDate( ) != null )
210 {
211 final AttributeCertificatere/business/attribute/AttributeCertificate.html#AttributeCertificate">AttributeCertificate certificate = new AttributeCertificate( );
212 certificate.setCertificateDate( Timestamp.from( dto.getCertificationDate( ).toInstant( ) ) );
213 certificate.setCertifierName( dto.getCertifier( ) );
214 certificate.setCertifierCode( dto.getCertifier( ) );
215 attribute.setCertificate( certificate );
216 }
217
218 return attribute;
219 }
220
221
222
223
224
225
226
227
228 public static ServiceContractDto convertContractToDto( final ServiceContract serviceContract )
229 {
230 final ServiceContractDto serviceContractDto = new ServiceContractDto( );
231 serviceContractDto.setId( serviceContract.getId( ) );
232 serviceContractDto.setClientCode( serviceContract.getClientCode( ) );
233 serviceContractDto.setName( serviceContract.getName( ) );
234 serviceContractDto.setServiceType( serviceContract.getServiceType( ) );
235 serviceContractDto.setMoaContactName( serviceContract.getMoaContactName( ) );
236 serviceContractDto.setMoaEntityName( serviceContract.getMoaEntityName( ) );
237 serviceContractDto.setMoeResponsibleName( serviceContract.getMoeResponsibleName( ) );
238 serviceContractDto.setMoeEntityName( serviceContract.getMoeEntityName( ) );
239 serviceContractDto.setStartingDate( serviceContract.getStartingDate( ) );
240 serviceContractDto.setEndingDate( serviceContract.getEndingDate( ) );
241 serviceContractDto.setAuthorizedCreation( serviceContract.getAuthorizedCreation( ) );
242 serviceContractDto.setAuthorizedUpdate( serviceContract.getAuthorizedUpdate( ) );
243 serviceContractDto.setAuthorizedSearch( serviceContract.getAuthorizedSearch( ) );
244 serviceContractDto.setAuthorizedAccountUpdate( serviceContract.getAuthorizedAccountUpdate( ) );
245 serviceContractDto.setAuthorizedDeletion( serviceContract.getAuthorizedDeletion( ) );
246 serviceContractDto.setAuthorizedExport( serviceContract.getAuthorizedExport( ) );
247 serviceContractDto.setAuthorizedImport( serviceContract.getAuthorizedImport( ) );
248 serviceContractDto.setAuthorizedMerge( serviceContract.getAuthorizedMerge( ) );
249 serviceContractDto.setAuthorizedDecertification( serviceContract.getAuthorizedDecertification( ) );
250 serviceContractDto.setAuthorizedAgentHistoryRead( serviceContract.getAuthorizedAgentHistoryRead( ) );
251 serviceContractDto.setDataRetentionPeriodInMonths( serviceContract.getDataRetentionPeriodInMonths( ) );
252
253 final List<AttributeDefinitionDto> attributeDefinitions = new ArrayList<>( );
254
255 for ( final AttributeRight attributeRight : serviceContract.getAttributeRights( ) )
256 {
257 final AttributeDefinitionDto attributeDefinitionDto = extractAttributeDefinition( attributeRight.getAttributeKey( ) );
258 attributeDefinitionDto.setAttributeRight( new AttributeRightDto( ) );
259 attributeDefinitionDto.getAttributeRight( ).setMandatory( attributeRight.isMandatory( ) );
260 attributeDefinitionDto.getAttributeRight( ).setReadable( attributeRight.isReadable( ) );
261 attributeDefinitionDto.getAttributeRight( ).setSearchable( attributeRight.isSearchable( ) );
262 attributeDefinitionDto.getAttributeRight( ).setWritable( attributeRight.isWritable( ) );
263 attributeDefinitions.add( attributeDefinitionDto );
264 }
265
266 for ( final AttributeCertification attributeCertification : serviceContract.getAttributeCertifications( ) )
267 {
268 AttributeDefinitionDto current = attributeDefinitions.stream( )
269 .filter( attributeDefinitionDto -> attributeDefinitionDto.getKeyName( ).equals( attributeCertification.getAttributeKey( ).getKeyName( ) ) )
270 .findFirst( ).orElse( null );
271 if ( current == null )
272 {
273 current = extractAttributeDefinition( attributeCertification.getAttributeKey( ) );
274 attributeDefinitions.add( current );
275 }
276
277 final List<CertificationProcessusDto> certificationProcesses = attributeCertification.getRefAttributeCertificationProcessus( ).stream( )
278 .map( ref -> {
279 final CertificationProcessusDto certificationProcessus = new CertificationProcessusDto( );
280 certificationProcessus.setCode( ref.getCode( ) );
281 certificationProcessus.setLabel( ref.getLabel( ) );
282 certificationProcessus.setLevel( ref.getLevel( ).getRefCertificationLevel( ).getLevel( ) );
283 return certificationProcessus;
284 } ).collect( Collectors.toList( ) );
285 current.getAttributeCertifications( ).addAll( certificationProcesses );
286 }
287
288
289 final List<AttributeRequirement> attributeRequirements = serviceContract.getAttributeRequirements( ).stream( )
290 .filter( attributeRequirement -> attributeRequirement.getRefCertificationLevel( ).getLevel( ) != null ).collect( Collectors.toList( ) );
291 for ( final AttributeRequirement attributeRequirement : attributeRequirements )
292 {
293 AttributeDefinitionDto current = attributeDefinitions.stream( )
294 .filter( attributeDefinitionDto -> attributeDefinitionDto.getKeyName( ).equals( attributeRequirement.getAttributeKey( ).getKeyName( ) ) )
295 .findFirst( ).orElse( null );
296 if ( current == null )
297 {
298 current = extractAttributeDefinition( attributeRequirement.getAttributeKey( ) );
299 attributeDefinitions.add( current );
300 }
301 final AttributeRequirementDto requirement = new AttributeRequirementDto( );
302 requirement.setLevel( attributeRequirement.getRefCertificationLevel( ).getLevel( ) );
303 requirement.setName( attributeRequirement.getRefCertificationLevel( ).getName( ) );
304 requirement.setDescription( attributeRequirement.getRefCertificationLevel( ).getDescription( ) );
305 current.setAttributeRequirement( requirement );
306 }
307
308 serviceContractDto.getAttributeDefinitions( ).addAll( attributeDefinitions );
309
310 return serviceContractDto;
311 }
312
313 private static AttributeDefinitionDto extractAttributeDefinition( final AttributeKey attributeRight )
314 {
315 final AttributeDefinitionDto attributeDefinitionDto = new AttributeDefinitionDto( );
316 attributeDefinitionDto.setName( attributeRight.getName( ) );
317 attributeDefinitionDto.setKeyName( attributeRight.getKeyName( ) );
318 attributeDefinitionDto.setDescription( attributeRight.getDescription( ) );
319 attributeDefinitionDto.setType( AttributeType.valueOf( attributeRight.getKeyType( ).name( ) ) );
320 attributeDefinitionDto.setCertifiable( attributeRight.getCertifiable( ) );
321 attributeDefinitionDto.setPivot( attributeRight.getPivot( ) );
322 attributeDefinitionDto.setKeyWeight( attributeRight.getKeyWeight( ) );
323 attributeDefinitionDto.setMandatoryForCreation( attributeRight.isMandatoryForCreation( ) );
324 attributeDefinitionDto.setValidationRegex( attributeRight.getValidationRegex( ) );
325 attributeDefinitionDto.setValidationErrorMessage( attributeRight.getValidationErrorMessage( ) );
326 attributeDefinitionDto.setValidationErrorMessageKey( attributeRight.getValidationErrorMessageKey( ) );
327 return attributeDefinitionDto;
328 }
329
330
331
332
333
334
335
336
337 public static ServiceContract convertDtoToContract( final ServiceContractDto serviceContractDto ) throws IdentityStoreException
338 {
339 final ServiceContractore/business/contract/ServiceContract.html#ServiceContract">ServiceContract serviceContract = new ServiceContract( );
340 serviceContract.setId( serviceContractDto.getId( ) );
341 serviceContract.setName( serviceContractDto.getName( ) );
342 serviceContract.setServiceType( serviceContractDto.getServiceType( ) );
343 serviceContract.setMoaContactName( serviceContractDto.getMoaContactName( ) );
344 serviceContract.setMoaEntityName( serviceContractDto.getMoaEntityName( ) );
345 serviceContract.setMoeResponsibleName( serviceContractDto.getMoeResponsibleName( ) );
346 serviceContract.setMoeEntityName( serviceContractDto.getMoeEntityName( ) );
347 serviceContract.setStartingDate( serviceContractDto.getStartingDate( ) );
348 serviceContract.setEndingDate( serviceContractDto.getEndingDate( ) );
349 serviceContract.setAuthorizedCreation( serviceContractDto.isAuthorizedCreation( ) );
350 serviceContract.setAuthorizedUpdate( serviceContractDto.isAuthorizedUpdate( ) );
351 serviceContract.setAuthorizedSearch( serviceContractDto.isAuthorizedSearch( ) );
352 serviceContract.setAuthorizedAccountUpdate( serviceContractDto.isAuthorizedAccountUpdate( ) );
353 serviceContract.setAuthorizedDeletion( serviceContractDto.isAuthorizedDeletion( ) );
354 serviceContract.setAuthorizedExport( serviceContractDto.isAuthorizedExport( ) );
355 serviceContract.setAuthorizedImport( serviceContractDto.isAuthorizedImport( ) );
356 serviceContract.setAuthorizedMerge( serviceContractDto.isAuthorizedMerge( ) );
357 serviceContract.setAuthorizedDecertification( serviceContractDto.isAuthorizedDecertification( ) );
358 serviceContract.setAuthorizedAgentHistoryRead( serviceContractDto.isAuthorizedAgentHistoryRead( ) );
359 serviceContract.setDataRetentionPeriodInMonths( serviceContractDto.getDataRetentionPeriodInMonths( ) );
360
361 for ( final AttributeDefinitionDto attributeDefinition : serviceContractDto.getAttributeDefinitions( ) )
362 {
363 final AttributeKey attributeKey = IdentityAttributeService.instance( ).getAttributeKey( attributeDefinition.getKeyName( ) );
364 final AttributeRightstore/business/contract/AttributeRight.html#AttributeRight">AttributeRight attributeRight = new AttributeRight( );
365 attributeRight.setMandatory( attributeDefinition.getAttributeRight( ).isMandatory( ) );
366 attributeRight.setReadable( attributeDefinition.getAttributeRight( ).isReadable( ) );
367 attributeRight.setWritable( attributeDefinition.getAttributeRight( ).isWritable( ) );
368 attributeRight.setSearchable( attributeDefinition.getAttributeRight( ).isSearchable( ) );
369 attributeRight.setAttributeKey( attributeKey );
370 serviceContract.getAttributeRights( ).add( attributeRight );
371
372 if ( attributeDefinition.getAttributeRequirement( ) != null )
373 {
374 final AttributeRequirementre/business/contract/AttributeRequirement.html#AttributeRequirement">AttributeRequirement requirement = new AttributeRequirement( );
375 requirement.setAttributeKey( attributeKey );
376 final Optional<RefCertificationLevel> refCertificationLevel = RefCertificationLevelHome.getRefCertificationLevelsList( ).stream( )
377 .filter( level -> level.getLevel( ).equals( attributeDefinition.getAttributeRequirement( ).getLevel( ) ) ).findFirst( );
378 requirement.setRefCertificationLevel( refCertificationLevel.orElseThrow( ( ) -> new IdentityStoreException(
379 "No certification level found with value " + attributeDefinition.getAttributeRequirement( ).getLevel( ) ) ) );
380 serviceContract.getAttributeRequirements( ).add( requirement );
381 }
382
383 if ( CollectionUtils.isNotEmpty( attributeDefinition.getAttributeCertifications( ) ) )
384 {
385 final AttributeCertificationusiness/contract/AttributeCertification.html#AttributeCertification">AttributeCertification certification = new AttributeCertification( );
386 certification.setAttributeKey( attributeKey );
387 serviceContract.getAttributeCertifications( ).add( certification );
388 for ( final CertificationProcessusDto attributeCertification : attributeDefinition.getAttributeCertifications( ) )
389 {
390 final RefAttributeCertificationLevel refAttributeCertificationLevel = AttributeCertificationDefinitionService.instance( )
391 .get( attributeCertification.getCode( ), attributeKey.getKeyName( ) );
392 if ( refAttributeCertificationLevel == null )
393 {
394 throw new IdentityStoreException(
395 "No processus could be found with code " + attributeCertification.getCode( ) + " for attribute " + attributeKey.getKeyName( ) );
396 }
397 certification.getRefAttributeCertificationProcessus( ).add( refAttributeCertificationLevel.getRefAttributeCertificationProcessus( ) );
398 }
399 }
400
401 }
402
403 return serviceContract;
404 }
405
406 public static ClientApplicationDto convertClientToDto( final ClientApplication clientApplication )
407 {
408 final ClientApplicationDto dto = new ClientApplicationDto( );
409 dto.setId( clientApplication.getId( ) );
410 dto.setName( clientApplication.getName( ) );
411 dto.setClientCode( clientApplication.getClientCode( ) );
412 dto.setApplicationCode( clientApplication.getApplicationCode( ) );
413 return dto;
414 }
415
416 public static ClientApplication convertDtoToClient( final ClientApplicationDto clientApplicationDto )
417 {
418 final ClientApplicationbusiness/application/ClientApplication.html#ClientApplication">ClientApplication clientApplication = new ClientApplication( );
419 clientApplication.setId( clientApplicationDto.getId( ) );
420 clientApplication.setName( clientApplicationDto.getName( ) );
421 clientApplication.setClientCode( clientApplicationDto.getClientCode( ) );
422 clientApplication.setApplicationCode( clientApplicationDto.getApplicationCode( ) );
423 return clientApplication;
424 }
425
426 public static List<LevelDto> convertRefLevelsToListDto( List<RefCertificationLevel> refCertificationLevelsList )
427 {
428 final List<LevelDto> dtos = new ArrayList<>( );
429 for ( final RefCertificationLevel refCertificationLevel : refCertificationLevelsList )
430 {
431 final LevelDto levelDto = new LevelDto( );
432 levelDto.setLevel( refCertificationLevel.getLevel( ) );
433 levelDto.setName( refCertificationLevel.getName( ) );
434 levelDto.setDescription( refCertificationLevel.getDescription( ) );
435 dtos.add( levelDto );
436 }
437 return dtos;
438 }
439
440 public static AttributeCertificationProcessusDto convertProcessusToDto( RefAttributeCertificationProcessus processus,
441 List<RefAttributeCertificationLevel> refAttributeCertificationLevels )
442 {
443 final AttributeCertificationProcessusDto dto = new AttributeCertificationProcessusDto( );
444 dto.setCode( processus.getCode( ) );
445 dto.setLabel( processus.getLabel( ) );
446 for ( final RefAttributeCertificationLevel refAttributeCertificationLevel : refAttributeCertificationLevels )
447 {
448 if ( StringUtils.isNotEmpty( refAttributeCertificationLevel.getRefCertificationLevel( ).getLevel( ) ) )
449 {
450 final AttributeCertificationLevelDto levelDto = new AttributeCertificationLevelDto( );
451 levelDto.setAttributeKey( refAttributeCertificationLevel.getAttributeKey( ).getKeyName( ) );
452 final LevelDto level = new LevelDto( );
453 level.setDescription( refAttributeCertificationLevel.getRefCertificationLevel( ).getDescription( ) );
454 level.setLevel( refAttributeCertificationLevel.getRefCertificationLevel( ).getLevel( ) );
455 level.setName( refAttributeCertificationLevel.getRefCertificationLevel( ).getName( ) );
456 levelDto.setLevel( level );
457 dto.getAttributeCertificationLevels( ).add( levelDto );
458 }
459 }
460 return dto;
461 }
462
463 public static List<AttributeKeyDto> convertRefAttributesToListDto( List<AttributeKey> allAtributeKeys )
464 {
465 return allAtributeKeys.stream( ).map( DtoConverter::convertRefAttributeToDto ).collect( Collectors.toList( ) );
466 }
467
468 public static AttributeKeyDto convertRefAttributeToDto( AttributeKey attributeKey )
469 {
470 final AttributeKeyDto dto = new AttributeKeyDto( );
471 dto.setCertifiable( attributeKey.getCertifiable( ) );
472 dto.setDescription( attributeKey.getDescription( ) );
473 dto.setKeyName( attributeKey.getKeyName( ) );
474 dto.setName( attributeKey.getName( ) );
475 dto.setKeyWeight( attributeKey.getKeyWeight( ) );
476 dto.setPivot( attributeKey.getPivot( ) );
477 dto.setType( AttributeType.valueOf( attributeKey.getKeyType( ).name( ) ) );
478 dto.setValidationRegex( attributeKey.getValidationRegex( ) );
479 dto.setMandatoryForCreation( attributeKey.isMandatoryForCreation( ) );
480 dto.setValidationErrorMessage( attributeKey.getValidationErrorMessage( ) );
481 dto.setValidationErrorMessageKey( attributeKey.getValidationErrorMessageKey( ) );
482 dto.setValues( attributeKey.getAttributeValues( ).stream( ).map( attributeValue -> {
483 final AttributeValueDto valueDto = new AttributeValueDto( );
484 valueDto.setValue( attributeValue.getValue( ) );
485 valueDto.setLabel( attributeValue.getLabel( ) );
486 return valueDto;
487 } ).collect( Collectors.toList( ) ) );
488 return dto;
489 }
490 }