package com.brahalla.PhotoAlbum.domain.factory;
import com.brahalla.PhotoAlbum.domain.entity.Album;
import com.brahalla.PhotoAlbum.model.json.request.AlbumRequest;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
import org.springframework.beans.factory.FactoryBean;
import org.springframework.stereotype.Component;
@Component
public class AlbumFactory implements FactoryBean<Album> {
public Album create(AlbumRequest albumRequest) {
return new Album(
albumRequest.getTitle(),
new Date(),
albumRequest.getCoverPhotoId()
);
}
public List<Album> create(List<AlbumRequest> albumRequestList) {
List<Album> albumList = new LinkedList<Album>();
if (albumRequestList != null) {
albumRequestList.forEach(a -> albumList.add(this.create(a)));
}
return albumList;
}
@Override
public Album getObject() {
return new Album();
}
@Override
public Class<Album> getObjectType() {
return Album.class;
}
@Override
public boolean isSingleton() {
return true;
}
}