Class JDBCFileUploadRepository

  • All Implemented Interfaces:
    tigase.db.DataSourceAware<tigase.db.DataRepository>, tigase.db.util.RepositoryVersionAware, FileUploadRepository<tigase.db.DataRepository>

    public class JDBCFileUploadRepository
    extends java.lang.Object
    implements FileUploadRepository<tigase.db.DataRepository>, tigase.db.util.RepositoryVersionAware
    Created by andrzej on 07.08.2016.
    • Nested Class Summary

      • Nested classes/interfaces inherited from interface tigase.db.util.RepositoryVersionAware

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

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      FileUploadRepository.Slot allocateSlot​(tigase.xmpp.jid.JID sender, java.lang.String slotId, java.lang.String filename, long filesize, java.lang.String contentType)
      Create slot in database for file upload.
      FileUploadRepository.Slot getSlot​(tigase.xmpp.jid.BareJID sender, java.lang.String slotId)
      Retrieves information from database about slot
      long getUsedSpaceForDomain​(java.lang.String domain)
      Calculates space used by files upload by all users from domain
      long getUsedSpaceForUser​(tigase.xmpp.jid.BareJID user)
      Calculates space used by files upload by the user
      java.util.List<FileUploadRepository.Slot> listExpiredSlots​(tigase.xmpp.jid.BareJID domain, java.time.LocalDateTime before, int limit)
      Retrieves list of ids of expired slots
      java.util.List<FileUploadRepository.Slot> querySlots​(java.lang.String domain, java.lang.String afterId, int limit)
      Retrieves list of slots after slot with provided id.
      java.util.List<FileUploadRepository.Slot> querySlots​(tigase.xmpp.jid.BareJID user, java.lang.String afterId, int limit)
      Retrieves list of slots after slot with provided id.
      void removeExpiredSlots​(tigase.xmpp.jid.BareJID domain, java.time.LocalDateTime before, int limit)
      Removes metadata of expired slots
      void removeSlot​(tigase.xmpp.jid.BareJID user, java.lang.String slotId)
      Removes slot with id
      void setDataSource​(tigase.db.DataRepository dataSource)  
      void updateSlot​(tigase.xmpp.jid.BareJID userJid, java.lang.String slotId)
      Looks for slot for particular sender with exact slot id, file name and file size
      • Methods inherited from class java.lang.Object

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

        getVersion, updateSchema
    • Constructor Detail

      • JDBCFileUploadRepository

        public JDBCFileUploadRepository()
    • Method Detail

      • allocateSlot

        public FileUploadRepository.Slot allocateSlot​(tigase.xmpp.jid.JID sender,
                                                      java.lang.String slotId,
                                                      java.lang.String filename,
                                                      long filesize,
                                                      java.lang.String contentType)
                                               throws tigase.db.TigaseDBException
        Description copied from interface: FileUploadRepository
        Create slot in database for file upload.
        Specified by:
        allocateSlot in interface FileUploadRepository<tigase.db.DataRepository>
        Throws:
        tigase.db.TigaseDBException
      • updateSlot

        public void updateSlot​(tigase.xmpp.jid.BareJID userJid,
                               java.lang.String slotId)
                        throws tigase.db.TigaseDBException
        Description copied from interface: FileUploadRepository
        Looks for slot for particular sender with exact slot id, file name and file size
        Specified by:
        updateSlot in interface FileUploadRepository<tigase.db.DataRepository>
        Throws:
        tigase.db.TigaseDBException
      • getSlot

        public FileUploadRepository.Slot getSlot​(tigase.xmpp.jid.BareJID sender,
                                                 java.lang.String slotId)
                                          throws tigase.db.TigaseDBException
        Description copied from interface: FileUploadRepository
        Retrieves information from database about slot
        Specified by:
        getSlot in interface FileUploadRepository<tigase.db.DataRepository>
        Throws:
        tigase.db.TigaseDBException
      • listExpiredSlots

        public java.util.List<FileUploadRepository.Slot> listExpiredSlots​(tigase.xmpp.jid.BareJID domain,
                                                                          java.time.LocalDateTime before,
                                                                          int limit)
                                                                   throws tigase.db.TigaseDBException
        Description copied from interface: FileUploadRepository
        Retrieves list of ids of expired slots
        Specified by:
        listExpiredSlots in interface FileUploadRepository<tigase.db.DataRepository>
        Throws:
        tigase.db.TigaseDBException
      • removeExpiredSlots

        public void removeExpiredSlots​(tigase.xmpp.jid.BareJID domain,
                                       java.time.LocalDateTime before,
                                       int limit)
                                throws tigase.db.TigaseDBException
        Description copied from interface: FileUploadRepository
        Removes metadata of expired slots
        Specified by:
        removeExpiredSlots in interface FileUploadRepository<tigase.db.DataRepository>
        Throws:
        tigase.db.TigaseDBException
      • getUsedSpaceForDomain

        public long getUsedSpaceForDomain​(java.lang.String domain)
                                   throws tigase.db.TigaseDBException
        Description copied from interface: FileUploadRepository
        Calculates space used by files upload by all users from domain
        Specified by:
        getUsedSpaceForDomain in interface FileUploadRepository<tigase.db.DataRepository>
        Returns:
        Throws:
        tigase.db.TigaseDBException
      • getUsedSpaceForUser

        public long getUsedSpaceForUser​(tigase.xmpp.jid.BareJID user)
                                 throws tigase.db.TigaseDBException
        Description copied from interface: FileUploadRepository
        Calculates space used by files upload by the user
        Specified by:
        getUsedSpaceForUser in interface FileUploadRepository<tigase.db.DataRepository>
        Returns:
        Throws:
        tigase.db.TigaseDBException
      • querySlots

        public java.util.List<FileUploadRepository.Slot> querySlots​(java.lang.String domain,
                                                                    java.lang.String afterId,
                                                                    int limit)
                                                             throws tigase.db.TigaseDBException
        Description copied from interface: FileUploadRepository
        Retrieves list of slots after slot with provided id. If id is null, first slots will be returned.
        Specified by:
        querySlots in interface FileUploadRepository<tigase.db.DataRepository>
        Returns:
        Throws:
        tigase.db.TigaseDBException
      • querySlots

        public java.util.List<FileUploadRepository.Slot> querySlots​(tigase.xmpp.jid.BareJID user,
                                                                    java.lang.String afterId,
                                                                    int limit)
                                                             throws tigase.db.TigaseDBException
        Description copied from interface: FileUploadRepository
        Retrieves list of slots after slot with provided id. If id is null, first slots will be returned.
        Specified by:
        querySlots in interface FileUploadRepository<tigase.db.DataRepository>
        Returns:
        Throws:
        tigase.db.TigaseDBException
      • removeSlot

        public void removeSlot​(tigase.xmpp.jid.BareJID user,
                               java.lang.String slotId)
                        throws tigase.db.TigaseDBException
        Description copied from interface: FileUploadRepository
        Removes slot with id
        Specified by:
        removeSlot in interface FileUploadRepository<tigase.db.DataRepository>
        Throws:
        tigase.db.TigaseDBException
      • setDataSource

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