View Javadoc

1   /***
2    *  Copyright 2003-2010 Terracotta, Inc.
3    *
4    *  Licensed under the Apache License, Version 2.0 (the "License");
5    *  you may not use this file except in compliance with the License.
6    *  You may obtain a copy of the License at
7    *
8    *      http://www.apache.org/licenses/LICENSE-2.0
9    *
10   *  Unless required by applicable law or agreed to in writing, software
11   *  distributed under the License is distributed on an "AS IS" BASIS,
12   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   *  See the License for the specific language governing permissions and
14   *  limitations under the License.
15   */
16  package net.sf.ehcache.hibernate.regions;
17  
18  import java.util.Properties;
19  
20  import net.sf.ehcache.Ehcache;
21  import net.sf.ehcache.hibernate.strategy.EhcacheAccessStrategyFactory;
22  
23  import org.hibernate.cache.CacheDataDescription;
24  import org.hibernate.cache.CacheException;
25  import org.hibernate.cache.EntityRegion;
26  import org.hibernate.cache.access.AccessType;
27  import org.hibernate.cache.access.EntityRegionAccessStrategy;
28  import org.hibernate.cfg.Settings;
29  import org.slf4j.Logger;
30  import org.slf4j.LoggerFactory;
31  
32  /***
33   * An entity region specific wrapper around an Ehcache instance.
34   * <p>
35   * This implementation returns Ehcache specific access strategy instances for all the non-transactional access types. Transactional access
36   * is not supported.
37   *
38   * @author Chris Dennis
39   * @author Abhishek Sanoujam
40   */
41  public class EhcacheEntityRegion extends EhcacheTransactionalDataRegion implements EntityRegion {
42  
43      private static final Logger LOG = LoggerFactory.getLogger(EhcacheEntityRegion.class);
44  
45      /***
46       * Constructs an EhcacheEntityRegion around the given underlying cache.
47       *
48       * @param accessStrategyFactory
49       */
50      public EhcacheEntityRegion(EhcacheAccessStrategyFactory accessStrategyFactory, Ehcache underlyingCache, Settings settings,
51              CacheDataDescription metadata, Properties properties) {
52          super(accessStrategyFactory, underlyingCache, settings, metadata, properties);
53      }
54  
55      /***
56       * {@inheritDoc}
57       */
58      public EntityRegionAccessStrategy buildAccessStrategy(AccessType accessType) throws CacheException {
59          return accessStrategyFactory.createEntityRegionAccessStrategy(this, accessType);
60      }
61  }