package com.brahalla.PhotoAlbum.domain.factory;
import com.brahalla.PhotoAlbum.domain.entity.Photo;
import com.brahalla.PhotoAlbum.model.json.request.PhotoRequest;
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 PhotoFactory implements FactoryBean<Photo> {
public Photo create(PhotoRequest photoRequest) {
return new Photo(
photoRequest.getTitle(),
new Date(),
photoRequest.getFilePath(),
photoRequest.getAlbumId()
);
}
public List<Photo> create(List<PhotoRequest> photoRequestList) {
List<Photo> photoList = new LinkedList<Photo>();
if (photoRequestList != null) {
photoRequestList.forEach(p -> photoList.add(this.create(p)));
}
return photoList;
}
@Override
public Photo getObject() {
return new Photo();
}
@Override
public Class<Photo> getObjectType() {
return Photo.class;
}
@Override
public boolean isSingleton() {
return true;
}
}