// Path: hibernate4-memcached-core/src/main/java/kr/pe/kwonnam/hibernate4memcached/regions/EntityMemcachedRegion.java
// public class EntityMemcachedRegion extends TransactionalDataMemcachedRegion implements EntityRegion {
//     public EntityMemcachedRegion(String regionName, OverridableReadOnlyProperties properties, CacheDataDescription metadata, Settings settings, MemcachedAdapter memcachedAdapter, HibernateCacheTimestamper hibernateCacheTimestamper) {
//         super(new CacheNamespace(regionName, true), properties, metadata, settings, memcachedAdapter, hibernateCacheTimestamper);
//     }
// 
//     @Override
//     public EntityRegionAccessStrategy buildAccessStrategy(AccessType accessType) throws CacheException {
//         switch (accessType) {
//             case READ_ONLY:
//                 return new ReadOnlyEntityRegionAccessStrategy(this);
//             case NONSTRICT_READ_WRITE:
//                 return new NonstrictReadWriteEntityRegionAccessStrategy(this);
//             default:
//                 throw new CacheException("Unsupported access strategy : " + accessType + ".");
//         }
//     }
// }


import kr.pe.kwonnam.hibernate4memcached.regions.EntityMemcachedRegion;
import org.hibernate.cache.CacheException;
import org.hibernate.cache.spi.access.SoftLock;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
package kr.pe.kwonnam.hibernate4memcached.strategies;


/**
 * @author KwonNam Son (kwon37xi@gmail.com)
 */
public class NonstrictReadWriteEntityRegionAccessStrategy extends BaseEntityMemcachedRegionAccessStrategy {
    private Logger log = LoggerFactory.getLogger(NonstrictReadWriteEntityRegionAccessStrategy.class);

// Path: hibernate4-memcached-core/src/main/java/kr/pe/kwonnam/hibernate4memcached/regions/EntityMemcachedRegion.java
// public class EntityMemcachedRegion extends TransactionalDataMemcachedRegion implements EntityRegion {
//     public EntityMemcachedRegion(String regionName, OverridableReadOnlyProperties properties, CacheDataDescription metadata, Settings settings, MemcachedAdapter memcachedAdapter, HibernateCacheTimestamper hibernateCacheTimestamper) {
//         super(new CacheNamespace(regionName, true), properties, metadata, settings, memcachedAdapter, hibernateCacheTimestamper);
//     }
// 
//     @Override
//     public EntityRegionAccessStrategy buildAccessStrategy(AccessType accessType) throws CacheException {
//         switch (accessType) {
//             case READ_ONLY:
//                 return new ReadOnlyEntityRegionAccessStrategy(this);
//             case NONSTRICT_READ_WRITE:
//                 return new NonstrictReadWriteEntityRegionAccessStrategy(this);
//             default:
//                 throw new CacheException("Unsupported access strategy : " + accessType + ".");
//         }
//     }
// }


// Path: hibernate4-memcached-core/src/main/java/kr/pe/kwonnam/hibernate4memcached/strategies/NonstrictReadWriteEntityRegionAccessStrategy.java
import kr.pe.kwonnam.hibernate4memcached.regions.EntityMemcachedRegion;
import org.hibernate.cache.CacheException;
import org.hibernate.cache.spi.access.SoftLock;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

package kr.pe.kwonnam.hibernate4memcached.strategies;


/**
 * @author KwonNam Son (kwon37xi@gmail.com)
 */
public class NonstrictReadWriteEntityRegionAccessStrategy extends BaseEntityMemcachedRegionAccessStrategy {
    private Logger log = LoggerFactory.getLogger(NonstrictReadWriteEntityRegionAccessStrategy.class);

    public NonstrictReadWriteEntityRegionAccessStrategy(EntityMemcachedRegion entityMemcachedRegion) {