/* * This code is distributed under The GNU Lesser General Public License (LGPLv3) * Please visit GNU site for LGPLv3 http://www.gnu.org/copyleft/lesser.html * * Copyright Denis Pavlov 2009 * Web: http://www.genericdtoassembler.org * SVN: https://svn.code.sf.net/p/geda-genericdto/code/trunk/ * SVN (mirror): http://geda-genericdto.googlecode.com/svn/trunk/ */ package com.inspiresoftware.lib.dto.geda.examples.blog.service.impl; import com.inspiresoftware.lib.dto.geda.adapter.BeanFactory; import com.inspiresoftware.lib.dto.geda.assembler.Assembler; import com.inspiresoftware.lib.dto.geda.assembler.DTOAssembler; import com.inspiresoftware.lib.dto.geda.examples.blog.domain.User; import com.inspiresoftware.lib.dto.geda.examples.blog.domain.UserEntry; import com.inspiresoftware.lib.dto.geda.examples.blog.dto.BaseUserDTO; import com.inspiresoftware.lib.dto.geda.examples.blog.dto.UserDTO; import com.inspiresoftware.lib.dto.geda.examples.blog.dto.UserEntryDTO; import com.inspiresoftware.lib.dto.geda.examples.blog.service.UserDAO; import com.inspiresoftware.lib.dto.geda.examples.blog.service.UserService; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * . * <p/> * User: denispavlov * Date: Jul 1, 2012 * Time: 2:01:13 PM */ public class UserServiceImpl implements UserService { private final UserDAO dao; private final BeanFactory bf; private final Map<String, Object> converters = new HashMap<String, Object>() {{ }}; public UserServiceImpl(final UserDAO dao, final BeanFactory bf) { this.dao = dao; this.bf = bf; } public List<BaseUserDTO> list() { final List<User> users = dao.list(); final List<BaseUserDTO> dtos = new ArrayList<BaseUserDTO>(); DTOAssembler.newAssembler(bf.getClazz("BaseUserDTO"), bf.getClazz("User")) .assembleDtos(dtos, users, converters, bf); return dtos; } public List<UserDTO> list(final String filter) { final List<User> users = dao.list(); final List<UserDTO> dtos = new ArrayList<UserDTO>(); final Assembler asm = DTOAssembler.newAssembler(bf.getClazz(filter), bf.getClazz("User")); for (final User user : users) { final UserDTO dto = (UserDTO) bf.get("UserDTO"); asm.assembleDto(dto, user, converters, bf); dtos.add(dto); } return dtos; } public UserDTO findUser(final Long userId) { final User user = dao.findUser(userId); final UserDTO dto = (UserDTO) bf.get("UserDTO"); DTOAssembler.newAssembler(dto.getClass(), bf.getClazz("User")) .assembleDto(dto, user, converters, bf); return dto; } public UserEntryDTO findEntry(final Long entryId) { final UserEntry entry = dao.findEntry(entryId); final UserEntryDTO dto = (UserEntryDTO) bf.get("UserEntryDTO"); DTOAssembler.newAssembler(dto.getClass(), bf.getClazz("UserEntry")) .assembleDto(dto, entry, converters, bf); return dto; } }