1 /*
2 * EL4J, the Extension Library for the J2EE, adds incremental enhancements to
3 * the spring framework, http://el4j.sf.net
4 * Copyright (C) 2010 by ELCA Informatique SA, Av. de la Harpe 22-24,
5 * 1000 Lausanne, Switzerland, http://www.elca.ch
6 *
7 * EL4J is published under the GNU Lesser General Public License (LGPL)
8 * Version 2.1. See http://www.gnu.org/licenses/
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU Lesser General Public License for more details.
14 *
15 * For alternative licensing, please contact info@elca.ch
16 */
17 package ch.elca.el4j.services.persistence.jpa.dao.extentstrategies;
18
19 import org.apache.commons.collections.map.ReferenceMap;
20 import org.springframework.dao.DataAccessException;
21
22 import ch.elca.el4j.services.persistence.hibernate.dao.extent.ExtentEntity;
23
24 /**
25 * Strategy interface for fetching extents.
26 *
27 * Injected into GenericJpaDao by JpaExtentFetcherInjectorBeanPostProcessor.
28 *
29 * @svnLink $Revision: 4253 $;$Date: 2010-12-21 11:08:04 +0100 (Di, 21. Dez 2010) $;$Author: swismer $;$URL: https://el4j.svn.sourceforge.net/svnroot/el4j/branches/el4j_3_1/el4j/framework/modules/hibernate/src/main/java/ch/elca/el4j/services/persistence/jpa/dao/extentstrategies/ExtentFetcher.java $
30 *
31 * @author Simon Stelling (SST)
32 */
33 public interface ExtentFetcher {
34
35 /**
36 * Sub-method of the extent-based fetching, steps
37 * through the entities and calls the required methods.
38 *
39 * Implementations must be thread-safe.
40 *
41 * @param object the object to load in given extent
42 * @param entity the extent entity
43 * @param fetchedObjects the HashMap with all the already fetched objects
44 *
45 * @throws DataAccessException
46 */
47 public void fetchExtentObject(Object object, ExtentEntity entity, ReferenceMap fetchedObjects)
48 throws DataAccessException;
49
50 }