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.HistoryProvider<MongoDataSource>, tigase.xmpp.mam.MAMRepository

public class MongoHistoryProvider extends tigase.muc.history.AbstractHistoryProvider<MongoDataSource> implements MongoRepositoryVersionAware, tigase.xmpp.mam.MAMRepository
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)
     
    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)
     
    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
     
    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, createMessageElement

    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

      public void addMessage(tigase.muc.Room room, tigase.xml.Element message, String body, tigase.xmpp.jid.JID senderJid, String senderNickname, Date time)
      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>
    • 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