package com.nicusa.converter;
import com.nicusa.domain.Drug;
import com.nicusa.domain.Portfolio;
import com.nicusa.resource.DrugResource;
import com.nicusa.resource.PortfolioResource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import java.util.ArrayList;
import java.util.Collection;
@Component
public class PortfolioResourceToDomainConverter extends ResourceToDomainConverter<PortfolioResource, Portfolio> {
@PersistenceContext
private EntityManager entityManager;
@Autowired
private DrugResourceToDomainConverter drugResourceToDomainConverter;
@Override
public Portfolio convert(PortfolioResource portfolioResource) {
Portfolio portfolio;
if (portfolioResource.getId() != null) {
portfolio = entityManager.find(Portfolio.class, portfolioResource.getId());
} else {
portfolio = new Portfolio();
}
Collection<Drug> drugs = new ArrayList<>();
for(DrugResource drugResource : portfolioResource.getDrugResources()) {
drugs.add(drugResourceToDomainConverter.convert(drugResource));
}
portfolio.setDrugs(drugs);
return portfolio;
}
}