Class SharedFilterConfigurationMapper

  • All Implemented Interfaces:
    Iterable<net.sf.okapi.common.filters.FilterConfiguration>, net.sf.okapi.common.filters.IFilterConfigurationMapper

    public class SharedFilterConfigurationMapper
    extends Object
    implements net.sf.okapi.common.filters.IFilterConfigurationMapper
    Thread-safe implementation of IFilterConfigurationMapper that provides a shared, unified view of filter configurations across all threads.

    Key Differences from ThreadSafeFilterConfigurationMapper:

    • Uses ConcurrentHashMap for shared configuration storage
    • Provides consistent view of configurations across all threads
    • Eliminates thread-local storage overhead
    • Better suited for applications requiring configuration consistency

    Thread Safety:

    • All read operations are lock-free and thread-safe
    • Write operations use appropriate synchronization
    • Configuration updates are atomic at the individual configuration level
    Author:
    Okapi Framework Development Team
    • Constructor Detail

      • SharedFilterConfigurationMapper

        public SharedFilterConfigurationMapper()
        Creates an empty SharedFilterConfigurationMapper. Initializes with an empty ConcurrentHashMap.
      • SharedFilterConfigurationMapper

        public SharedFilterConfigurationMapper​(Map<String,​net.sf.okapi.common.filters.FilterConfiguration> initialConfigs)
        Creates a SharedFilterConfigurationMapper with pre-loaded configurations.
        Parameters:
        initialConfigs - initial map of filter configurations to populate the mapper
      • SharedFilterConfigurationMapper

        public SharedFilterConfigurationMapper​(Supplier<Map<String,​net.sf.okapi.common.filters.FilterConfiguration>> fcSupplier)
        Creates a SharedFilterConfigurationMapper using a supplier for initial configurations.
        Parameters:
        fcSupplier - supplier that provides the initial map of filter configurations
    • Method Detail

      • addCustomConfiguration

        public void addCustomConfiguration​(String configId,
                                           net.sf.okapi.common.IParameters parameters)
        Specified by:
        addCustomConfiguration in interface net.sf.okapi.common.filters.IFilterConfigurationMapper
      • addCustomConfiguration

        public void addCustomConfiguration​(String configId,
                                           String parameters)
        Specified by:
        addCustomConfiguration in interface net.sf.okapi.common.filters.IFilterConfigurationMapper
      • addConfigurations

        public void addConfigurations​(String filterClass)
        Specified by:
        addConfigurations in interface net.sf.okapi.common.filters.IFilterConfigurationMapper
      • addConfiguration

        public void addConfiguration​(net.sf.okapi.common.filters.FilterConfiguration config)
        Specified by:
        addConfiguration in interface net.sf.okapi.common.filters.IFilterConfigurationMapper
      • createFilter

        public net.sf.okapi.common.filters.IFilter createFilter​(String configId,
                                                                net.sf.okapi.common.filters.IFilter existingFilter)
        Specified by:
        createFilter in interface net.sf.okapi.common.filters.IFilterConfigurationMapper
      • clearConfigurations

        public void clearConfigurations​(boolean customOnly)
        Specified by:
        clearConfigurations in interface net.sf.okapi.common.filters.IFilterConfigurationMapper
      • createFilter

        public net.sf.okapi.common.filters.IFilter createFilter​(String configId)
        Specified by:
        createFilter in interface net.sf.okapi.common.filters.IFilterConfigurationMapper
      • getConfiguration

        public net.sf.okapi.common.filters.FilterConfiguration getConfiguration​(String configId)
        Specified by:
        getConfiguration in interface net.sf.okapi.common.filters.IFilterConfigurationMapper
      • getDefaultConfiguration

        public net.sf.okapi.common.filters.FilterConfiguration getDefaultConfiguration​(String mimeType)
        Specified by:
        getDefaultConfiguration in interface net.sf.okapi.common.filters.IFilterConfigurationMapper
      • getDefaultConfigurationFromExtension

        public net.sf.okapi.common.filters.FilterConfiguration getDefaultConfigurationFromExtension​(String ext)
        Specified by:
        getDefaultConfigurationFromExtension in interface net.sf.okapi.common.filters.IFilterConfigurationMapper
      • getParameters

        public net.sf.okapi.common.IParameters getParameters​(net.sf.okapi.common.filters.FilterConfiguration config)
        Specified by:
        getParameters in interface net.sf.okapi.common.filters.IFilterConfigurationMapper
      • getParameters

        public net.sf.okapi.common.IParameters getParameters​(net.sf.okapi.common.filters.FilterConfiguration config,
                                                             net.sf.okapi.common.filters.IFilter existingFilter)
        Specified by:
        getParameters in interface net.sf.okapi.common.filters.IFilterConfigurationMapper
      • createCustomConfiguration

        public net.sf.okapi.common.filters.FilterConfiguration createCustomConfiguration​(net.sf.okapi.common.filters.FilterConfiguration baseConfig)
        Specified by:
        createCustomConfiguration in interface net.sf.okapi.common.filters.IFilterConfigurationMapper
      • getCustomParameters

        public net.sf.okapi.common.IParameters getCustomParameters​(net.sf.okapi.common.filters.FilterConfiguration config,
                                                                   net.sf.okapi.common.filters.IFilter existingFilter)
        Specified by:
        getCustomParameters in interface net.sf.okapi.common.filters.IFilterConfigurationMapper
      • getCustomParameters

        public net.sf.okapi.common.IParameters getCustomParameters​(net.sf.okapi.common.filters.FilterConfiguration config)
        Specified by:
        getCustomParameters in interface net.sf.okapi.common.filters.IFilterConfigurationMapper
      • getAllConfigurations

        public Iterator<net.sf.okapi.common.filters.FilterConfiguration> getAllConfigurations()
        Specified by:
        getAllConfigurations in interface net.sf.okapi.common.filters.IFilterConfigurationMapper
      • getFilterConfigurations

        public List<net.sf.okapi.common.filters.FilterConfiguration> getFilterConfigurations​(String filterClass)
        Specified by:
        getFilterConfigurations in interface net.sf.okapi.common.filters.IFilterConfigurationMapper
      • createConfigurationEditor

        public net.sf.okapi.common.IParametersEditor createConfigurationEditor​(String configId,
                                                                               net.sf.okapi.common.filters.IFilter existingFilter)
        Specified by:
        createConfigurationEditor in interface net.sf.okapi.common.filters.IFilterConfigurationMapper
      • createConfigurationEditor

        public net.sf.okapi.common.IParametersEditor createConfigurationEditor​(String configId)
        Specified by:
        createConfigurationEditor in interface net.sf.okapi.common.filters.IFilterConfigurationMapper
      • getFiltersInfo

        public List<net.sf.okapi.common.filters.FilterInfo> getFiltersInfo()
        Specified by:
        getFiltersInfo in interface net.sf.okapi.common.filters.IFilterConfigurationMapper
      • getMimeConfigurations

        public List<net.sf.okapi.common.filters.FilterConfiguration> getMimeConfigurations​(String mimeType)
        Specified by:
        getMimeConfigurations in interface net.sf.okapi.common.filters.IFilterConfigurationMapper
      • removeConfiguration

        public void removeConfiguration​(String configId)
        Specified by:
        removeConfiguration in interface net.sf.okapi.common.filters.IFilterConfigurationMapper
      • iterator

        public Iterator<net.sf.okapi.common.filters.FilterConfiguration> iterator()
        Specified by:
        iterator in interface Iterable<net.sf.okapi.common.filters.FilterConfiguration>
      • forEach

        public void forEach​(Consumer<? super net.sf.okapi.common.filters.FilterConfiguration> action)
        Specified by:
        forEach in interface Iterable<net.sf.okapi.common.filters.FilterConfiguration>
      • spliterator

        public Spliterator<net.sf.okapi.common.filters.FilterConfiguration> spliterator()
        Specified by:
        spliterator in interface Iterable<net.sf.okapi.common.filters.FilterConfiguration>
      • removeConfigurations

        public void removeConfigurations​(String filterClass)
        Specified by:
        removeConfigurations in interface net.sf.okapi.common.filters.IFilterConfigurationMapper
      • saveCustomParameters

        public void saveCustomParameters​(net.sf.okapi.common.filters.FilterConfiguration config,
                                         net.sf.okapi.common.IParameters params)
        Specified by:
        saveCustomParameters in interface net.sf.okapi.common.filters.IFilterConfigurationMapper
      • deleteCustomParameters

        public void deleteCustomParameters​(net.sf.okapi.common.filters.FilterConfiguration config)
        Specified by:
        deleteCustomParameters in interface net.sf.okapi.common.filters.IFilterConfigurationMapper