@Override
 public CassandraCacheStoreConfiguration create() {
   List<CassandraServerConfiguration> remoteServers =
       new ArrayList<CassandraServerConfiguration>();
   for (CassandraServerConfigurationBuilder server : servers) {
     remoteServers.add(server.create());
   }
   return new CassandraCacheStoreConfiguration(
       autoCreateKeyspace,
       configurationPropertiesFile,
       entryColumnFamily,
       expirationColumnFamily,
       framed,
       remoteServers,
       keyMapper,
       keySpace,
       password,
       sharedKeyspace,
       username,
       readConsistencyLevel,
       writeConsistencyLevel,
       autoCreateKeyspace,
       sharedKeyspace,
       purgerThreads,
       framed,
       autoCreateKeyspace,
       TypedProperties.toTypedProperties(properties),
       async.create(),
       singletonStore.create());
 }
 @Override
 public CountingCacheStoreConfiguration create() {
   return new CountingCacheStoreConfiguration(
       purgeOnStartup,
       purgeSynchronously,
       purgerThreads,
       fetchPersistentState,
       ignoreModifications,
       TypedProperties.toTypedProperties(properties),
       async.create(),
       singletonStore.create());
 }
 @Override
 public LevelDBCacheStoreConfiguration create() {
   return new LevelDBCacheStoreConfiguration(
       location,
       expiredLocation,
       implementationType,
       compressionType,
       blockSize,
       cacheSize,
       expiryQueueSize,
       clearThreshold,
       lockAcquistionTimeout,
       lockConcurrencyLevel,
       purgeOnStartup,
       purgeSynchronously,
       purgerThreads,
       fetchPersistentState,
       ignoreModifications,
       TypedProperties.toTypedProperties(properties),
       async.create(),
       singletonStore.create());
 }
 public InterceptorConfigurationBuilder removeProperty(String key) {
   TypedProperties properties = attributes.attribute(PROPERTIES).get();
   properties.remove(key);
   attributes.attribute(PROPERTIES).set(TypedProperties.toTypedProperties(properties));
   return this;
 }
 public InterceptorConfigurationBuilder addProperty(String key, String value) {
   TypedProperties properties = attributes.attribute(PROPERTIES).get();
   properties.put(key, value);
   attributes.attribute(PROPERTIES).set(TypedProperties.toTypedProperties(properties));
   return this;
 }
 /**
  * Clears the interceptor properties
  *
  * @return this InterceptorConfigurationBuilder
  */
 public InterceptorConfigurationBuilder clearProperties() {
   TypedProperties properties = attributes.attribute(PROPERTIES).get();
   properties.clear();
   attributes.attribute(PROPERTIES).set(TypedProperties.toTypedProperties(properties));
   return this;
 }
 /**
  * Sets interceptor properties
  *
  * @return this InterceptorConfigurationBuilder
  */
 public InterceptorConfigurationBuilder withProperties(Properties properties) {
   attributes.attribute(PROPERTIES).set(TypedProperties.toTypedProperties(properties));
   return this;
 }