AppUserMapperImpl.java

package com.codecool.bytebattlers.mapper;

import com.codecool.bytebattlers.controller.dto.AppUserDto;
import com.codecool.bytebattlers.model.AppUser;
import com.codecool.bytebattlers.model.Review;
import java.util.LinkedHashSet;
import java.util.Set;
import java.util.UUID;
import javax.annotation.processing.Generated;
import org.springframework.stereotype.Component;

@Generated(
    value = "org.mapstruct.ap.MappingProcessor",
    date = "2025-01-25T06:38:34+0000",
    comments = "version: 1.5.5.Final, compiler: javac, environment: Java 17.0.14 (Azul Systems, Inc.)"
)
@Component
public class AppUserMapperImpl implements AppUserMapper {

    @Override
    public AppUser toEntity(AppUserDto appUserDto) {
        if ( appUserDto == null ) {
            return null;
        }

        AppUser appUser = new AppUser();

        appUser.setPublicID( appUserDto.publicID() );
        appUser.setName( appUserDto.name() );
        appUser.setPassword( appUserDto.password() );
        appUser.setEmail( appUserDto.email() );
        appUser.setReviews( reviewDto1SetToReviewSet( appUserDto.reviews() ) );

        linkReviews( appUser );

        return appUser;
    }

    @Override
    public AppUserDto toDto(AppUser appUser) {
        if ( appUser == null ) {
            return null;
        }

        UUID publicID = null;
        String name = null;
        String password = null;
        String email = null;
        Set<AppUserDto.ReviewDto1> reviews = null;

        publicID = appUser.getPublicID();
        name = appUser.getName();
        password = appUser.getPassword();
        email = appUser.getEmail();
        reviews = reviewSetToReviewDto1Set( appUser.getReviews() );

        Set<UUID> favoriteBoardGamePublicIDS = favoriteBoardGameToFavoriteBoardGamePublicIDS(appUser.getFavoriteBoardGames());

        AppUserDto appUserDto = new AppUserDto( publicID, name, password, email, reviews, favoriteBoardGamePublicIDS );

        return appUserDto;
    }

    @Override
    public AppUser partialUpdate(AppUserDto appUserDto, AppUser appUser) {
        if ( appUserDto == null ) {
            return appUser;
        }

        if ( appUserDto.publicID() != null ) {
            appUser.setPublicID( appUserDto.publicID() );
        }
        if ( appUserDto.name() != null ) {
            appUser.setName( appUserDto.name() );
        }
        if ( appUserDto.password() != null ) {
            appUser.setPassword( appUserDto.password() );
        }
        if ( appUserDto.email() != null ) {
            appUser.setEmail( appUserDto.email() );
        }
        if ( appUser.getReviews() != null ) {
            Set<Review> set = reviewDto1SetToReviewSet( appUserDto.reviews() );
            if ( set != null ) {
                appUser.getReviews().clear();
                appUser.getReviews().addAll( set );
            }
        }
        else {
            Set<Review> set = reviewDto1SetToReviewSet( appUserDto.reviews() );
            if ( set != null ) {
                appUser.setReviews( set );
            }
        }

        linkReviews( appUser );

        return appUser;
    }

    protected Review reviewDto1ToReview(AppUserDto.ReviewDto1 reviewDto1) {
        if ( reviewDto1 == null ) {
            return null;
        }

        Review review = new Review();

        review.setPublicID( reviewDto1.publicID() );
        review.setDescription( reviewDto1.description() );

        return review;
    }

    protected Set<Review> reviewDto1SetToReviewSet(Set<AppUserDto.ReviewDto1> set) {
        if ( set == null ) {
            return null;
        }

        Set<Review> set1 = new LinkedHashSet<Review>( Math.max( (int) ( set.size() / .75f ) + 1, 16 ) );
        for ( AppUserDto.ReviewDto1 reviewDto1 : set ) {
            set1.add( reviewDto1ToReview( reviewDto1 ) );
        }

        return set1;
    }

    protected AppUserDto.ReviewDto1 reviewToReviewDto1(Review review) {
        if ( review == null ) {
            return null;
        }

        UUID publicID = null;
        String description = null;

        publicID = review.getPublicID();
        description = review.getDescription();

        AppUserDto.ReviewDto1 reviewDto1 = new AppUserDto.ReviewDto1( publicID, description );

        return reviewDto1;
    }

    protected Set<AppUserDto.ReviewDto1> reviewSetToReviewDto1Set(Set<Review> set) {
        if ( set == null ) {
            return null;
        }

        Set<AppUserDto.ReviewDto1> set1 = new LinkedHashSet<AppUserDto.ReviewDto1>( Math.max( (int) ( set.size() / .75f ) + 1, 16 ) );
        for ( Review review : set ) {
            set1.add( reviewToReviewDto1( review ) );
        }

        return set1;
    }
}