View Javadoc

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  }