package com.jeeplus.datav.service.mapstruct;

import com.jeeplus.core.dto.DragNode;
import com.jeeplus.datav.domain.DataScreenCategory;
import com.jeeplus.datav.service.dto.DataScreenCategoryDTO;
import com.jeeplus.sys.service.dto.UserDTO;
import org.springframework.stereotype.Component;

import javax.annotation.Generated;
import java.util.ArrayList;
import java.util.List;

@Generated(
        value = "org.mapstruct.ap.MappingProcessor",
        date = "2022-08-18T16:46:54+0800",
        comments = "version: 1.4.1.Final, compiler: javac, environment: Java 1.8.0_221 (Oracle Corporation)"
)
@Component
public class DataScreenCategoryWrapperImpl implements DataScreenCategoryWrapper {

    @Override
    public DataScreenCategory toEntity(DataScreenCategoryDTO arg0) {
        if ( arg0 == null ) {
            return null;
        }

        DataScreenCategory dataScreenCategory = new DataScreenCategory ( );

        dataScreenCategory.setParentId ( arg0ParentId ( arg0 ) );
        dataScreenCategory.setCreateById ( arg0CreateById ( arg0 ) );
        dataScreenCategory.setUpdateById ( arg0UpdateById ( arg0 ) );
        dataScreenCategory.setId ( arg0.getId ( ) );
        dataScreenCategory.setCreateTime ( arg0.getCreateTime ( ) );
        dataScreenCategory.setUpdateTime ( arg0.getUpdateTime ( ) );
        dataScreenCategory.setDelFlag ( arg0.getDelFlag ( ) );
        dataScreenCategory.setParentIds ( arg0.getParentIds ( ) );
        dataScreenCategory.setName ( arg0.getName ( ) );
        dataScreenCategory.setSort ( arg0.getSort ( ) );
        dataScreenCategory.setChildren ( toEntity ( arg0.getChildren ( ) ) );
        dataScreenCategory.setRemarks ( arg0.getRemarks ( ) );

        return dataScreenCategory;
    }

    @Override
    public DataScreenCategoryDTO toDTO(DataScreenCategory arg0) {
        if ( arg0 == null ) {
            return null;
        }

        DataScreenCategoryDTO dataScreenCategoryDTO = new DataScreenCategoryDTO ( );

        dataScreenCategoryDTO.setParent ( dataScreenCategoryToDataScreenCategoryDTO ( arg0 ) );
        dataScreenCategoryDTO.setCreateBy ( dataScreenCategoryToUserDTO ( arg0 ) );
        dataScreenCategoryDTO.setUpdateBy ( dataScreenCategoryToUserDTO1 ( arg0 ) );
        dataScreenCategoryDTO.setId ( arg0.getId ( ) );
        dataScreenCategoryDTO.setCreateTime ( arg0.getCreateTime ( ) );
        dataScreenCategoryDTO.setUpdateTime ( arg0.getUpdateTime ( ) );
        dataScreenCategoryDTO.setDelFlag ( arg0.getDelFlag ( ) );
        dataScreenCategoryDTO.setChildren ( toDTO ( arg0.getChildren ( ) ) );
        dataScreenCategoryDTO.setParentIds ( arg0.getParentIds ( ) );
        dataScreenCategoryDTO.setSort ( arg0.getSort ( ) );
        dataScreenCategoryDTO.setName ( arg0.getName ( ) );
        dataScreenCategoryDTO.setRemarks ( arg0.getRemarks ( ) );

        return dataScreenCategoryDTO;
    }

    @Override
    public DataScreenCategory copyEntity(DataScreenCategory arg0) {
        if ( arg0 == null ) {
            return null;
        }

        DataScreenCategory dataScreenCategory = new DataScreenCategory ( );

        dataScreenCategory.setId ( arg0.getId ( ) );
        dataScreenCategory.setCreateTime ( arg0.getCreateTime ( ) );
        dataScreenCategory.setCreateById ( arg0.getCreateById ( ) );
        dataScreenCategory.setUpdateTime ( arg0.getUpdateTime ( ) );
        dataScreenCategory.setUpdateById ( arg0.getUpdateById ( ) );
        dataScreenCategory.setDelFlag ( arg0.getDelFlag ( ) );
        dataScreenCategory.setTenantId ( arg0.getTenantId ( ) );
        dataScreenCategory.setParentId ( arg0.getParentId ( ) );
        dataScreenCategory.setParentIds ( arg0.getParentIds ( ) );
        dataScreenCategory.setName ( arg0.getName ( ) );
        dataScreenCategory.setSort ( arg0.getSort ( ) );
        List <DataScreenCategory> list = arg0.getChildren ( );
        if ( list != null ) {
            dataScreenCategory.setChildren ( new ArrayList <DataScreenCategory> ( list ) );
        }
        dataScreenCategory.setRemarks ( arg0.getRemarks ( ) );

        return dataScreenCategory;
    }

    @Override
    public DataScreenCategoryDTO copyDTO(DataScreenCategoryDTO arg0) {
        if ( arg0 == null ) {
            return null;
        }

        DataScreenCategoryDTO dataScreenCategoryDTO = new DataScreenCategoryDTO ( );

        dataScreenCategoryDTO.setId ( arg0.getId ( ) );
        dataScreenCategoryDTO.setCreateTime ( arg0.getCreateTime ( ) );
        dataScreenCategoryDTO.setCreateBy ( arg0.getCreateBy ( ) );
        dataScreenCategoryDTO.setUpdateTime ( arg0.getUpdateTime ( ) );
        dataScreenCategoryDTO.setUpdateBy ( arg0.getUpdateBy ( ) );
        dataScreenCategoryDTO.setDelFlag ( arg0.getDelFlag ( ) );
        dataScreenCategoryDTO.setTenantDTO ( arg0.getTenantDTO ( ) );
        dataScreenCategoryDTO.setParent ( copyDTO ( arg0.getParent ( ) ) );
        List <DataScreenCategoryDTO> list = arg0.getChildren ( );
        if ( list != null ) {
            dataScreenCategoryDTO.setChildren ( new ArrayList <DataScreenCategoryDTO> ( list ) );
        }
        dataScreenCategoryDTO.setParentIds ( arg0.getParentIds ( ) );
        dataScreenCategoryDTO.setSort ( arg0.getSort ( ) );
        dataScreenCategoryDTO.setName ( arg0.getName ( ) );
        dataScreenCategoryDTO.setRemarks ( arg0.getRemarks ( ) );

        return dataScreenCategoryDTO;
    }

    @Override
    public List <DataScreenCategory> toEntity(List <DataScreenCategoryDTO> arg0) {
        if ( arg0 == null ) {
            return null;
        }

        List <DataScreenCategory> list = new ArrayList <DataScreenCategory> ( arg0.size ( ) );
        for (DataScreenCategoryDTO dataScreenCategoryDTO : arg0) {
            list.add ( toEntity ( dataScreenCategoryDTO ) );
        }

        return list;
    }

    @Override
    public List <DataScreenCategoryDTO> toDTO(List <DataScreenCategory> arg0) {
        if ( arg0 == null ) {
            return null;
        }

        List <DataScreenCategoryDTO> list = new ArrayList <DataScreenCategoryDTO> ( arg0.size ( ) );
        for (DataScreenCategory dataScreenCategory : arg0) {
            list.add ( toDTO ( dataScreenCategory ) );
        }

        return list;
    }

    @Override
    public DragNode <DataScreenCategory> toEntity(DragNode <DataScreenCategoryDTO> arg0) {
        if ( arg0 == null ) {
            return null;
        }

        DragNode <DataScreenCategory> dragNode = new DragNode <DataScreenCategory> ( );

        dragNode.setDraggingNode ( toEntity ( arg0.getDraggingNode ( ) ) );
        dragNode.setDropNode ( toEntity ( arg0.getDropNode ( ) ) );
        dragNode.setDropType ( arg0.getDropType ( ) );

        return dragNode;
    }

    private String arg0ParentId(DataScreenCategoryDTO dataScreenCategoryDTO) {
        if ( dataScreenCategoryDTO == null ) {
            return null;
        }
        DataScreenCategoryDTO parent = dataScreenCategoryDTO.getParent ( );
        if ( parent == null ) {
            return null;
        }
        String id = parent.getId ( );
        if ( id == null ) {
            return null;
        }
        return id;
    }

    private String arg0CreateById(DataScreenCategoryDTO dataScreenCategoryDTO) {
        if ( dataScreenCategoryDTO == null ) {
            return null;
        }
        UserDTO createBy = dataScreenCategoryDTO.getCreateBy ( );
        if ( createBy == null ) {
            return null;
        }
        String id = createBy.getId ( );
        if ( id == null ) {
            return null;
        }
        return id;
    }

    private String arg0UpdateById(DataScreenCategoryDTO dataScreenCategoryDTO) {
        if ( dataScreenCategoryDTO == null ) {
            return null;
        }
        UserDTO updateBy = dataScreenCategoryDTO.getUpdateBy ( );
        if ( updateBy == null ) {
            return null;
        }
        String id = updateBy.getId ( );
        if ( id == null ) {
            return null;
        }
        return id;
    }

    protected DataScreenCategoryDTO dataScreenCategoryToDataScreenCategoryDTO(DataScreenCategory dataScreenCategory) {
        if ( dataScreenCategory == null ) {
            return null;
        }

        DataScreenCategoryDTO dataScreenCategoryDTO = new DataScreenCategoryDTO ( );

        dataScreenCategoryDTO.setId ( dataScreenCategory.getParentId ( ) );

        return dataScreenCategoryDTO;
    }

    protected UserDTO dataScreenCategoryToUserDTO(DataScreenCategory dataScreenCategory) {
        if ( dataScreenCategory == null ) {
            return null;
        }

        UserDTO userDTO = new UserDTO ( );

        userDTO.setId ( dataScreenCategory.getCreateById ( ) );

        return userDTO;
    }

    protected UserDTO dataScreenCategoryToUserDTO1(DataScreenCategory dataScreenCategory) {
        if ( dataScreenCategory == null ) {
            return null;
        }

        UserDTO userDTO = new UserDTO ( );

        userDTO.setId ( dataScreenCategory.getUpdateById ( ) );

        return userDTO;
    }
}
