/******************************************************************************* * Copyright (c) 2010 Robert "Unlogic" Olofsson (unlogic@unlogic.se). * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Lesser Public License v3 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/lgpl-3.0-standalone.html ******************************************************************************/ package se.unlogic.standardutils.dao; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.util.List; public class BeanRelationPopulator<T> implements BeanResultSetPopulator<T>{ private BeanResultSetPopulator<T> populator; private List<ManyToOneRelation<T,?,?>> manyToOneRelations; private Connection connection; private RelationQuery relationQuery; public BeanRelationPopulator(BeanResultSetPopulator<T> populator, List<ManyToOneRelation<T,?,?>> manyToOneRelations, Connection connection, RelationQuery relationQuery) { super(); this.populator = populator; this.manyToOneRelations = manyToOneRelations; this.connection = connection; this.relationQuery = relationQuery; } public T populate(ResultSet rs) throws SQLException { T bean = populator.populate(rs); if(bean != null){ for(ManyToOneRelation<T, ?, ?> relation : manyToOneRelations){ relation.getRemoteValue(bean, rs, connection, relationQuery); } } return bean; } }