Class MongoHistoryProvider

java.lang.Object
tigase.muc.history.AbstractHistoryProvider<MongoDataSource>
tigase.mongodb.muc.MongoHistoryProvider
All Implemented Interfaces:
tigase.db.DataSourceAware<MongoDataSource>, tigase.db.util.RepositoryVersionAware, MongoRepositoryVersionAware, tigase.muc.history.ExtendedMAMRepository, tigase.muc.history.HistoryProvider<MongoDataSource>, tigase.xmpp.mam.MAMRepository

public class MongoHistoryProvider extends tigase.muc.history.AbstractHistoryProvider<MongoDataSource> implements MongoRepositoryVersionAware, tigase.muc.history.ExtendedMAMRepository
Author:
andrzej
  • Nested Class Summary

    Nested classes/interfaces inherited from interface tigase.xmpp.mam.MAMRepository

    tigase.xmpp.mam.MAMRepository.Item, 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.db.util.RepositoryVersionAware

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

    Fields
    Modifier and Type
    Field
    Description
    protected com.mongodb.client.MongoCollection<org.bson.Document>
     

    Fields inherited from class tigase.muc.history.AbstractHistoryProvider

    log, parser
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    addJoinEvent(tigase.muc.Room room, Date date, tigase.xmpp.jid.JID senderJID, String nickName)
     
    void
    addLeaveEvent(tigase.muc.Room room, Date date, tigase.xmpp.jid.JID senderJID, String nickName)
     
    void
    addMessage(tigase.muc.Room room, tigase.xml.Element message, String body, tigase.xmpp.jid.JID senderJid, String senderNickname, Date time)
    Deprecated.
    void
    addMessage(tigase.muc.Room room, tigase.xml.Element message, String body, tigase.xmpp.jid.JID senderJid, String senderNickname, Date time, String stableId)
     
    void
    addSubjectChange(tigase.muc.Room room, tigase.xml.Element message, String subject, tigase.xmpp.jid.JID senderJid, String senderNickname, Date time)
     
    protected byte[]
     
    void
     
    protected byte[]
    generateId(tigase.xmpp.jid.BareJID user)
     
    void
    getHistoryMessages(tigase.muc.Room room, tigase.xmpp.jid.JID senderJID, Integer maxchars, Integer maxstanzas, Integer seconds, Date since, tigase.component.PacketWriter writer)
     
    tigase.xmpp.mam.MAMRepository.Item
    getItem(tigase.xmpp.jid.BareJID owner, String stableId)
     
    boolean
    isPersistent(tigase.muc.Room room)
     
    tigase.xmpp.mam.Query
     
    void
    queryItems(tigase.xmpp.mam.Query query, tigase.xmpp.mam.MAMRepository.ItemHandler itemHandler)
     
    void
    removeHistory(tigase.muc.Room room)
     
    void
     
    void
    updateMessage(tigase.xmpp.jid.BareJID owner, String stableId, tigase.xml.Element msg, String body)
     
    tigase.db.util.SchemaLoader.Result
    updateSchema(Optional<tigase.util.Version> oldVersion, tigase.util.Version newVersion)
     

    Methods inherited from class tigase.muc.history.AbstractHistoryProvider

    calculateOffsetAndPosition, createMessage, createMessage, createMessageElement, isAllowedToSeeJIDs, parseMessage

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface tigase.xmpp.mam.MAMRepository

    newQuery

    Methods inherited from interface tigase.mongodb.MongoRepositoryVersionAware

    getVersion
  • Field Details

    • historyCollection

      protected com.mongodb.client.MongoCollection<org.bson.Document> historyCollection
  • Constructor Details

    • MongoHistoryProvider

      public MongoHistoryProvider()
  • Method Details

    • addJoinEvent

      public void addJoinEvent(tigase.muc.Room room, Date date, tigase.xmpp.jid.JID senderJID, String nickName)
      Specified by:
      addJoinEvent in interface tigase.muc.history.HistoryProvider<MongoDataSource>
    • addLeaveEvent

      public void addLeaveEvent(tigase.muc.Room room, Date date, tigase.xmpp.jid.JID senderJID, String nickName)
      Specified by:
      addLeaveEvent in interface tigase.muc.history.HistoryProvider<MongoDataSource>
    • addMessage

      @Deprecated public void addMessage(tigase.muc.Room room, tigase.xml.Element message, String body, tigase.xmpp.jid.JID senderJid, String senderNickname, Date time)
      Deprecated.
      Specified by:
      addMessage in interface tigase.muc.history.HistoryProvider<MongoDataSource>
    • addMessage

      public void addMessage(tigase.muc.Room room, tigase.xml.Element message, String body, tigase.xmpp.jid.JID senderJid, String senderNickname, Date time, String stableId)
      Specified by:
      addMessage in interface tigase.muc.history.HistoryProvider<MongoDataSource>
    • addSubjectChange

      public void addSubjectChange(tigase.muc.Room room, tigase.xml.Element message, String subject, tigase.xmpp.jid.JID senderJid, String senderNickname, Date time)
      Specified by:
      addSubjectChange in interface tigase.muc.history.HistoryProvider<MongoDataSource>
    • getItem

      public tigase.xmpp.mam.MAMRepository.Item getItem(tigase.xmpp.jid.BareJID owner, String stableId) throws tigase.component.exceptions.RepositoryException
      Specified by:
      getItem in interface tigase.muc.history.ExtendedMAMRepository
      Throws:
      tigase.component.exceptions.RepositoryException
    • updateMessage

      public void updateMessage(tigase.xmpp.jid.BareJID owner, String stableId, tigase.xml.Element msg, String body) throws tigase.component.exceptions.RepositoryException
      Specified by:
      updateMessage in interface tigase.muc.history.ExtendedMAMRepository
      Throws:
      tigase.component.exceptions.RepositoryException
    • calculateHash

      protected byte[] calculateHash(String user) throws tigase.db.TigaseDBException
      Throws:
      tigase.db.TigaseDBException
    • destroy

      public void destroy()
      Specified by:
      destroy in interface tigase.muc.history.HistoryProvider<MongoDataSource>
    • generateId

      protected byte[] generateId(tigase.xmpp.jid.BareJID user) throws tigase.db.TigaseDBException
      Throws:
      tigase.db.TigaseDBException
    • getHistoryMessages

      public void getHistoryMessages(tigase.muc.Room room, tigase.xmpp.jid.JID senderJID, Integer maxchars, Integer maxstanzas, Integer seconds, Date since, tigase.component.PacketWriter writer)
      Specified by:
      getHistoryMessages in interface tigase.muc.history.HistoryProvider<MongoDataSource>
    • isPersistent

      public boolean isPersistent(tigase.muc.Room room)
      Specified by:
      isPersistent in interface tigase.muc.history.HistoryProvider<MongoDataSource>
    • newQuery

      public tigase.xmpp.mam.Query newQuery()
      Specified by:
      newQuery in interface tigase.xmpp.mam.MAMRepository
    • queryItems

      public void queryItems(tigase.xmpp.mam.Query query, tigase.xmpp.mam.MAMRepository.ItemHandler itemHandler) throws tigase.db.TigaseDBException, tigase.component.exceptions.ComponentException
      Specified by:
      queryItems in interface tigase.xmpp.mam.MAMRepository
      Throws:
      tigase.db.TigaseDBException
      tigase.component.exceptions.ComponentException
    • removeHistory

      public void removeHistory(tigase.muc.Room room)
      Specified by:
      removeHistory in interface tigase.muc.history.HistoryProvider<MongoDataSource>
    • setDataSource

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

      public tigase.db.util.SchemaLoader.Result updateSchema(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