Class ConfigRepository<Item extends RepositoryItem>

    • Field Detail

      • autoReloadInterval

        @ConfigField(desc="Automatic items load interval",
                     alias="repo-autoreload-interval")
        protected long autoReloadInterval
      • itemsHash

        protected int itemsHash
    • Constructor Detail

      • ConfigRepository

        public ConfigRepository()
    • Method Detail

      • setAutoReloadInterval

        public void setAutoReloadInterval​(long autoLoadInterval)
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • getConfigKey

        public abstract java.lang.String getConfigKey()
      • getDefaultItems

        public Item[] getDefaultItems()
      • getDefaultPropetyItems

        @Deprecated
        public java.lang.String[] getDefaultPropetyItems()
        Deprecated.
      • getPropertyKey

        @Deprecated
        public abstract java.lang.String getPropertyKey()
        Deprecated.
      • addItem

        public void addItem​(Item item)
        Description copied from interface: ComponentRepository
        The method adds a new or updates existing Item in the repository. It needs to have all fields set correctly. After this method call is finished a new added item must be available in the component repository. The method adds the item to memory cache and permanent storage.
        Specified by:
        addItem in interface ComponentRepository<Item extends RepositoryItem>
        Parameters:
        item - a Item with all it's configuration parameters.
      • addItemNoStore

        public void addItemNoStore​(Item item)
        Description copied from interface: ComponentRepository
        The method adds a new or updates existing Item. It needs to have all fields set correctly. After this method call is finished a new added item must be available in the component repository. The method adds the item to memory cache but not to a permanent storage.
        Specified by:
        addItemNoStore in interface ComponentRepository<Item extends RepositoryItem>
        Parameters:
        item - a Item with all it's configuration parameters.
      • itemChanged

        public boolean itemChanged​(Item oldItem,
                                   Item newItem)
      • contains

        public boolean contains​(java.lang.String key)
        Description copied from interface: ComponentRepository
        The method checks whether the item is stored in the repository.
        Specified by:
        contains in interface ComponentRepository<Item extends RepositoryItem>
        Parameters:
        key - a String with key to search for.
        Returns:
        a boolean value true if the item exists in the repository or false of it does not.
      • getDefaults

        @Deprecated
        public void getDefaults​(java.util.Map<java.lang.String,​java.lang.Object> defs,
                                java.util.Map<java.lang.String,​java.lang.Object> params)
        Deprecated.
        Description copied from interface: ComponentRepository
        The method is called to obtain default configuration settings if there are any for this repository implementation The configuration settings are implementation dependent and there are no defaults set by the server. Default settings returned by this method are then saved in the configuration file and presented to the admin for further adjustments.
        Specified by:
        getDefaults in interface ComponentRepository<Item extends RepositoryItem>
        Parameters:
        defs - is a Map collection where all repository configuration defaults must be put.
        params - is a Map collection with some preset properties for the server. These settings can be used to adjust repository defaults, for example they can contain database connection URL or initial list of virtual domains.
      • getItem

        public Item getItem​(java.lang.String key)
        Description copied from interface: ComponentRepository
        The method returns all item configuration parameters for a key or null if the item does not exist in the repository.
        Specified by:
        getItem in interface ComponentRepository<Item extends RepositoryItem>
        Parameters:
        key - a String with item identifier to search for.
        Returns:
        a Item for a given key or null if the item is not in the repository.
      • getItemsOld

        @Deprecated
        public java.lang.String[] getItemsOld()
        Deprecated.
      • setItemsOld

        @Deprecated
        public void setItemsOld​(java.lang.String[] items_arr)
        Deprecated.
      • iterator

        public java.util.Iterator<Item> iterator()
        Specified by:
        iterator in interface java.lang.Iterable<Item extends RepositoryItem>
      • reload

        public void reload()
        Description copied from interface: ComponentRepository
        This method is called to reload items from the database or other permanent storage. It is possible that items list is modified externally by third-party system. When all modifications are done this method is called to refresh the class cache. Whether the implementation load whole list or just last modifications is implementation dependent.
        Specified by:
        reload in interface ComponentRepository<Item extends RepositoryItem>
      • removeItem

        public void removeItem​(java.lang.String key)
        Description copied from interface: ComponentRepository
        The method is called to remove given Item from the memory cache and permanent storage. After this method is completed the item should no longer be available in the component repository.
        Specified by:
        removeItem in interface ComponentRepository<Item extends RepositoryItem>
        Parameters:
        key - a String with domain name to remove.
      • setProperties

        @Deprecated
        public void setProperties​(java.util.Map<java.lang.String,​java.lang.Object> properties)
        Deprecated.
        Description copied from interface: ComponentRepository
        The method is called to set configuration for this repository implementation. The configuration is repository implementation dependent. There are no default settings for the repository.
        Specified by:
        setProperties in interface ComponentRepository<Item extends RepositoryItem>
        Parameters:
        properties - a Map with configuration settings. Content of this Map must not be modified. This read-only collection.
      • store

        public void store()
        Description copied from interface: ComponentRepository
        The method is called to store all data in the database. It is used when the repository has been changed in some way and the changes have to be put to a permanent storage for later retrieval.
        Specified by:
        store in interface ComponentRepository<Item extends RepositoryItem>
      • validateItem

        public java.lang.String validateItem​(Item item)
        Description copied from interface: ComponentRepository
        Performs Item validation to check whether it meets the repository policy. If validation is successful the method returns null, otherwise it returns an error description.
        Specified by:
        validateItem in interface ComponentRepository<Item extends RepositoryItem>
        Parameters:
        item - is an Item object to perform validation checking upon.
        Returns:
        null on success and an error message otherwise.
      • initialize

        public void initialize()
        Description copied from interface: Initializable
        Method will be called, when bean will be created, configured and ready to use.
        Specified by:
        initialize in interface Initializable
      • initItemsMap

        protected void initItemsMap()
        Method create instance of items Map. By overriding it it's possible to change implementation and it's settings.
      • isInitialized

        protected boolean isInitialized()