Class CachedPubSubRepository<T>

  • All Implemented Interfaces:
    tigase.kernel.beans.Initializable, IPubSubRepository, tigase.stats.StatisticHolder, tigase.xmpp.mam.MAMRepository<Query,​IPubSubRepository.Item>

    @Bean(name="pubsubRepository",
          parent=PubSubComponent.class,
          active=true)
    public class CachedPubSubRepository<T>
    extends java.lang.Object
    implements IPubSubRepository, tigase.stats.StatisticHolder, tigase.kernel.beans.Initializable
    Implementation of IPubSubRepository interface providing access to the database for data storage with caching.
    Version:
    5.0.0, 2010.03.27 at 05:20:46 GMT
    Author:
    Artur Hefczyc
    • Constructor Detail

      • CachedPubSubRepository

        public CachedPubSubRepository()
    • Method Detail

      • addToRootCollection

        public void addToRootCollection​(tigase.xmpp.jid.BareJID serviceJid,
                                        java.lang.String nodeName)
                                 throws tigase.component.exceptions.RepositoryException
        Specified by:
        addToRootCollection in interface IPubSubRepository
        Throws:
        tigase.component.exceptions.RepositoryException
      • createNode

        public void createNode​(tigase.xmpp.jid.BareJID serviceJid,
                               java.lang.String nodeName,
                               tigase.xmpp.jid.BareJID ownerJid,
                               AbstractNodeConfig nodeConfig,
                               NodeType nodeType,
                               java.lang.String collection)
                        throws tigase.component.exceptions.RepositoryException
        Specified by:
        createNode in interface IPubSubRepository
        Throws:
        tigase.component.exceptions.RepositoryException
      • deleteNode

        public void deleteNode​(tigase.xmpp.jid.BareJID serviceJid,
                               java.lang.String nodeName)
                        throws tigase.component.exceptions.RepositoryException
        Specified by:
        deleteNode in interface IPubSubRepository
        Throws:
        tigase.component.exceptions.RepositoryException
      • everyHour

        public void everyHour()
        Specified by:
        everyHour in interface tigase.stats.StatisticHolder
      • everyMinute

        public void everyMinute()
        Specified by:
        everyMinute in interface tigase.stats.StatisticHolder
      • everySecond

        public void everySecond()
        Specified by:
        everySecond in interface tigase.stats.StatisticHolder
      • forgetConfiguration

        public void forgetConfiguration​(tigase.xmpp.jid.BareJID serviceJid,
                                        java.lang.String nodeName)
                                 throws tigase.component.exceptions.RepositoryException
        Specified by:
        forgetConfiguration in interface IPubSubRepository
        Throws:
        tigase.component.exceptions.RepositoryException
      • getAllNodes

        public java.util.Collection<Node> getAllNodes()
      • getBuddyGroups

        public java.lang.String[] getBuddyGroups​(tigase.xmpp.jid.BareJID owner,
                                                 tigase.xmpp.jid.BareJID bareJid)
                                          throws tigase.component.exceptions.RepositoryException
        Specified by:
        getBuddyGroups in interface IPubSubRepository
        Throws:
        tigase.component.exceptions.RepositoryException
      • getBuddySubscription

        public java.lang.String getBuddySubscription​(tigase.xmpp.jid.BareJID owner,
                                                     tigase.xmpp.jid.BareJID buddy)
                                              throws tigase.component.exceptions.RepositoryException
        Specified by:
        getBuddySubscription in interface IPubSubRepository
        Throws:
        tigase.component.exceptions.RepositoryException
      • getChildNodes

        public java.lang.String[] getChildNodes​(tigase.xmpp.jid.BareJID serviceJid,
                                                java.lang.String nodeName)
                                         throws tigase.component.exceptions.RepositoryException
        Specified by:
        getChildNodes in interface IPubSubRepository
        Throws:
        tigase.component.exceptions.RepositoryException
      • getNodeAffiliations

        public IAffiliations getNodeAffiliations​(tigase.xmpp.jid.BareJID serviceJid,
                                                 java.lang.String nodeName)
                                          throws tigase.component.exceptions.RepositoryException
        Specified by:
        getNodeAffiliations in interface IPubSubRepository
        Throws:
        tigase.component.exceptions.RepositoryException
      • getNodeConfig

        public AbstractNodeConfig getNodeConfig​(tigase.xmpp.jid.BareJID serviceJid,
                                                java.lang.String nodeName)
                                         throws tigase.component.exceptions.RepositoryException
        Specified by:
        getNodeConfig in interface IPubSubRepository
        Throws:
        tigase.component.exceptions.RepositoryException
      • getNodeMeta

        public INodeMeta getNodeMeta​(tigase.xmpp.jid.BareJID serviceJid,
                                     java.lang.String nodeName)
                              throws tigase.component.exceptions.RepositoryException
        Specified by:
        getNodeMeta in interface IPubSubRepository
        Throws:
        tigase.component.exceptions.RepositoryException
      • getNodeItems

        public IItems getNodeItems​(tigase.xmpp.jid.BareJID serviceJid,
                                   java.lang.String nodeName)
                            throws tigase.component.exceptions.RepositoryException
        Specified by:
        getNodeItems in interface IPubSubRepository
        Throws:
        tigase.component.exceptions.RepositoryException
      • getNodeSubscriptions

        public ISubscriptions getNodeSubscriptions​(tigase.xmpp.jid.BareJID serviceJid,
                                                   java.lang.String nodeName)
                                            throws tigase.component.exceptions.RepositoryException
        Specified by:
        getNodeSubscriptions in interface IPubSubRepository
        Throws:
        tigase.component.exceptions.RepositoryException
      • getNodesCount

        public long getNodesCount​(tigase.xmpp.jid.BareJID serviceJID)
                           throws tigase.component.exceptions.RepositoryException
        Specified by:
        getNodesCount in interface IPubSubRepository
        Throws:
        tigase.component.exceptions.RepositoryException
      • setDao

        public void setDao​(IPubSubDAO<T,​tigase.db.DataSource,​Query> dao)
      • getRootCollection

        public java.lang.String[] getRootCollection​(tigase.xmpp.jid.BareJID serviceJid)
                                             throws tigase.component.exceptions.RepositoryException
        Specified by:
        getRootCollection in interface IPubSubRepository
        Throws:
        tigase.component.exceptions.RepositoryException
      • getStatistics

        public void getStatistics​(java.lang.String name,
                                  tigase.stats.StatisticsList stats)
        Specified by:
        getStatistics in interface tigase.stats.StatisticHolder
      • getUserRoster

        public java.util.Map<tigase.xmpp.jid.BareJID,​tigase.xmpp.impl.roster.RosterElement> getUserRoster​(tigase.xmpp.jid.BareJID owner)
                                                                                                         throws tigase.component.exceptions.RepositoryException
        Specified by:
        getUserRoster in interface IPubSubRepository
        Throws:
        tigase.component.exceptions.RepositoryException
      • getUserSubscriptions

        public java.util.Map<java.lang.String,​UsersSubscription> getUserSubscriptions​(tigase.xmpp.jid.BareJID serviceJid,
                                                                                            tigase.xmpp.jid.BareJID userJid)
                                                                                     throws tigase.component.exceptions.RepositoryException
        Specified by:
        getUserSubscriptions in interface IPubSubRepository
        Throws:
        tigase.component.exceptions.RepositoryException
      • initialize

        public void initialize()
        Specified by:
        initialize in interface tigase.kernel.beans.Initializable
      • queryItems

        public void queryItems​(Query query,
                               tigase.xmpp.mam.MAMRepository.ItemHandler<Query,​IPubSubRepository.Item> itemHandler)
                        throws tigase.component.exceptions.RepositoryException,
                               tigase.component.exceptions.ComponentException
        Specified by:
        queryItems in interface tigase.xmpp.mam.MAMRepository<Query,​IPubSubRepository.Item>
        Throws:
        tigase.component.exceptions.RepositoryException
        tigase.component.exceptions.ComponentException
      • removeFromRootCollection

        public void removeFromRootCollection​(tigase.xmpp.jid.BareJID serviceJid,
                                             java.lang.String nodeName)
                                      throws tigase.component.exceptions.RepositoryException
        Specified by:
        removeFromRootCollection in interface IPubSubRepository
        Throws:
        tigase.component.exceptions.RepositoryException
      • setStatisticsPrefix

        public void setStatisticsPrefix​(java.lang.String prefix)
        Specified by:
        setStatisticsPrefix in interface tigase.stats.StatisticHolder
      • statisticExecutedIn

        public void statisticExecutedIn​(long executionTime)
        Specified by:
        statisticExecutedIn in interface tigase.stats.StatisticHolder
      • update

        public void update​(tigase.xmpp.jid.BareJID serviceJid,
                           java.lang.String nodeName,
                           AbstractNodeConfig nodeConfig)
                    throws tigase.component.exceptions.RepositoryException
        Specified by:
        update in interface IPubSubRepository
        Throws:
        tigase.component.exceptions.RepositoryException
      • update

        public void update​(tigase.xmpp.jid.BareJID serviceJid,
                           java.lang.String nodeName,
                           IAffiliations nodeAffiliations)
                    throws tigase.component.exceptions.RepositoryException
        Specified by:
        update in interface IPubSubRepository
        Throws:
        tigase.component.exceptions.RepositoryException
      • update

        public void update​(tigase.xmpp.jid.BareJID serviceJid,
                           java.lang.String nodeName,
                           ISubscriptions nodeSubscriptions)
                    throws tigase.component.exceptions.RepositoryException
        Specified by:
        update in interface IPubSubRepository
        Throws:
        tigase.component.exceptions.RepositoryException
      • onUserRemoved

        public void onUserRemoved​(tigase.xmpp.jid.BareJID userJid)
                           throws tigase.component.exceptions.RepositoryException
        Specified by:
        onUserRemoved in interface IPubSubRepository
        Throws:
        tigase.component.exceptions.RepositoryException
      • getNode

        protected Node getNode​(tigase.xmpp.jid.BareJID serviceJid,
                               java.lang.String nodeName)
                        throws tigase.component.exceptions.RepositoryException
        Throws:
        tigase.component.exceptions.RepositoryException
      • getNodeFromCache

        protected Node getNodeFromCache​(tigase.xmpp.jid.BareJID serviceJid,
                                        java.lang.String nodeName)
      • getRootCollectionSet

        protected IPubSubRepository.RootCollectionSetIfc getRootCollectionSet​(tigase.xmpp.jid.BareJID serviceJid)
                                                                       throws tigase.component.exceptions.RepositoryException
        Throws:
        tigase.component.exceptions.RepositoryException
      • loadRootCollections

        protected void loadRootCollections​(CachedPubSubRepository.RootCollectionSet rootCollection)
                                    throws tigase.component.exceptions.RepositoryException
        Throws:
        tigase.component.exceptions.RepositoryException
      • getNodeAndSubnodes

        protected java.util.List<Node<T>> getNodeAndSubnodes​(tigase.xmpp.jid.BareJID serviceJid,
                                                             java.lang.String nodeName,
                                                             java.util.function.Predicate<Node<T>> filterWithSubnodes,
                                                             java.util.function.Predicate<Node<T>> filter)
                                                      throws tigase.component.exceptions.RepositoryException,
                                                             tigase.component.exceptions.ComponentException
        Throws:
        tigase.component.exceptions.RepositoryException
        tigase.component.exceptions.ComponentException
      • hasAccessPermission

        protected boolean hasAccessPermission​(Node node,
                                              tigase.xmpp.jid.JID requester)
      • userRemoved

        protected void userRemoved​(tigase.xmpp.jid.BareJID userJid)
      • nodeCollectionChanged

        protected void nodeCollectionChanged​(tigase.xmpp.jid.BareJID serviceJid,
                                             java.lang.String nodeName,
                                             java.lang.String oldCollection,
                                             java.lang.String newCollection)