ProjectMapperImpl.java

package io.featureprobe.api.mapper;

import io.featureprobe.api.dao.entity.Project;
import io.featureprobe.api.dao.entity.Project.ProjectBuilder;
import io.featureprobe.api.dto.ProjectCreateRequest;
import io.featureprobe.api.dto.ProjectResponse;
import io.featureprobe.api.dto.ProjectUpdateRequest;
import javax.annotation.Generated;

@Generated(
    value = "org.mapstruct.ap.MappingProcessor",
    date = "2023-10-07T17:43:36+0800",
    comments = "version: 1.4.2.Final, compiler: javac, environment: Java 1.8.0_382 (Red Hat, Inc.)"
)
public class ProjectMapperImpl implements ProjectMapper {

    @Override
    public ProjectResponse entityToResponse(Project project) {
        if ( project == null ) {
            return null;
        }

        ProjectResponse projectResponse = new ProjectResponse();

        projectResponse.setName( project.getName() );
        projectResponse.setKey( project.getKey() );
        projectResponse.setDescription( project.getDescription() );

        projectResponse.setEnvironments( toEnvironmentResponses(project.getEnvironments()) );

        return projectResponse;
    }

    @Override
    public Project requestToEntity(ProjectCreateRequest createRequest) {
        if ( createRequest == null ) {
            return null;
        }

        ProjectBuilder project = Project.builder();

        project.key( createRequest.getKey() );
        project.name( createRequest.getName() );
        project.description( createRequest.getDescription() );

        return project.build();
    }

    @Override
    public void mapEntity(ProjectUpdateRequest updateRequest, Project project) {
        if ( updateRequest == null ) {
            return;
        }

        if ( updateRequest.getName() != null ) {
            project.setName( updateRequest.getName() );
        }
        if ( updateRequest.getDescription() != null ) {
            project.setDescription( updateRequest.getDescription() );
        }
    }
}