Class MongoMessageArchiveRepository

  • All Implemented Interfaces:
    tigase.archive.db.MessageArchiveRepository<tigase.archive.QueryCriteria,​MongoDataSource>, tigase.db.DataSourceAware<MongoDataSource>, tigase.db.util.RepositoryVersionAware, MongoRepositoryVersionAware, tigase.xmpp.mam.MAMRepository<tigase.archive.QueryCriteria,​tigase.xmpp.mam.MAMRepository.Item>

    public class MongoMessageArchiveRepository
    extends tigase.archive.db.AbstractMessageArchiveRepository<tigase.archive.QueryCriteria,​MongoDataSource>
    implements MongoRepositoryVersionAware
    Author:
    andrzej
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  MongoMessageArchiveRepository.Item<Q extends tigase.archive.QueryCriteria>  
      • Nested classes/interfaces inherited from interface tigase.xmpp.mam.MAMRepository

        tigase.xmpp.mam.MAMRepository.ItemHandler<Q extends tigase.xmpp.mam.Query,​I extends tigase.xmpp.mam.MAMRepository.Item>
      • Nested classes/interfaces inherited from interface tigase.archive.db.MessageArchiveRepository

        tigase.archive.db.MessageArchiveRepository.CollectionHandler<Q extends tigase.xmpp.mam.Query>, tigase.archive.db.MessageArchiveRepository.Direction
      • Nested classes/interfaces inherited from interface tigase.db.util.RepositoryVersionAware

        tigase.db.util.RepositoryVersionAware.SchemaVersion
    • Field Summary

      • Fields inherited from class tigase.archive.db.AbstractMessageArchiveRepository

        MSG_SUBJECT_PATH
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void archiveMessage​(tigase.xmpp.jid.BareJID ownerJid, tigase.xmpp.jid.JID buddyJid, tigase.archive.db.MessageArchiveRepository.Direction direction, java.util.Date timestamp, tigase.xml.Element msg, java.util.Set<java.lang.String> tags)  
      org.bson.Document createCriteriaDocument​(tigase.archive.QueryCriteria query)  
      void deleteExpiredMessages​(tigase.xmpp.jid.BareJID owner, java.time.LocalDateTime before)  
      java.util.List<java.lang.String> getTags​(tigase.xmpp.jid.BareJID owner, java.lang.String startsWith, tigase.archive.QueryCriteria criteria)  
      tigase.archive.QueryCriteria newQuery()  
      void queryCollections​(tigase.archive.QueryCriteria query, tigase.archive.db.MessageArchiveRepository.CollectionHandler<tigase.archive.QueryCriteria> collectionHandler)  
      void queryItems​(tigase.archive.QueryCriteria query, tigase.xmpp.mam.MAMRepository.ItemHandler<tigase.archive.QueryCriteria,​tigase.xmpp.mam.MAMRepository.Item> itemHandler)  
      void removeItems​(tigase.xmpp.jid.BareJID owner, java.lang.String with, java.util.Date start, java.util.Date end)  
      void setDataSource​(MongoDataSource dataSource)  
      tigase.db.util.SchemaLoader.Result updateSchema​(java.util.Optional<tigase.util.Version> oldVersion, tigase.util.Version newVersion)  
      • Methods inherited from class tigase.archive.db.AbstractMessageArchiveRepository

        calculateOffsetAndPosition, generateHashOfMessage
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface tigase.archive.db.MessageArchiveRepository

        destroy
    • Constructor Detail

      • MongoMessageArchiveRepository

        public MongoMessageArchiveRepository()
    • Method Detail

      • archiveMessage

        public void archiveMessage​(tigase.xmpp.jid.BareJID ownerJid,
                                   tigase.xmpp.jid.JID buddyJid,
                                   tigase.archive.db.MessageArchiveRepository.Direction direction,
                                   java.util.Date timestamp,
                                   tigase.xml.Element msg,
                                   java.util.Set<java.lang.String> tags)
        Specified by:
        archiveMessage in interface tigase.archive.db.MessageArchiveRepository<tigase.archive.QueryCriteria,​MongoDataSource>
      • createCriteriaDocument

        public org.bson.Document createCriteriaDocument​(tigase.archive.QueryCriteria query)
                                                 throws tigase.db.TigaseDBException
        Throws:
        tigase.db.TigaseDBException
      • deleteExpiredMessages

        public void deleteExpiredMessages​(tigase.xmpp.jid.BareJID owner,
                                          java.time.LocalDateTime before)
                                   throws tigase.db.TigaseDBException
        Specified by:
        deleteExpiredMessages in interface tigase.archive.db.MessageArchiveRepository<tigase.archive.QueryCriteria,​MongoDataSource>
        Throws:
        tigase.db.TigaseDBException
      • getTags

        public java.util.List<java.lang.String> getTags​(tigase.xmpp.jid.BareJID owner,
                                                        java.lang.String startsWith,
                                                        tigase.archive.QueryCriteria criteria)
                                                 throws tigase.db.TigaseDBException
        Specified by:
        getTags in interface tigase.archive.db.MessageArchiveRepository<tigase.archive.QueryCriteria,​MongoDataSource>
        Throws:
        tigase.db.TigaseDBException
      • newQuery

        public tigase.archive.QueryCriteria newQuery()
        Specified by:
        newQuery in interface tigase.xmpp.mam.MAMRepository<tigase.archive.QueryCriteria,​tigase.xmpp.mam.MAMRepository.Item>
      • queryCollections

        public void queryCollections​(tigase.archive.QueryCriteria query,
                                     tigase.archive.db.MessageArchiveRepository.CollectionHandler<tigase.archive.QueryCriteria> collectionHandler)
                              throws tigase.db.TigaseDBException
        Specified by:
        queryCollections in interface tigase.archive.db.MessageArchiveRepository<tigase.archive.QueryCriteria,​MongoDataSource>
        Throws:
        tigase.db.TigaseDBException
      • queryItems

        public void queryItems​(tigase.archive.QueryCriteria query,
                               tigase.xmpp.mam.MAMRepository.ItemHandler<tigase.archive.QueryCriteria,​tigase.xmpp.mam.MAMRepository.Item> itemHandler)
                        throws tigase.db.TigaseDBException
        Specified by:
        queryItems in interface tigase.xmpp.mam.MAMRepository<tigase.archive.QueryCriteria,​tigase.xmpp.mam.MAMRepository.Item>
        Throws:
        tigase.db.TigaseDBException
      • removeItems

        public void removeItems​(tigase.xmpp.jid.BareJID owner,
                                java.lang.String with,
                                java.util.Date start,
                                java.util.Date end)
                         throws tigase.db.TigaseDBException
        Specified by:
        removeItems in interface tigase.archive.db.MessageArchiveRepository<tigase.archive.QueryCriteria,​MongoDataSource>
        Throws:
        tigase.db.TigaseDBException
      • setDataSource

        public void setDataSource​(MongoDataSource dataSource)
        Specified by:
        setDataSource in interface tigase.db.DataSourceAware<MongoDataSource>
      • updateSchema

        public tigase.db.util.SchemaLoader.Result updateSchema​(java.util.Optional<tigase.util.Version> oldVersion,
                                                               tigase.util.Version newVersion)
                                                        throws tigase.db.TigaseDBException
        Specified by:
        updateSchema in interface tigase.db.util.RepositoryVersionAware
        Throws:
        tigase.db.TigaseDBException