@Override public EntityRegion buildEntityRegion(String regionName, Properties properties, CacheDataDescription metadata) { if ( log.isDebugEnabled() ) { log.debugf( "Building entity cache region [%s] (mutable=%s, versioned=%s)", regionName, metadata.isMutable(), metadata.isVersioned() ); } final AdvancedCache cache = getCache( regionName, metadata.isMutable() ? DataType.ENTITY : DataType.IMMUTABLE_ENTITY, metadata ); final EntityRegion region = new EntityRegionImpl(cache, regionName, transactionManager, metadata, this, getCacheKeysFactory()); startRegion((BaseRegion) region); return region; }
@Override public EntityRegionAccessStrategy buildAccessStrategy(AccessType accessType) throws CacheException { checkAccessType(accessType); AccessDelegate accessDelegate = createAccessDelegate(accessType); if ( accessType == AccessType.READ_ONLY || !getCacheDataDescription().isMutable() ) { return new ReadOnlyAccess( this, accessDelegate ); } else { return new ReadWriteAccess( this, accessDelegate ); } } }
@Override public NaturalIdRegionAccessStrategy buildAccessStrategy(AccessType accessType) throws CacheException { checkAccessType( accessType ); AccessDelegate accessDelegate = createAccessDelegate(accessType); if ( accessType == AccessType.READ_ONLY || !getCacheDataDescription().isMutable() ) { return new ReadOnlyAccess( this, accessDelegate ); } else { return new ReadWriteAccess( this, accessDelegate ); } } }
@Override public CollectionRegionAccessStrategy createCollectionRegionAccessStrategy(RedisCollectionRegion collectionRegion, AccessType accessType) { switch (accessType) { case READ_ONLY: if (collectionRegion.getCacheDataDescription().isMutable()) { log.warn("read-only cache configured for mutable entity collectionRegionName=[{}]", collectionRegion.getName()); } return new ReadOnlyRedisCollectionRegionAccessStrategy(collectionRegion, collectionRegion.getSettings()); case READ_WRITE: return new ReadWriteRedisCollectionRegionAccessStrategy(collectionRegion, collectionRegion.getSettings()); case NONSTRICT_READ_WRITE: return new NonStrictReadWriteRedisCollectionRegionAccessStrategy(collectionRegion, collectionRegion.getSettings()); case TRANSACTIONAL: return new TransactionalRedisCollectionRegionAccessStrategy(collectionRegion, collectionRegion.getSettings()); default: throw new IllegalArgumentException("unrecognized access strategy type [" + accessType + "]"); } }
@Override public EntityRegionAccessStrategy createEntityRegionAccessStrategy(RedisEntityRegion entityRegion, AccessType accessType) { switch (accessType) { case READ_ONLY: if (entityRegion.getCacheDataDescription().isMutable()) { log.warn("read-only cache configured for mutable entity regionName=[{}]", entityRegion.getName()); } return new ReadOnlyRedisEntityRegionAccessStrategy(entityRegion, entityRegion.getSettings()); case READ_WRITE: return new ReadWriteRedisEntityRegionAccessStrategy(entityRegion, entityRegion.getSettings()); case NONSTRICT_READ_WRITE: return new NonStrictReadWriteRedisEntityRegionAccessStrategy(entityRegion, entityRegion.getSettings()); case TRANSACTIONAL: return new TransactionalRedisEntityRegionAccessStrategy(entityRegion, entityRegion.getSettings()); default: throw new IllegalArgumentException("unrecognized access strategy type [" + accessType + "]"); } }
@Override public EntityRegionAccessStrategy createEntityRegionAccessStrategy(RedisEntityRegion entityRegion, AccessType accessType) { switch (accessType) { case READ_ONLY: if (entityRegion.getCacheDataDescription().isMutable()) { log.warn("read-only cache configured for mutable entity regionName=[{}]", entityRegion.getName()); } return new ReadOnlyRedisEntityRegionAccessStrategy(entityRegion, entityRegion.getSettings()); case READ_WRITE: return new ReadWriteRedisEntityRegionAccessStrategy(entityRegion, entityRegion.getSettings()); case NONSTRICT_READ_WRITE: return new NonStrictReadWriteRedisEntityRegionAccessStrategy(entityRegion, entityRegion.getSettings()); case TRANSACTIONAL: return new TransactionalRedisEntityRegionAccessStrategy(entityRegion, entityRegion.getSettings()); default: throw new IllegalArgumentException("unrecognized access strategy type [" + accessType + "]"); } }
@Override public CollectionRegionAccessStrategy createCollectionRegionAccessStrategy(RedisCollectionRegion collectionRegion, AccessType accessType) { switch (accessType) { case READ_ONLY: if (collectionRegion.getCacheDataDescription().isMutable()) { log.warn("read-only cache configured for mutable entity collectionRegionName=[{}]", collectionRegion.getName()); } return new ReadOnlyRedisCollectionRegionAccessStrategy(collectionRegion, collectionRegion.getSettings()); case READ_WRITE: return new ReadWriteRedisCollectionRegionAccessStrategy(collectionRegion, collectionRegion.getSettings()); case NONSTRICT_READ_WRITE: return new NonStrictReadWriteRedisCollectionRegionAccessStrategy(collectionRegion, collectionRegion.getSettings()); case TRANSACTIONAL: return new TransactionalRedisCollectionRegionAccessStrategy(collectionRegion, collectionRegion.getSettings()); default: throw new IllegalArgumentException("unrecognized access strategy type [" + accessType + "]"); } }
@Override public EntityRegionAccessStrategy createEntityRegionAccessStrategy(RedisEntityRegion entityRegion, AccessType accessType) { switch (accessType) { case READ_ONLY: if (entityRegion.getCacheDataDescription().isMutable()) { log.warn("read-only cache configured for mutable entity regionName=[{}]", entityRegion.getName()); } return new ReadOnlyRedisEntityRegionAccessStrategy(entityRegion, entityRegion.getSettings()); case READ_WRITE: return new ReadWriteRedisEntityRegionAccessStrategy(entityRegion, entityRegion.getSettings()); case NONSTRICT_READ_WRITE: return new NonStrictReadWriteRedisEntityRegionAccessStrategy(entityRegion, entityRegion.getSettings()); case TRANSACTIONAL: return new TransactionalRedisEntityRegionAccessStrategy(entityRegion, entityRegion.getSettings()); default: throw new IllegalArgumentException("unrecognized access strategy type [" + accessType + "]"); } }
/** * {@inheritDoc} */ public NaturalIdRegionAccessStrategy createNaturalIdRegionAccessStrategy(RedisNaturalIdRegion naturalIdRegion, AccessType accessType) { switch (accessType) { case READ_ONLY: if (naturalIdRegion.getCacheDataDescription().isMutable()) { log.warn("read-only cache configured for mutable entity naturalIdRegion=[{}]", naturalIdRegion.getName()); } return new ReadOnlyRedisNaturalIdRegionAccessStrategy(naturalIdRegion, naturalIdRegion.getOptions()); case READ_WRITE: return new ReadWriteRedisNaturalIdRegionAccessStrategy(naturalIdRegion, naturalIdRegion.getOptions()); case NONSTRICT_READ_WRITE: return new NonStrictReadWriteRedisNaturalIdRegionAccessStrategy(naturalIdRegion, naturalIdRegion.getOptions()); case TRANSACTIONAL: return new TransactionalRedisNaturalIdRegionAccessStrategy(naturalIdRegion, naturalIdRegion.getOptions()); default: throw new IllegalArgumentException("unrecognized access strategy type [" + accessType + "]"); } } }
@Override public CollectionRegionAccessStrategy createCollectionRegionAccessStrategy(RedisCollectionRegion collectionRegion, AccessType accessType) { switch (accessType) { case READ_ONLY: if (collectionRegion.getCacheDataDescription().isMutable()) { log.warn("read-only cache configured for mutable entity collectionRegionName=[{}]", collectionRegion.getName()); } return new ReadOnlyRedisCollectionRegionAccessStrategy(collectionRegion, collectionRegion.getSettings()); case READ_WRITE: return new ReadWriteRedisCollectionRegionAccessStrategy(collectionRegion, collectionRegion.getSettings()); case NONSTRICT_READ_WRITE: return new NonStrictReadWriteRedisCollectionRegionAccessStrategy(collectionRegion, collectionRegion.getSettings()); case TRANSACTIONAL: return new TransactionalRedisCollectionRegionAccessStrategy(collectionRegion, collectionRegion.getSettings()); default: throw new IllegalArgumentException("unrecognized access strategy type [" + accessType + "]"); } }
/** * {@inheritDoc} */ @Override public EntityRegionAccessStrategy createEntityRegionAccessStrategy(RedisEntityRegion entityRegion, AccessType accessType) { switch (accessType) { case READ_ONLY: if (entityRegion.getCacheDataDescription().isMutable()) { log.warn("read-only cache configured for mutable entity regionName=[{}]", entityRegion.getName()); } return new ReadOnlyRedisEntityRegionAccessStrategy(entityRegion, entityRegion.getOptions()); case READ_WRITE: return new ReadWriteRedisEntityRegionAccessStrategy(entityRegion, entityRegion.getOptions()); case NONSTRICT_READ_WRITE: return new NonStrictReadWriteRedisEntityRegionAccessStrategy(entityRegion, entityRegion.getOptions()); case TRANSACTIONAL: return new TransactionalRedisEntityRegionAccessStrategy(entityRegion, entityRegion.getOptions()); default: throw new IllegalArgumentException("unrecognized access strategy type [" + accessType + "]"); } }
/** * {@inheritDoc} */ public NaturalIdRegionAccessStrategy createNaturalIdRegionAccessStrategy(RedisNaturalIdRegion naturalIdRegion, AccessType accessType) { switch (accessType) { case READ_ONLY: if (naturalIdRegion.getCacheDataDescription().isMutable()) { log.warn("read-only cache configured for mutable entity naturalIdRegion=[{}]", naturalIdRegion.getName()); } return new ReadOnlyRedisNaturalIdRegionAccessStrategy(naturalIdRegion, naturalIdRegion.getOptions()); case READ_WRITE: return new ReadWriteRedisNaturalIdRegionAccessStrategy(naturalIdRegion, naturalIdRegion.getOptions()); case NONSTRICT_READ_WRITE: return new NonStrictReadWriteRedisNaturalIdRegionAccessStrategy(naturalIdRegion, naturalIdRegion.getOptions()); case TRANSACTIONAL: return new TransactionalRedisNaturalIdRegionAccessStrategy(naturalIdRegion, naturalIdRegion.getOptions()); default: throw new IllegalArgumentException("unrecognized access strategy type [" + accessType + "]"); } } }
/** * {@inheritDoc} */ @Override public EntityRegionAccessStrategy createEntityRegionAccessStrategy(RedisEntityRegion entityRegion, AccessType accessType) { switch (accessType) { case READ_ONLY: if (entityRegion.getCacheDataDescription().isMutable()) { log.warn("read-only cache configured for mutable entity regionName=[{}]", entityRegion.getName()); } return new ReadOnlyRedisEntityRegionAccessStrategy(entityRegion, entityRegion.getOptions()); case READ_WRITE: return new ReadWriteRedisEntityRegionAccessStrategy(entityRegion, entityRegion.getOptions()); case NONSTRICT_READ_WRITE: return new NonStrictReadWriteRedisEntityRegionAccessStrategy(entityRegion, entityRegion.getOptions()); case TRANSACTIONAL: return new TransactionalRedisEntityRegionAccessStrategy(entityRegion, entityRegion.getOptions()); default: throw new IllegalArgumentException("unrecognized access strategy type [" + accessType + "]"); } }
/** * {@inheritDoc} */ @Override public CollectionRegionAccessStrategy createCollectionRegionAccessStrategy(RedisCollectionRegion collectionRegion, AccessType accessType) { switch (accessType) { case READ_ONLY: if (collectionRegion.getCacheDataDescription().isMutable()) { log.warn("read-only cache configured for mutable entity collectionRegionName=[{}]", collectionRegion.getName()); } return new ReadOnlyRedisCollectionRegionAccessStrategy(collectionRegion, collectionRegion.getOptions()); case READ_WRITE: return new ReadWriteRedisCollectionRegionAccessStrategy(collectionRegion, collectionRegion.getOptions()); case NONSTRICT_READ_WRITE: return new NonStrictReadWriteRedisCollectionRegionAccessStrategy(collectionRegion, collectionRegion.getOptions()); case TRANSACTIONAL: return new TransactionalRedisCollectionRegionAccessStrategy(collectionRegion, collectionRegion.getOptions()); default: throw new IllegalArgumentException("unrecognized access strategy type [" + accessType + "]"); } }
/** * {@inheritDoc} */ @Override public EntityRegionAccessStrategy createEntityRegionAccessStrategy(RedisEntityRegion entityRegion, AccessType accessType) { switch (accessType) { case READ_ONLY: if (entityRegion.getCacheDataDescription().isMutable()) { log.warn("read-only cache configured for mutable entity regionName=[{}]", entityRegion.getName()); } return new ReadOnlyRedisEntityRegionAccessStrategy(entityRegion, entityRegion.getOptions()); case READ_WRITE: return new ReadWriteRedisEntityRegionAccessStrategy(entityRegion, entityRegion.getOptions()); case NONSTRICT_READ_WRITE: return new NonStrictReadWriteRedisEntityRegionAccessStrategy(entityRegion, entityRegion.getOptions()); case TRANSACTIONAL: return new TransactionalRedisEntityRegionAccessStrategy(entityRegion, entityRegion.getOptions()); default: throw new IllegalArgumentException("unrecognized access strategy type [" + accessType + "]"); } }
/** * {@inheritDoc} */ @Override public CollectionRegionAccessStrategy createCollectionRegionAccessStrategy(RedisCollectionRegion collectionRegion, AccessType accessType) { switch (accessType) { case READ_ONLY: if (collectionRegion.getCacheDataDescription().isMutable()) { log.warn("read-only cache configured for mutable entity collectionRegionName=[{}]", collectionRegion.getName()); } return new ReadOnlyRedisCollectionRegionAccessStrategy(collectionRegion, collectionRegion.getOptions()); case READ_WRITE: return new ReadWriteRedisCollectionRegionAccessStrategy(collectionRegion, collectionRegion.getOptions()); case NONSTRICT_READ_WRITE: return new NonStrictReadWriteRedisCollectionRegionAccessStrategy(collectionRegion, collectionRegion.getOptions()); case TRANSACTIONAL: return new TransactionalRedisCollectionRegionAccessStrategy(collectionRegion, collectionRegion.getOptions()); default: throw new IllegalArgumentException("unrecognized access strategy type [" + accessType + "]"); } }
/** * {@inheritDoc} */ public NaturalIdRegionAccessStrategy createNaturalIdRegionAccessStrategy(RedisNaturalIdRegion naturalIdRegion, AccessType accessType) { switch (accessType) { case READ_ONLY: if (naturalIdRegion.getCacheDataDescription().isMutable()) { log.warn("read-only cache configured for mutable entity naturalIdRegion=[{}]", naturalIdRegion.getName()); } return new ReadOnlyRedisNaturalIdRegionAccessStrategy(naturalIdRegion, naturalIdRegion.getOptions()); case READ_WRITE: return new ReadWriteRedisNaturalIdRegionAccessStrategy(naturalIdRegion, naturalIdRegion.getOptions()); case NONSTRICT_READ_WRITE: return new NonStrictReadWriteRedisNaturalIdRegionAccessStrategy(naturalIdRegion, naturalIdRegion.getOptions()); case TRANSACTIONAL: return new TransactionalRedisNaturalIdRegionAccessStrategy(naturalIdRegion, naturalIdRegion.getOptions()); default: throw new IllegalArgumentException("unrecognized access strategy type [" + accessType + "]"); } } }
/** * {@inheritDoc} */ @Override public CollectionRegionAccessStrategy createCollectionRegionAccessStrategy(RedisCollectionRegion collectionRegion, AccessType accessType) { switch (accessType) { case READ_ONLY: if (collectionRegion.getCacheDataDescription().isMutable()) { log.warn("read-only cache configured for mutable entity collectionRegionName=[{}]", collectionRegion.getName()); } return new ReadOnlyRedisCollectionRegionAccessStrategy(collectionRegion, collectionRegion.getOptions()); case READ_WRITE: return new ReadWriteRedisCollectionRegionAccessStrategy(collectionRegion, collectionRegion.getOptions()); case NONSTRICT_READ_WRITE: return new NonStrictReadWriteRedisCollectionRegionAccessStrategy(collectionRegion, collectionRegion.getOptions()); case TRANSACTIONAL: return new TransactionalRedisCollectionRegionAccessStrategy(collectionRegion, collectionRegion.getOptions()); default: throw new IllegalArgumentException("unrecognized access strategy type [" + accessType + "]"); } }
@Override public NaturalIdRegionAccessStrategy createNaturalIdRegionAccessStrategy(RedisNaturalIdRegion naturalIdRegion, AccessType accessType) { switch (accessType) { case READ_ONLY: if (naturalIdRegion.getCacheDataDescription().isMutable()) { log.warn("read-only cache configured for mutable entity naturalIdRegion=[{}]", naturalIdRegion.getName()); } return new ReadOnlyRedisNaturalIdRegionAccessStrategy(naturalIdRegion, naturalIdRegion.getSettings()); case READ_WRITE: return new ReadWriteRedisNaturalIdRegionAccessStrategy(naturalIdRegion, naturalIdRegion.getSettings()); case NONSTRICT_READ_WRITE: return new NonStrictReadWriteRedisNaturalIdRegionAccessStrategy(naturalIdRegion, naturalIdRegion.getSettings()); case TRANSACTIONAL: return new TransactionalRedisNaturalIdRegionAccessStrategy(naturalIdRegion, naturalIdRegion.getRedis(), naturalIdRegion.getSettings()); default: throw new IllegalArgumentException("unrecognized access strategy type [" + accessType + "]"); } } }
@Override public NaturalIdRegionAccessStrategy createNaturalIdRegionAccessStrategy(RedisNaturalIdRegion naturalIdRegion, AccessType accessType) { switch (accessType) { case READ_ONLY: if (naturalIdRegion.getCacheDataDescription().isMutable()) { log.warn("read-only cache configured for mutable entity naturalIdRegion=[{}]", naturalIdRegion.getName()); } return new ReadOnlyRedisNaturalIdRegionAccessStrategy(naturalIdRegion, naturalIdRegion.getSettings()); case READ_WRITE: return new ReadWriteRedisNaturalIdRegionAccessStrategy(naturalIdRegion, naturalIdRegion.getSettings()); case NONSTRICT_READ_WRITE: return new NonStrictReadWriteRedisNaturalIdRegionAccessStrategy(naturalIdRegion, naturalIdRegion.getSettings()); case TRANSACTIONAL: return new TransactionalRedisNaturalIdRegionAccessStrategy(naturalIdRegion, naturalIdRegion.getRedis(), naturalIdRegion.getSettings()); default: throw new IllegalArgumentException("unrecognized access strategy type [" + accessType + "]"); } } }