org.hibernate.cache
Interface RegionFactory

All Known Implementing Classes:
DelegatingRegionFactory, EhCacheRegionFactory, InfinispanRegionFactory, JndiInfinispanRegionFactory, NoCachingRegionFactory, RegionFactoryCacheProviderBridge, SingletonEhCacheRegionFactory

public interface RegionFactory

Contract for building second level cache regions.

Implementors should define a constructor in one of two forms:

Use the first when we need to read config properties prior to start(org.hibernate.cfg.Settings, java.util.Properties) being called. For an example, have a look at RegionFactoryCacheProviderBridge where we need the properties in order to determine which legacy CacheProvider to use so that we can answer the isMinimalPutsEnabledByDefault() question for the SettingsFactory.

Author:
Steve Ebersole

Method Summary
 CollectionRegion buildCollectionRegion(String regionName, Properties properties, CacheDataDescription metadata)
          Build a cache region specialized for storing collection data.
 EntityRegion buildEntityRegion(String regionName, Properties properties, CacheDataDescription metadata)
          Build a cache region specialized for storing entity data.
 QueryResultsRegion buildQueryResultsRegion(String regionName, Properties properties)
          Build a cache region specialized for storing query results
 TimestampsRegion buildTimestampsRegion(String regionName, Properties properties)
          Build a cache region specialized for storing update-timestamps data.
 AccessType getDefaultAccessType()
          Get the default access type for entity and collection regions.
 boolean isMinimalPutsEnabledByDefault()
          By default should we perform "minimal puts" when using this second level cache implementation?
 long nextTimestamp()
          Generate a timestamp.
 void start(Settings settings, Properties properties)
          Lifecycle callback to perform any necessary initialization of the underlying cache implementation(s).
 void stop()
          Lifecycle callback to perform any necessary cleanup of the underlying cache implementation(s).
 

Method Detail

start

void start(Settings settings,
           Properties properties)
           throws CacheException
Lifecycle callback to perform any necessary initialization of the underlying cache implementation(s). Called exactly once during the construction of a SessionFactoryImpl.

Parameters:
settings - The settings in effect.
properties - The defined cfg properties
Throws:
CacheException - Indicates problems starting the L2 cache impl; considered as a sign to stop SessionFactory building.

stop

void stop()
Lifecycle callback to perform any necessary cleanup of the underlying cache implementation(s). Called exactly once during SessionFactory.close().


isMinimalPutsEnabledByDefault

boolean isMinimalPutsEnabledByDefault()
By default should we perform "minimal puts" when using this second level cache implementation?

Returns:
True if "minimal puts" should be performed by default; false otherwise.

getDefaultAccessType

AccessType getDefaultAccessType()
Get the default access type for entity and collection regions.

Returns:
This factory's default access type.

nextTimestamp

long nextTimestamp()
Generate a timestamp.

This is generally used for cache content locking/unlocking purposes depending upon the access-strategy being used.

Returns:
The generated timestamp.

buildEntityRegion

EntityRegion buildEntityRegion(String regionName,
                               Properties properties,
                               CacheDataDescription metadata)
                               throws CacheException
Build a cache region specialized for storing entity data.

Parameters:
regionName - The name of the region.
properties - Configuration properties.
metadata - Information regarding the type of data to be cached
Returns:
The built region
Throws:
CacheException - Indicates problems building the region.

buildCollectionRegion

CollectionRegion buildCollectionRegion(String regionName,
                                       Properties properties,
                                       CacheDataDescription metadata)
                                       throws CacheException
Build a cache region specialized for storing collection data.

Parameters:
regionName - The name of the region.
properties - Configuration properties.
metadata - Information regarding the type of data to be cached
Returns:
The built region
Throws:
CacheException - Indicates problems building the region.

buildQueryResultsRegion

QueryResultsRegion buildQueryResultsRegion(String regionName,
                                           Properties properties)
                                           throws CacheException
Build a cache region specialized for storing query results

Parameters:
regionName - The name of the region.
properties - Configuration properties.
Returns:
The built region
Throws:
CacheException - Indicates problems building the region.

buildTimestampsRegion

TimestampsRegion buildTimestampsRegion(String regionName,
                                       Properties properties)
                                       throws CacheException
Build a cache region specialized for storing update-timestamps data.

Parameters:
regionName - The name of the region.
properties - Configuration properties.
Returns:
The built region
Throws:
CacheException - Indicates problems building the region.


Copyright © 2001-2010 Red Hat, Inc. All Rights Reserved.