/**
* Copyright 2012-2017 Gunnar Morling (http://www.gunnarmorling.de/)
* and/or other contributors as indicated by the @authors tag. See the
* copyright.txt file in the distribution for a full listing of all
* contributors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.mapstruct.ap.test.updatemethods;
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Generated;
@Generated(
value = "org.mapstruct.ap.MappingProcessor",
date = "2017-05-06T00:11:06+0200",
comments = "version: , compiler: javac, environment: Java 1.8.0_131 (Oracle Corporation)"
)
public class CompanyMapper1Impl implements CompanyMapper1 {
private final DepartmentEntityFactory departmentEntityFactory = new DepartmentEntityFactory();
@Override
public void toCompanyEntity(UnmappableCompanyDto dto, CompanyEntity entity) {
if ( dto == null ) {
return;
}
entity.setName( dto.getName() );
if ( dto.getDepartment() != null ) {
if ( entity.getDepartment() == null ) {
entity.setDepartment( departmentEntityFactory.createDepartmentEntity() );
}
unmappableDepartmentDtoToDepartmentEntity( dto.getDepartment(), entity.getDepartment() );
}
else {
entity.setDepartment( null );
}
}
@Override
public void toInBetween(UnmappableDepartmentDto dto, DepartmentInBetween entity) {
if ( dto == null ) {
return;
}
entity.setName( dto.getName() );
}
@Override
public void toDepartmentEntity(DepartmentInBetween dto, DepartmentEntity entity) {
if ( dto == null ) {
return;
}
entity.setName( dto.getName() );
}
protected SecretaryEntity secretaryDtoToSecretaryEntity(SecretaryDto secretaryDto) {
if ( secretaryDto == null ) {
return null;
}
SecretaryEntity secretaryEntity = new SecretaryEntity();
secretaryEntity.setName( secretaryDto.getName() );
return secretaryEntity;
}
protected EmployeeEntity employeeDtoToEmployeeEntity(EmployeeDto employeeDto) {
if ( employeeDto == null ) {
return null;
}
EmployeeEntity employeeEntity = new EmployeeEntity();
employeeEntity.setName( employeeDto.getName() );
return employeeEntity;
}
protected Map<SecretaryEntity, EmployeeEntity> secretaryDtoEmployeeDtoMapToSecretaryEntityEmployeeEntityMap(Map<SecretaryDto, EmployeeDto> map) {
if ( map == null ) {
return null;
}
Map<SecretaryEntity, EmployeeEntity> map1 = new HashMap<SecretaryEntity, EmployeeEntity>( Math.max( (int) ( map.size() / .75f ) + 1, 16 ) );
for ( java.util.Map.Entry<SecretaryDto, EmployeeDto> entry : map.entrySet() ) {
SecretaryEntity key = secretaryDtoToSecretaryEntity( entry.getKey() );
EmployeeEntity value = employeeDtoToEmployeeEntity( entry.getValue() );
map1.put( key, value );
}
return map1;
}
protected void unmappableDepartmentDtoToDepartmentEntity(UnmappableDepartmentDto unmappableDepartmentDto, DepartmentEntity mappingTarget) {
if ( unmappableDepartmentDto == null ) {
return;
}
mappingTarget.setName( unmappableDepartmentDto.getName() );
if ( mappingTarget.getSecretaryToEmployee() != null ) {
Map<SecretaryEntity, EmployeeEntity> map = secretaryDtoEmployeeDtoMapToSecretaryEntityEmployeeEntityMap( unmappableDepartmentDto.getSecretaryToEmployee() );
if ( map != null ) {
mappingTarget.getSecretaryToEmployee().clear();
mappingTarget.getSecretaryToEmployee().putAll( map );
}
else {
mappingTarget.setSecretaryToEmployee( null );
}
}
else {
Map<SecretaryEntity, EmployeeEntity> map = secretaryDtoEmployeeDtoMapToSecretaryEntityEmployeeEntityMap( unmappableDepartmentDto.getSecretaryToEmployee() );
if ( map != null ) {
mappingTarget.setSecretaryToEmployee( map );
}
}
}
}