LoadUnitMapperImpl.java

package org.openwms.wms.inventory;

import java.util.ArrayList;
import java.util.List;
import javax.annotation.processing.Generated;
import org.openwms.wms.CycleAvoidingMappingContext;
import org.openwms.wms.inventory.api.LoadUnitVO;
import org.openwms.wms.inventory.events.LoadUnitMO;
import org.openwms.wms.transport.TransportUnit;
import org.openwms.wms.transport.barcode.Barcode;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Generated(
    value = "org.mapstruct.ap.MappingProcessor"
)
@Component
public class LoadUnitMapperImpl implements LoadUnitMapper {

    private final ProductMapper productMapper;
    private final DimensionMapper dimensionMapper;

    @Autowired
    public LoadUnitMapperImpl(ProductMapper productMapper, DimensionMapper dimensionMapper) {

        this.productMapper = productMapper;
        this.dimensionMapper = dimensionMapper;
    }

    @Override
    public LoadUnitVO convert(LoadUnit entity, CycleAvoidingMappingContext cycleAvoidingMappingContext) {
        LoadUnitVO target = cycleAvoidingMappingContext.getMappedInstance( entity, LoadUnitVO.class );
        if ( target != null ) {
            return target;
        }

        if ( entity == null ) {
            return null;
        }

        LoadUnitVO loadUnitVO = new LoadUnitVO();

        cycleAvoidingMappingContext.storeMappedInstance( entity, loadUnitVO );

        if ( entity.hasPersistentKey() ) {
            loadUnitVO.setpKey( entity.getPersistentKey() );
        }
        loadUnitVO.setTransportUnitBK( entityTransportUnitTransportUnitBKValue( entity ) );
        loadUnitVO.setType( entityTypeType( entity ) );
        loadUnitVO.setDimension( dimensionMapper.convert( entity.getDimension() ) );
        loadUnitVO.setOl( entity.getOl() );
        loadUnitVO.setCreateDt( entity.getCreateDt() );
        loadUnitVO.setLastModifiedDt( entity.getLastModifiedDt() );
        loadUnitVO.setPhysicalPosition( entity.getPhysicalPosition() );
        loadUnitVO.setLabel( entity.getLabel() );
        loadUnitVO.setLocked( entity.isLocked() );
        loadUnitVO.setProduct( productMapper.convert( entity.getProduct(), cycleAvoidingMappingContext ) );

        return loadUnitVO;
    }

    @Override
    public LoadUnitMO convertToMO(LoadUnit entity, CycleAvoidingMappingContext cycleAvoidingMappingContext) {
        LoadUnitMO target = cycleAvoidingMappingContext.getMappedInstance( entity, LoadUnitMO.class );
        if ( target != null ) {
            return target;
        }

        if ( entity == null ) {
            return null;
        }

        LoadUnitMO loadUnitMO = new LoadUnitMO();

        cycleAvoidingMappingContext.storeMappedInstance( entity, loadUnitMO );

        if ( entity.hasPersistentKey() ) {
            loadUnitMO.setpKey( entity.getPersistentKey() );
        }
        loadUnitMO.setTransportUnitBK( entityTransportUnitTransportUnitBKValue( entity ) );
        loadUnitMO.setPhysicalPosition( entity.getPhysicalPosition() );
        loadUnitMO.setLabel( entity.getLabel() );
        loadUnitMO.setType( entityTypeType( entity ) );
        loadUnitMO.setProduct( productMapper.convertToMO( entity.getProduct() ) );

        return loadUnitMO;
    }

    @Override
    public List<LoadUnitVO> convert(List<LoadUnit> entities, CycleAvoidingMappingContext cycleAvoidingMappingContext) {
        List<LoadUnitVO> target = cycleAvoidingMappingContext.getMappedInstance( entities, List.class );
        if ( target != null ) {
            return target;
        }

        if ( entities == null ) {
            return null;
        }

        List<LoadUnitVO> list = new ArrayList<LoadUnitVO>( entities.size() );
        cycleAvoidingMappingContext.storeMappedInstance( entities, list );

        for ( LoadUnit loadUnit : entities ) {
            list.add( convert( loadUnit, cycleAvoidingMappingContext ) );
        }

        return list;
    }

    private String entityTransportUnitTransportUnitBKValue(LoadUnit loadUnit) {
        TransportUnit transportUnit = loadUnit.getTransportUnit();
        if ( transportUnit == null ) {
            return null;
        }
        Barcode transportUnitBK = transportUnit.getTransportUnitBK();
        if ( transportUnitBK == null ) {
            return null;
        }
        return transportUnitBK.getValue();
    }

    private String entityTypeType(LoadUnit loadUnit) {
        LoadUnitType type = loadUnit.getType();
        if ( type == null ) {
            return null;
        }
        return type.getType();
    }
}