PackagingUnitMapperImpl_.java

package org.openwms.wms.inventory;

import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.processing.Generated;
import org.openwms.values.Message;
import org.openwms.wms.CycleAvoidingMappingContext;
import org.openwms.wms.inventory.api.PackagingUnitVO;
import org.openwms.wms.inventory.api.UomRelationVO;
import org.openwms.wms.inventory.events.PackagingUnitMO;
import org.openwms.wms.location.Location;
import org.openwms.wms.location.LocationPK;
import org.openwms.wms.location.impl.LocationMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;

@Generated(
    value = "org.mapstruct.ap.MappingProcessor"
)
@Component
@Qualifier("delegate")
public class PackagingUnitMapperImpl_ implements PackagingUnitMapper {

    private final LoadUnitMapper loadUnitMapper;
    private final ProductMapper productMapper;
    private final DimensionMapper dimensionMapper;
    private final LocationMapper locationMapper;

    @Autowired
    public PackagingUnitMapperImpl_(LoadUnitMapper loadUnitMapper, ProductMapper productMapper, DimensionMapper dimensionMapper, LocationMapper locationMapper) {

        this.loadUnitMapper = loadUnitMapper;
        this.productMapper = productMapper;
        this.dimensionMapper = dimensionMapper;
        this.locationMapper = locationMapper;
    }

    @Override
    public PackagingUnitMO convertToMO(PackagingUnit entity) {
        if ( entity == null ) {
            return null;
        }

        PackagingUnitMO packagingUnitMO = new PackagingUnitMO();

        if ( entity.hasPersistentKey() ) {
            packagingUnitMO.setpKey( entity.getPersistentKey() );
        }
        packagingUnitMO.setPhysicalPosition( entity.getPhysicalPosition() );
        packagingUnitMO.setSerialNumber( entity.getSerialNumber() );
        packagingUnitMO.setProduct( productMapper.convertToMO( entity.getProduct() ) );
        packagingUnitMO.setQuantity( entity.getQuantity() );
        LocationPK locationId = entityActualLocationLocationId( entity );
        if ( entity.hasActualLocation() && entity.getActualLocation() != null && entity.getActualLocation().hasLocationId() ) {
            packagingUnitMO.setActualLocation( locationMapper.convertToId( locationId ) );
        }

        return packagingUnitMO;
    }

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

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

        PackagingUnitVO packagingUnitVO = new PackagingUnitVO();

        cycleAvoidingMappingContext.storeMappedInstance( entity, packagingUnitVO );

        if ( entity.hasUomRelation() ) {
            packagingUnitVO.setUomRelation( uomRelationToUomRelationVO( entity.getUomRelation(), cycleAvoidingMappingContext ) );
        }
        if ( entity.hasPersistentKey() ) {
            packagingUnitVO.setpKey( entity.getPersistentKey() );
        }
        packagingUnitVO.setMessage( entityMessageMessageText( entity ) );
        packagingUnitVO.setDimension( dimensionMapper.convert( entity.getDimension() ) );
        if ( entity.hasAvailabilityState() ) {
            packagingUnitVO.setState( entity.getAvailabilityState().name() );
        }
        packagingUnitVO.setQtyAvailable( entity.getQtyAvailable() );
        packagingUnitVO.setOl( entity.getOl() );
        packagingUnitVO.setCreateDt( entity.getCreateDt() );
        packagingUnitVO.setLastModifiedDt( entity.getLastModifiedDt() );
        packagingUnitVO.setPhysicalPosition( entity.getPhysicalPosition() );
        packagingUnitVO.setSerialNumber( entity.getSerialNumber() );
        packagingUnitVO.setLotId( entity.getLotId() );
        packagingUnitVO.setExpiresAt( entity.getExpiresAt() );
        packagingUnitVO.setProducedAt( entity.getProducedAt() );
        List<String> list = entity.getLabels();
        if ( list != null ) {
            packagingUnitVO.setLabels( new ArrayList<String>( list ) );
        }
        packagingUnitVO.setProduct( productMapper.convert( entity.getProduct(), cycleAvoidingMappingContext ) );
        packagingUnitVO.setQuantity( entity.getQuantity() );
        if ( entity.hasLoadUnit() ) {
            packagingUnitVO.setLoadUnit( loadUnitMapper.convert( entity.getLoadUnit(), cycleAvoidingMappingContext ) );
        }
        if ( entity.hasActualLocation() ) {
            packagingUnitVO.setActualLocation( locationMapper.convertToVO( entity.getActualLocation() ) );
        }
        packagingUnitVO.setWeight( entity.getWeight() );
        Map<String, String> map = entity.getDetails();
        if ( map != null ) {
            packagingUnitVO.setDetails( new LinkedHashMap<String, String>( map ) );
        }

        return packagingUnitVO;
    }

    @Override
    public PackagingUnit convertVO(PackagingUnitVO vo, CycleAvoidingMappingContext cycleAvoidingMappingContext) {
        PackagingUnit target = cycleAvoidingMappingContext.getMappedInstance( vo, PackagingUnit.class );
        if ( target != null ) {
            return target;
        }

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

        PackagingUnit packagingUnit = new PackagingUnit();

        cycleAvoidingMappingContext.storeMappedInstance( vo, packagingUnit );

        packagingUnit.setDimension( dimensionMapper.convertVO( vo.getDimension() ) );
        packagingUnit.setPhysicalPosition( vo.getPhysicalPosition() );
        packagingUnit.setProduct( productMapper.convertVO( vo.getProduct() ) );
        packagingUnit.setSerialNumber( vo.getSerialNumber() );
        packagingUnit.setLotId( vo.getLotId() );
        packagingUnit.setExpiresAt( vo.getExpiresAt() );
        packagingUnit.setProducedAt( vo.getProducedAt() );
        List<String> list = vo.getLabels();
        if ( list != null ) {
            packagingUnit.setLabels( new ArrayList<String>( list ) );
        }
        packagingUnit.setQuantity( vo.getQuantity() );
        if ( vo.hasActualLocation() ) {
            packagingUnit.setActualLocation( locationMapper.convertFromVO( vo.getActualLocation() ) );
        }
        packagingUnit.setWeight( vo.getWeight() );
        packagingUnit.setUomRelation( productMapper.convertVO( vo.getUomRelation() ) );
        Map<String, String> map = vo.getDetails();
        if ( map != null ) {
            packagingUnit.setDetails( new LinkedHashMap<String, String>( map ) );
        }

        return packagingUnit;
    }

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

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

        List<PackagingUnitVO> list = new ArrayList<PackagingUnitVO>( entity.size() );
        cycleAvoidingMappingContext.storeMappedInstance( entity, list );

        for ( PackagingUnit packagingUnit : entity ) {
            list.add( convert( packagingUnit, cycleAvoidingMappingContext ) );
        }

        return list;
    }

    @Override
    public List<PackagingUnit> convertFromVO(List<PackagingUnitVO> vo, CycleAvoidingMappingContext cycleAvoidingMappingContext) {
        List<PackagingUnit> target = cycleAvoidingMappingContext.getMappedInstance( vo, List.class );
        if ( target != null ) {
            return target;
        }

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

        List<PackagingUnit> list = new ArrayList<PackagingUnit>( vo.size() );
        cycleAvoidingMappingContext.storeMappedInstance( vo, list );

        for ( PackagingUnitVO packagingUnitVO : vo ) {
            list.add( convertVO( packagingUnitVO, cycleAvoidingMappingContext ) );
        }

        return list;
    }

    private LocationPK entityActualLocationLocationId(PackagingUnit packagingUnit) {
        if ( !packagingUnit.hasActualLocation() ) {
            return null;
        }
        Location actualLocation = packagingUnit.getActualLocation();
        if ( actualLocation == null || !actualLocation.hasLocationId() ) {
            return null;
        }
        return actualLocation.getLocationId();
    }

    protected UomRelationVO uomRelationToUomRelationVO(UomRelation uomRelation, CycleAvoidingMappingContext cycleAvoidingMappingContext) {
        UomRelationVO target = cycleAvoidingMappingContext.getMappedInstance( uomRelation, UomRelationVO.class );
        if ( target != null ) {
            return target;
        }

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

        UomRelationVO uomRelationVO = new UomRelationVO();

        cycleAvoidingMappingContext.storeMappedInstance( uomRelation, uomRelationVO );

        if ( uomRelation.hasPersistentKey() ) {
            uomRelationVO.setpKey( uomRelation.getPersistentKey() );
        }
        uomRelationVO.setQuantity( uomRelation.getUnit() );
        uomRelationVO.setCode( uomRelation.getCode() );
        uomRelationVO.setLabel( uomRelation.getLabel() );
        uomRelationVO.setDescription( uomRelation.getDescription() );
        Map<String, String> map = uomRelation.getDetails();
        if ( map != null ) {
            uomRelationVO.setDetails( new LinkedHashMap<String, String>( map ) );
        }
        uomRelationVO.setProduct( productMapper.convert( uomRelation.getProduct(), cycleAvoidingMappingContext ) );
        uomRelationVO.setDimension( dimensionMapper.convert( uomRelation.getDimension() ) );

        return uomRelationVO;
    }

    private String entityMessageMessageText(PackagingUnit packagingUnit) {
        Message message = packagingUnit.getMessage();
        if ( message == null ) {
            return null;
        }
        return message.getMessageText();
    }
}