Interface ComponentRepository<Item extends RepositoryItem>

    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String COMP_REPO_BIND  
    • Method Summary

      All Methods Instance Methods Abstract Methods Deprecated Methods 
      Modifier and Type Method Description
      void addItem​(Item item)
      The method adds a new or updates existing Item in the repository.
      void addItemNoStore​(Item item)
      The method adds a new or updates existing Item.
      void addRepoChangeListener​(RepositoryChangeListenerIfc<Item> repoChangeListener)
      Adds a listener for repository Item change.
      java.util.Collection<Item> allItems()
      Returns a collection with all items stored in the repository.
      boolean contains​(java.lang.String key)
      The method checks whether the item is stored in the repository.
      void destroy()
      Method destroys this instance of ComponentRepository releasing resources allocated for this instance of ComponentRepository if possible
      void getDefaults​(java.util.Map<java.lang.String,​java.lang.Object> defs, java.util.Map<java.lang.String,​java.lang.Object> params)
      Deprecated.
      Item getItem​(java.lang.String key)
      The method returns all item configuration parameters for a key or null if the item does not exist in the repository.
      Item getItemInstance()
      Creates a new, uninitialized instance of the repository Item.
      void reload()
      This method is called to reload items from the database or other permanent storage.
      void removeItem​(java.lang.String key)
      The method is called to remove given Item from the memory cache and permanent storage.
      void removeItemNoStore​(java.lang.String key)  
      void removeRepoChangeListener​(RepositoryChangeListenerIfc<Item> repoChangeListener)
      Removes a listener for repository Item change.
      void setAutoloadTimer​(long delay)
      Sets autoload task to periodically reload data from database.
      void setProperties​(java.util.Map<java.lang.String,​java.lang.Object> properties)
      Deprecated.
      int size()
      The method returns number of items in the repository.
      void store()
      The method is called to store all data in the database.
      java.lang.String validateItem​(Item item)
      Performs Item validation to check whether it meets the repository policy.
      • Methods inherited from interface java.lang.Iterable

        forEach, iterator, spliterator
    • Method Detail

      • removeRepoChangeListener

        void removeRepoChangeListener​(RepositoryChangeListenerIfc<Item> repoChangeListener)
        Removes a listener for repository Item change.
      • addItem

        void addItem​(Item item)
              throws TigaseDBException
        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.
        Parameters:
        item - a Item with all it's configuration parameters.
        Throws:
        TigaseDBException
      • addItemNoStore

        void addItemNoStore​(Item item)
        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.
        Parameters:
        item - a Item with all it's configuration parameters.
      • contains

        boolean contains​(java.lang.String key)
        The method checks whether the item is stored in the repository.
        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.
      • destroy

        void destroy()
        Method destroys this instance of ComponentRepository releasing resources allocated for this instance of ComponentRepository if possible
      • getDefaults

        @Deprecated
        void getDefaults​(java.util.Map<java.lang.String,​java.lang.Object> defs,
                         java.util.Map<java.lang.String,​java.lang.Object> params)
        Deprecated.
        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.
        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

        Item getItem​(java.lang.String key)
        The method returns all item configuration parameters for a key or null if the item does not exist in the repository.
        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.
      • getItemInstance

        Item getItemInstance()
        Creates a new, uninitialized instance of the repository Item.
        Returns:
        a new, uninitialized instance of the repository Item.
      • reload

        void reload()
             throws TigaseDBException
        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.
        Throws:
        TigaseDBException
      • removeItem

        void removeItem​(java.lang.String key)
                 throws TigaseDBException
        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.
        Parameters:
        key - a String with domain name to remove.
        Throws:
        TigaseDBException
      • removeItemNoStore

        void removeItemNoStore​(java.lang.String key)
      • setProperties

        @Deprecated
        void setProperties​(java.util.Map<java.lang.String,​java.lang.Object> properties)
        Deprecated.
        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.
        Parameters:
        properties - a Map with configuration settings. Content of this Map must not be modified. This read-only collection.
      • size

        int size()
        The method returns number of items in the repository.
        Returns:
        an int value with number of items in the repository.
      • store

        void store()
            throws TigaseDBException
        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.
        Throws:
        TigaseDBException
      • validateItem

        java.lang.String validateItem​(Item item)
        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.
        Parameters:
        item - is an Item object to perform validation checking upon.
        Returns:
        null on success and an error message otherwise.
      • setAutoloadTimer

        void setAutoloadTimer​(long delay)
        Sets autoload task to periodically reload data from database.
        Parameters:
        delay - in seconds between each database reload.