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.CollectionRegion;
26 import org.hibernate.cache.access.AccessType;
27 import org.hibernate.cache.access.CollectionRegionAccessStrategy;
28 import org.hibernate.cfg.Settings;
29 import org.slf4j.Logger;
30 import org.slf4j.LoggerFactory;
31
32 /***
33 * A collection 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 EhcacheCollectionRegion extends EhcacheTransactionalDataRegion implements CollectionRegion {
42
43 private static final Logger LOG = LoggerFactory.getLogger(EhcacheEntityRegion.class);
44
45 /***
46 * Constructs an EhcacheCollectionRegion around the given underlying cache.
47 *
48 * @param accessStrategyFactory
49 */
50 public EhcacheCollectionRegion(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 CollectionRegionAccessStrategy buildAccessStrategy(AccessType accessType) throws CacheException {
59 return accessStrategyFactory.createCollectionRegionAccessStrategy(this, accessType);
60 }
61 }