package com.nicusa.assembler; import com.nicusa.controller.PortfolioController; import com.nicusa.domain.Drug; import com.nicusa.domain.Portfolio; import com.nicusa.resource.PortfolioResource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import static org.springframework.hateoas.mvc.ControllerLinkBuilder.linkTo; import static org.springframework.hateoas.mvc.ControllerLinkBuilder.methodOn; @Component public class PortfolioAssembler { @Autowired public DrugAssembler drugAssembler; public PortfolioResource toResource(Portfolio portfolio) { PortfolioResource portfolioResource = new PortfolioResource(); if (portfolio.getId() != null) { portfolioResource.setId(portfolio.getId()); portfolioResource.getLinks().put("self", linkTo(methodOn(PortfolioController.class).getPortfolio(portfolio.getId())).withSelfRel().getHref()); } portfolioResource.setName(portfolio.getName()); portfolioResource.setId(portfolio.getId()); for (Drug drug : portfolio.getDrugs()) { portfolioResource.getDrugResources().add(drugAssembler.toResource(drug)); } return portfolioResource; } }