001package com.nimbusds.infinispan.persistence.ldap;
002
003
004import java.util.Properties;
005
006import org.infinispan.configuration.cache.AbstractStoreConfiguration;
007import org.infinispan.configuration.cache.AbstractStoreConfigurationBuilder;
008import org.infinispan.configuration.cache.PersistenceConfigurationBuilder;
009
010
011/**
012 * LDAP store configuration builder.
013 *
014 * <p>Used by the Infinispan ConfigurationBuilder to implement fluent
015 * configuration for the LDAP CacheLoader / CacheWriter. Methods should use
016 * the fluent style, rather than the setter/getter style and should return an
017 * instance of this object.
018 */
019public class LDAPStoreConfigurationBuilder extends AbstractStoreConfigurationBuilder<LDAPStoreConfiguration,LDAPStoreConfigurationBuilder> {
020
021
022        public LDAPStoreConfigurationBuilder(final PersistenceConfigurationBuilder builder) {
023                super(builder, AbstractStoreConfiguration.attributeDefinitionSet());
024        }
025
026
027        @Override
028        public LDAPStoreConfiguration create() {
029                // This method should construct a new instance of a
030                // LDAPStoreConfiguration object. There will be one instance
031                // per cache.
032                return new LDAPStoreConfiguration(
033                        purgeOnStartup,
034                        fetchPersistentState,
035                        ignoreModifications,
036                        async.create(),
037                        singletonStore.create(),
038                        preload,
039                        shared,
040                        properties);
041        }
042
043
044        @Override
045        public LDAPStoreConfigurationBuilder withProperties(final Properties properties) {
046                return properties(properties);
047        }
048
049
050        @Override
051        public LDAPStoreConfigurationBuilder self() {
052                return this;
053        }
054}