Class FileUploadRepositoryPool<R extends FileUploadRepository<tigase.db.DataSource>>

  • All Implemented Interfaces:
    tigase.db.DataSourceAware, FileUploadRepository, tigase.kernel.beans.Initializable, tigase.kernel.beans.RegistrarBean, tigase.kernel.beans.RegistrarBeanWithDefaultBeanClass, tigase.kernel.beans.UnregisterAware

    @Bean(name="repositoryPool",
          parent=FileUploadComponent.class,
          active=true,
          exportable=true)
    public class FileUploadRepositoryPool<R extends FileUploadRepository<tigase.db.DataSource>>
    extends tigase.db.beans.MDRepositoryBean<R>
    implements FileUploadRepository
    Created by andrzej on 10.08.2016.
    • Field Summary

      • Fields inherited from class tigase.db.beans.MDRepositoryBean

        aliases, dataSourceSelection
    • 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.
      protected java.lang.Class findClassForDataSource​(tigase.db.DataSource dataSource)  
      java.lang.Class<?> getDefaultBeanClass()  
      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.DataSource dataSource)  
      void updateSlot​(tigase.xmpp.jid.BareJID sender, java.lang.String slotId)
      Looks for slot for particular sender with exact slot id, file name and file size
      • Methods inherited from class tigase.db.beans.MDRepositoryBean

        beforeUnregister, getName, getRepositories, getRepository, initialize, initializeRepository, onDataSourceChange, register, registerIfNotExists, repositoriesStream, setDataSourceBean, unregister, updateDataSourceAware
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • FileUploadRepositoryPool

        public FileUploadRepositoryPool()
    • Method Detail

      • updateSlot

        public void updateSlot​(tigase.xmpp.jid.BareJID sender,
                               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<R extends FileUploadRepository<tigase.db.DataSource>>
        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<R extends FileUploadRepository<tigase.db.DataSource>>
        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<R extends FileUploadRepository<tigase.db.DataSource>>
        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<R extends FileUploadRepository<tigase.db.DataSource>>
        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<R extends FileUploadRepository<tigase.db.DataSource>>
        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<R extends FileUploadRepository<tigase.db.DataSource>>
        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<R extends FileUploadRepository<tigase.db.DataSource>>
        Throws:
        tigase.db.TigaseDBException
      • setDataSource

        public void setDataSource​(tigase.db.DataSource dataSource)
        Specified by:
        setDataSource in interface tigase.db.DataSourceAware<R extends FileUploadRepository<tigase.db.DataSource>>
      • getDefaultBeanClass

        public java.lang.Class<?> getDefaultBeanClass()
        Specified by:
        getDefaultBeanClass in interface tigase.kernel.beans.RegistrarBeanWithDefaultBeanClass
      • findClassForDataSource

        protected java.lang.Class findClassForDataSource​(tigase.db.DataSource dataSource)
                                                  throws tigase.db.DBInitException
        Specified by:
        findClassForDataSource in class tigase.db.beans.MDRepositoryBean<R extends FileUploadRepository<tigase.db.DataSource>>
        Throws:
        tigase.db.DBInitException