org.exoplatform.settings.cache
Class CacheSettingServiceImpl

java.lang.Object
  extended by org.exoplatform.settings.cache.CacheSettingServiceImpl
All Implemented Interfaces:
org.exoplatform.commons.api.settings.SettingService

public class CacheSettingServiceImpl
extends Object
implements org.exoplatform.commons.api.settings.SettingService

Created by The eXo Platform SAS Author : eXoPlatform bangnv@exoplatform.com Nov 15, 2012 CacheSettingServiceImpl is implemented for application which uses cache. CacheSettingServiceImpl contains also settingService for database. In case of saving and removing setting properties, CacheSettingService will effect the change in cache and database. Otherwise, it will search setting properties in cache at first and then in database, that allows to improve performance.


Field Summary
protected  org.exoplatform.services.cache.future.FutureExoCache<org.exoplatform.commons.api.settings.data.SettingKey,org.exoplatform.commons.api.settings.SettingValue,SettingServiceImpl> futureExoCache
           
protected  org.exoplatform.services.cache.ExoCache<org.exoplatform.commons.api.settings.data.SettingKey,org.exoplatform.commons.api.settings.SettingValue> settingCache
           
 
Constructor Summary
CacheSettingServiceImpl(SettingServiceImpl service, org.exoplatform.services.cache.CacheService cacheService)
          Create cache setting service object with service for database and service for cache
 
Method Summary
 org.exoplatform.commons.api.settings.SettingValue<?> get(org.exoplatform.commons.api.settings.data.Context context, org.exoplatform.commons.api.settings.data.Scope scope, String key)
          Get setting value associated with composite key(context, scope, key) This service will search in the cache first and then in the database.
 void remove(org.exoplatform.commons.api.settings.data.Context context)
          remove all the value associated with the specified context in cache and database also.
 void remove(org.exoplatform.commons.api.settings.data.Context context, org.exoplatform.commons.api.settings.data.Scope scope)
          remove all the value associated with the specified context and specified scope in cache and database also.
 void remove(org.exoplatform.commons.api.settings.data.Context context, org.exoplatform.commons.api.settings.data.Scope scope, String key)
          Remove all the value associated with the composite key(context,scope,key) in cache and also in database.
 void set(org.exoplatform.commons.api.settings.data.Context context, org.exoplatform.commons.api.settings.data.Scope scope, String key, org.exoplatform.commons.api.settings.SettingValue<?> value)
          Set the specified value with the key which is composed by context, scope, key.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

settingCache

protected org.exoplatform.services.cache.ExoCache<org.exoplatform.commons.api.settings.data.SettingKey,org.exoplatform.commons.api.settings.SettingValue> settingCache

futureExoCache

protected org.exoplatform.services.cache.future.FutureExoCache<org.exoplatform.commons.api.settings.data.SettingKey,org.exoplatform.commons.api.settings.SettingValue,SettingServiceImpl> futureExoCache
Constructor Detail

CacheSettingServiceImpl

public CacheSettingServiceImpl(SettingServiceImpl service,
                               org.exoplatform.services.cache.CacheService cacheService)
Create cache setting service object with service for database and service for cache

Parameters:
service - Setting service for database
cacheService - Cache service
Method Detail

set

public void set(org.exoplatform.commons.api.settings.data.Context context,
                org.exoplatform.commons.api.settings.data.Scope scope,
                String key,
                org.exoplatform.commons.api.settings.SettingValue<?> value)
Set the specified value with the key which is composed by context, scope, key. The value will be saved in the cache and the database

Specified by:
set in interface org.exoplatform.commons.api.settings.SettingService
Parameters:
context - context with which the specified value is to be associated
scope - scope with which the specified value is to be associated
key - key with which the specified value is to be associated
value - value to be associated with the specified key.

get

public org.exoplatform.commons.api.settings.SettingValue<?> get(org.exoplatform.commons.api.settings.data.Context context,
                                                                org.exoplatform.commons.api.settings.data.Scope scope,
                                                                String key)
Get setting value associated with composite key(context, scope, key) This service will search in the cache first and then in the database.

Specified by:
get in interface org.exoplatform.commons.api.settings.SettingService
Returns:
Setting value with type of setting property, and null if the cache and the database doesn't contain the value for the composite key

remove

public void remove(org.exoplatform.commons.api.settings.data.Context context,
                   org.exoplatform.commons.api.settings.data.Scope scope,
                   String key)
Remove all the value associated with the composite key(context,scope,key) in cache and also in database.

Specified by:
remove in interface org.exoplatform.commons.api.settings.SettingService
Parameters:
context - context with which the specified value is to be associated. The context type must be USER and context.id must be not null.
scope - scope with which the specified value is to be associated. The scope.id must be not null.
key - key with which the specified value is to be associated

remove

public void remove(org.exoplatform.commons.api.settings.data.Context context,
                   org.exoplatform.commons.api.settings.data.Scope scope)
remove all the value associated with the specified context and specified scope in cache and database also.

Specified by:
remove in interface org.exoplatform.commons.api.settings.SettingService
Parameters:
context - context with which the specified value is to be associated. The context type must be USER and context.id must be not null.
scope - scope with which the specified value is to be associated. The scope.id must be not null.

remove

public void remove(org.exoplatform.commons.api.settings.data.Context context)
remove all the value associated with the specified context in cache and database also.

Specified by:
remove in interface org.exoplatform.commons.api.settings.SettingService
Parameters:
context - context with which the specified value is to be associated. The context type must be USER and context.id must be not null.


Copyright © 2003–2014 eXo Platform SAS. All rights reserved.