@SuppressWarnings("WeakerAccess") protected EntityDataAccess generateNonStrictReadWriteEntityAccess(EntityDataCachingConfig accessConfig) { return new EntityNonStrictReadWriteAccess( this, getEffectiveKeysFactory(), getCacheStorageAccess(), accessConfig ); }
public DomainDataRegionTemplate( DomainDataRegionConfig regionConfig, RegionFactory regionFactory, DomainDataStorageAccess storageAccess, CacheKeysFactory defaultKeysFactory, DomainDataRegionBuildingContext buildingContext) { super( regionConfig, regionFactory, defaultKeysFactory, buildingContext ); this.storageAccess = storageAccess; // now the super-type calls will have access to the `DomainDataStorageAccess` reference completeInstantiation( regionConfig, buildingContext ); }
@Override public CollectionDataAccess generateCollectionAccess(CollectionDataCachingConfig accessConfig) { final NavigableRole namedCollectionRole = accessConfig.getNavigableRole(); log.debugf( "Generating collection cache access : %s", namedCollectionRole ); switch ( accessConfig.getAccessType() ) { case READ_ONLY: { return generateReadOnlyCollectionAccess( accessConfig ); } case READ_WRITE: { return generateReadWriteCollectionAccess( accessConfig ); } case NONSTRICT_READ_WRITE: { return generateNonStrictReadWriteCollectionAccess( accessConfig ); } case TRANSACTIONAL: { return generateTransactionalCollectionDataAccess( accessConfig ); } default: { throw new IllegalArgumentException( "Unrecognized cache AccessType - " + accessConfig.getAccessType() ); } } }
@Override public NaturalIdDataAccess generateNaturalIdAccess(NaturalIdDataCachingConfig accessConfig) { final NavigableRole namedEntityRole = accessConfig.getNavigableRole(); final AccessType accessType = accessConfig.getAccessType(); log.debugf( "Generating entity natural-id access [%s] : %s", accessType.getExternalName(), namedEntityRole ); switch ( accessType ) { case READ_ONLY: { return generateReadOnlyNaturalIdAccess( accessConfig ); } case READ_WRITE: { return generateReadWriteNaturalIdAccess( accessConfig ); } case NONSTRICT_READ_WRITE: { return generateNonStrictReadWriteNaturalIdAccess( accessConfig ); } case TRANSACTIONAL: { return generateTransactionalNaturalIdDataAccess( accessConfig ); } default: { throw new IllegalArgumentException( "Unrecognized cache AccessType - " + accessType ); } } }
@Override public EntityDataAccess generateEntityAccess(EntityDataCachingConfig entityAccessConfig) { final NavigableRole namedEntityRole = entityAccessConfig.getNavigableRole(); final AccessType accessType = entityAccessConfig.getAccessType(); log.debugf( "Generating entity cache access [%s] : %s", accessType.getExternalName(), namedEntityRole ); switch ( accessType ) { case READ_ONLY: { return generateReadOnlyEntityAccess( entityAccessConfig ); } case READ_WRITE: { return generateReadWriteEntityAccess( entityAccessConfig ); } case NONSTRICT_READ_WRITE: { return generateNonStrictReadWriteEntityAccess( entityAccessConfig ); } case TRANSACTIONAL: { return generateTransactionalEntityDataAccess( entityAccessConfig ); } default: { throw new IllegalArgumentException( "Unrecognized cache AccessType - " + accessType ); } } }
@Test public void testBasicStorageAccessUse() { TestHelper.preBuildAllCaches(); try (final SessionFactoryImplementor sessionFactory = TestHelper.buildStandardSessionFactory() ) { final Region region = sessionFactory.getCache().getRegion( TestHelper.entityRegionNames[0] ); final JCacheAccessImpl access = (JCacheAccessImpl) ( (DomainDataRegionTemplate) region ).getCacheStorageAccess(); final Cache jcache = access.getUnderlyingCache(); inSession( sessionFactory, s -> { access.putIntoCache( "key", "value", s ); assertThat( jcache.get( "key" ), equalTo( "value" ) ); assertThat( access.getFromCache( "key", s ), equalTo( "value" ) ); access.removeFromCache( "key", s ); assertThat( jcache.get( "key" ), nullValue() ); assertThat( access.getFromCache( "key", s ), nullValue() ); } ); } }
@Override public DomainDataRegion buildDomainDataRegion( DomainDataRegionConfig regionConfig, DomainDataRegionBuildingContext buildingContext) { verifyStarted(); return new DomainDataRegionTemplate( regionConfig, this, createDomainDataStorageAccess( regionConfig, buildingContext ), getImplicitCacheKeysFactory(), buildingContext ); }
@Override public NaturalIdDataAccess generateNaturalIdAccess(NaturalIdDataCachingConfig accessConfig) { final NavigableRole namedEntityRole = accessConfig.getNavigableRole(); final AccessType accessType = accessConfig.getAccessType(); log.debugf( "Generating entity natural-id access [%s] : %s", accessType.getExternalName(), namedEntityRole ); switch ( accessType ) { case READ_ONLY: { return generateReadOnlyNaturalIdAccess( accessConfig ); } case READ_WRITE: { return generateReadWriteNaturalIdAccess( accessConfig ); } case NONSTRICT_READ_WRITE: { return generateNonStrictReadWriteNaturalIdAccess( accessConfig ); } case TRANSACTIONAL: { return generateTransactionalNaturalIdDataAccess( accessConfig ); } default: { throw new IllegalArgumentException( "Unrecognized cache AccessType - " + accessType ); } } }
@Override public EntityDataAccess generateEntityAccess(EntityDataCachingConfig entityAccessConfig) { final NavigableRole namedEntityRole = entityAccessConfig.getNavigableRole(); final AccessType accessType = entityAccessConfig.getAccessType(); log.debugf( "Generating entity cache access [%s] : %s", accessType.getExternalName(), namedEntityRole ); switch ( accessType ) { case READ_ONLY: { return generateReadOnlyEntityAccess( entityAccessConfig ); } case READ_WRITE: { return generateReadWriteEntityAccess( entityAccessConfig ); } case NONSTRICT_READ_WRITE: { return generateNonStrictReadWriteEntityAccess( entityAccessConfig ); } case TRANSACTIONAL: { return generateTransactionalEntityDataAccess( entityAccessConfig ); } default: { throw new IllegalArgumentException( "Unrecognized cache AccessType - " + accessType ); } } }
private StorageAccess getStorageAccess(AbstractRegion region) { if(region instanceof DirectAccessRegionTemplate) { DirectAccessRegionTemplate directAccessRegionTemplate = (DirectAccessRegionTemplate) region; return directAccessRegionTemplate.getStorageAccess(); } else if(region instanceof DomainDataRegionTemplate) { DomainDataRegionTemplate domainDataRegionTemplate = (DomainDataRegionTemplate) region; return domainDataRegionTemplate.getCacheStorageAccess(); } throw new IllegalArgumentException("Unsupported region: " + region); } }
@Override public DomainDataRegion buildDomainDataRegion( DomainDataRegionConfig regionConfig, DomainDataRegionBuildingContext buildingContext) { verifyStarted(); return new DomainDataRegionTemplate( regionConfig, this, createDomainDataStorageAccess( regionConfig, buildingContext ), getImplicitCacheKeysFactory(), buildingContext ); }
@SuppressWarnings("WeakerAccess") protected NaturalIdDataAccess generateReadWriteNaturalIdAccess(NaturalIdDataCachingConfig accessConfig) { return new NaturalIdReadWriteAccess( this, getEffectiveKeysFactory(), getCacheStorageAccess(), accessConfig ); }
@Override public CollectionDataAccess generateCollectionAccess(CollectionDataCachingConfig accessConfig) { final NavigableRole namedCollectionRole = accessConfig.getNavigableRole(); log.debugf( "Generating collection cache access : %s", namedCollectionRole ); switch ( accessConfig.getAccessType() ) { case READ_ONLY: { return generateReadOnlyCollectionAccess( accessConfig ); } case READ_WRITE: { return generateReadWriteCollectionAccess( accessConfig ); } case NONSTRICT_READ_WRITE: { return generateNonStrictReadWriteCollectionAccess( accessConfig ); } case TRANSACTIONAL: { return generateTransactionalCollectionDataAccess( accessConfig ); } default: { throw new IllegalArgumentException( "Unrecognized cache AccessType - " + accessConfig.getAccessType() ); } } }
public DomainDataRegionTemplate( DomainDataRegionConfig regionConfig, RegionFactory regionFactory, DomainDataStorageAccess storageAccess, CacheKeysFactory defaultKeysFactory, DomainDataRegionBuildingContext buildingContext) { super( regionConfig, regionFactory, defaultKeysFactory, buildingContext ); this.storageAccess = storageAccess; // now the super-type calls will have access to the `DomainDataStorageAccess` reference completeInstantiation( regionConfig, buildingContext ); }
@SuppressWarnings("WeakerAccess") protected EntityDataAccess generateReadOnlyEntityAccess(EntityDataCachingConfig accessConfig) { return new EntityReadOnlyAccess( this, getEffectiveKeysFactory(), getCacheStorageAccess(), accessConfig ); }
@SuppressWarnings("WeakerAccess") protected EntityDataAccess generateReadWriteEntityAccess(EntityDataCachingConfig accessConfig) { return new EntityReadWriteAccess( this, getEffectiveKeysFactory(), getCacheStorageAccess(), accessConfig ); }
private CollectionDataAccess generateNonStrictReadWriteCollectionAccess(CollectionDataCachingConfig accessConfig) { return new CollectionNonStrictReadWriteAccess( this, getEffectiveKeysFactory(), getCacheStorageAccess(), accessConfig ); }
private CollectionDataAccess generateReadOnlyCollectionAccess(CollectionDataCachingConfig accessConfig) { return new CollectionReadOnlyAccess( this, getEffectiveKeysFactory(), getCacheStorageAccess(), accessConfig ); }
@SuppressWarnings("WeakerAccess") protected NaturalIdDataAccess generateReadOnlyNaturalIdAccess(NaturalIdDataCachingConfig accessConfig) { return new NaturalIdReadOnlyAccess( this, getEffectiveKeysFactory(), getCacheStorageAccess(), accessConfig ); }
@SuppressWarnings("WeakerAccess") protected NaturalIdDataAccess generateNonStrictReadWriteNaturalIdAccess(NaturalIdDataCachingConfig accessConfig) { return new NaturalIdNonStrictReadWriteAccess( this, getEffectiveKeysFactory(), getCacheStorageAccess(), accessConfig ); }