Class NonTransactionalRuleContentDiskDriver

  • All Implemented Interfaces:
    ExtendedDiskInterface, org.alfresco.jlan.server.core.DeviceInterface, org.alfresco.jlan.server.filesys.DiskInterface

    public class NonTransactionalRuleContentDiskDriver
    extends java.lang.Object
    implements ExtendedDiskInterface
    Non Transactional DiskDriver with rules engine.

    Provides a DiskInterface that deals with "shuffles". Shuffles are implemented by the Rules Engine.

    Sits on top of the repository and is non-retryable and non-transactional. It is, however thread safe and multiple callers may call in parallel.

    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void closeFile​(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, org.alfresco.jlan.server.filesys.NetworkFile param)  
      org.alfresco.jlan.server.core.DeviceContext createContext​(java.lang.String shareName, org.springframework.extensions.config.ConfigElement args)  
      void createDirectory​(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, org.alfresco.jlan.server.filesys.FileOpenParams params)  
      org.alfresco.jlan.server.filesys.NetworkFile createFile​(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, org.alfresco.jlan.server.filesys.FileOpenParams params)  
      void deleteDirectory​(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, java.lang.String dir)  
      void deleteFile​(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, java.lang.String name)  
      int fileExists​(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, java.lang.String path)  
      void flushFile​(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, org.alfresco.jlan.server.filesys.NetworkFile file)  
      CommandExecutor getCommandExecutor()  
      ExtendedDiskInterface getDiskInterface()  
      org.alfresco.jlan.server.filesys.FileInfo getFileInformation​(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, java.lang.String path)  
      RepositoryDiskInterface getRepositoryDiskInterface()  
      RuleEvaluator getRuleEvaluator()  
      void init()  
      boolean isReadOnly​(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.core.DeviceContext ctx)  
      org.alfresco.jlan.server.filesys.NetworkFile openFile​(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, org.alfresco.jlan.server.filesys.FileOpenParams param)  
      int readFile​(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, org.alfresco.jlan.server.filesys.NetworkFile file, byte[] buf, int bufPos, int siz, long filePos)  
      void registerContext​(org.alfresco.jlan.server.core.DeviceContext ctx)
      Register an independently created device context object for this instance of the shared device.
      void renameFile​(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, java.lang.String oldPath, java.lang.String newPath)  
      long seekFile​(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, org.alfresco.jlan.server.filesys.NetworkFile file, long pos, int typ)  
      void setCommandExecutor​(CommandExecutor commandExecutor)  
      void setDiskInterface​(ExtendedDiskInterface diskInterface)  
      void setFileInformation​(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, java.lang.String name, org.alfresco.jlan.server.filesys.FileInfo info)  
      void setRepositoryDiskInterface​(RepositoryDiskInterface repositoryDiskInterface)  
      void setRuleEvaluator​(RuleEvaluator ruleEvaluator)  
      org.alfresco.jlan.server.filesys.SearchContext startSearch​(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, java.lang.String searchPath, int attrib)  
      void treeClosed​(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree)  
      void treeOpened​(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree)  
      void truncateFile​(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, org.alfresco.jlan.server.filesys.NetworkFile file, long siz)  
      int writeFile​(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, org.alfresco.jlan.server.filesys.NetworkFile file, byte[] buf, int bufoff, int siz, long fileoff)  
      • Methods inherited from class java.lang.Object

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

      • NonTransactionalRuleContentDiskDriver

        public NonTransactionalRuleContentDiskDriver()
    • Method Detail

      • init

        public void init()
      • getFileInformation

        public org.alfresco.jlan.server.filesys.FileInfo getFileInformation​(org.alfresco.jlan.server.SrvSession sess,
                                                                            org.alfresco.jlan.server.filesys.TreeConnection tree,
                                                                            java.lang.String path)
                                                                     throws java.io.IOException
        Specified by:
        getFileInformation in interface org.alfresco.jlan.server.filesys.DiskInterface
        Throws:
        java.io.IOException
      • fileExists

        public int fileExists​(org.alfresco.jlan.server.SrvSession sess,
                              org.alfresco.jlan.server.filesys.TreeConnection tree,
                              java.lang.String path)
        Specified by:
        fileExists in interface org.alfresco.jlan.server.filesys.DiskInterface
      • createContext

        public org.alfresco.jlan.server.core.DeviceContext createContext​(java.lang.String shareName,
                                                                         org.springframework.extensions.config.ConfigElement args)
                                                                  throws org.alfresco.jlan.server.core.DeviceContextException
        Specified by:
        createContext in interface org.alfresco.jlan.server.core.DeviceInterface
        Throws:
        org.alfresco.jlan.server.core.DeviceContextException
      • treeOpened

        public void treeOpened​(org.alfresco.jlan.server.SrvSession sess,
                               org.alfresco.jlan.server.filesys.TreeConnection tree)
        Specified by:
        treeOpened in interface org.alfresco.jlan.server.core.DeviceInterface
      • treeClosed

        public void treeClosed​(org.alfresco.jlan.server.SrvSession sess,
                               org.alfresco.jlan.server.filesys.TreeConnection tree)
        Specified by:
        treeClosed in interface org.alfresco.jlan.server.core.DeviceInterface
      • closeFile

        public void closeFile​(org.alfresco.jlan.server.SrvSession sess,
                              org.alfresco.jlan.server.filesys.TreeConnection tree,
                              org.alfresco.jlan.server.filesys.NetworkFile param)
                       throws java.io.IOException
        Specified by:
        closeFile in interface org.alfresco.jlan.server.filesys.DiskInterface
        Throws:
        java.io.IOException
      • createDirectory

        public void createDirectory​(org.alfresco.jlan.server.SrvSession sess,
                                    org.alfresco.jlan.server.filesys.TreeConnection tree,
                                    org.alfresco.jlan.server.filesys.FileOpenParams params)
                             throws java.io.IOException
        Specified by:
        createDirectory in interface org.alfresco.jlan.server.filesys.DiskInterface
        Throws:
        java.io.IOException
      • createFile

        public org.alfresco.jlan.server.filesys.NetworkFile createFile​(org.alfresco.jlan.server.SrvSession sess,
                                                                       org.alfresco.jlan.server.filesys.TreeConnection tree,
                                                                       org.alfresco.jlan.server.filesys.FileOpenParams params)
                                                                throws java.io.IOException
        Specified by:
        createFile in interface org.alfresco.jlan.server.filesys.DiskInterface
        Throws:
        java.io.IOException
      • deleteDirectory

        public void deleteDirectory​(org.alfresco.jlan.server.SrvSession sess,
                                    org.alfresco.jlan.server.filesys.TreeConnection tree,
                                    java.lang.String dir)
                             throws java.io.IOException
        Specified by:
        deleteDirectory in interface org.alfresco.jlan.server.filesys.DiskInterface
        Throws:
        java.io.IOException
      • deleteFile

        public void deleteFile​(org.alfresco.jlan.server.SrvSession sess,
                               org.alfresco.jlan.server.filesys.TreeConnection tree,
                               java.lang.String name)
                        throws java.io.IOException
        Specified by:
        deleteFile in interface org.alfresco.jlan.server.filesys.DiskInterface
        Throws:
        java.io.IOException
      • flushFile

        public void flushFile​(org.alfresco.jlan.server.SrvSession sess,
                              org.alfresco.jlan.server.filesys.TreeConnection tree,
                              org.alfresco.jlan.server.filesys.NetworkFile file)
                       throws java.io.IOException
        Specified by:
        flushFile in interface org.alfresco.jlan.server.filesys.DiskInterface
        Throws:
        java.io.IOException
      • isReadOnly

        public boolean isReadOnly​(org.alfresco.jlan.server.SrvSession sess,
                                  org.alfresco.jlan.server.core.DeviceContext ctx)
                           throws java.io.IOException
        Specified by:
        isReadOnly in interface org.alfresco.jlan.server.filesys.DiskInterface
        Throws:
        java.io.IOException
      • openFile

        public org.alfresco.jlan.server.filesys.NetworkFile openFile​(org.alfresco.jlan.server.SrvSession sess,
                                                                     org.alfresco.jlan.server.filesys.TreeConnection tree,
                                                                     org.alfresco.jlan.server.filesys.FileOpenParams param)
                                                              throws java.io.IOException
        Specified by:
        openFile in interface org.alfresco.jlan.server.filesys.DiskInterface
        Throws:
        java.io.IOException
      • readFile

        public int readFile​(org.alfresco.jlan.server.SrvSession sess,
                            org.alfresco.jlan.server.filesys.TreeConnection tree,
                            org.alfresco.jlan.server.filesys.NetworkFile file,
                            byte[] buf,
                            int bufPos,
                            int siz,
                            long filePos)
                     throws java.io.IOException
        Specified by:
        readFile in interface org.alfresco.jlan.server.filesys.DiskInterface
        Throws:
        java.io.IOException
      • renameFile

        public void renameFile​(org.alfresco.jlan.server.SrvSession sess,
                               org.alfresco.jlan.server.filesys.TreeConnection tree,
                               java.lang.String oldPath,
                               java.lang.String newPath)
                        throws java.io.IOException
        Specified by:
        renameFile in interface org.alfresco.jlan.server.filesys.DiskInterface
        Throws:
        java.io.IOException
      • seekFile

        public long seekFile​(org.alfresco.jlan.server.SrvSession sess,
                             org.alfresco.jlan.server.filesys.TreeConnection tree,
                             org.alfresco.jlan.server.filesys.NetworkFile file,
                             long pos,
                             int typ)
                      throws java.io.IOException
        Specified by:
        seekFile in interface org.alfresco.jlan.server.filesys.DiskInterface
        Throws:
        java.io.IOException
      • setFileInformation

        public void setFileInformation​(org.alfresco.jlan.server.SrvSession sess,
                                       org.alfresco.jlan.server.filesys.TreeConnection tree,
                                       java.lang.String name,
                                       org.alfresco.jlan.server.filesys.FileInfo info)
                                throws java.io.IOException
        Specified by:
        setFileInformation in interface org.alfresco.jlan.server.filesys.DiskInterface
        Throws:
        java.io.IOException
      • startSearch

        public org.alfresco.jlan.server.filesys.SearchContext startSearch​(org.alfresco.jlan.server.SrvSession sess,
                                                                          org.alfresco.jlan.server.filesys.TreeConnection tree,
                                                                          java.lang.String searchPath,
                                                                          int attrib)
                                                                   throws java.io.FileNotFoundException
        Specified by:
        startSearch in interface org.alfresco.jlan.server.filesys.DiskInterface
        Throws:
        java.io.FileNotFoundException
      • truncateFile

        public void truncateFile​(org.alfresco.jlan.server.SrvSession sess,
                                 org.alfresco.jlan.server.filesys.TreeConnection tree,
                                 org.alfresco.jlan.server.filesys.NetworkFile file,
                                 long siz)
                          throws java.io.IOException
        Specified by:
        truncateFile in interface org.alfresco.jlan.server.filesys.DiskInterface
        Throws:
        java.io.IOException
      • writeFile

        public int writeFile​(org.alfresco.jlan.server.SrvSession sess,
                             org.alfresco.jlan.server.filesys.TreeConnection tree,
                             org.alfresco.jlan.server.filesys.NetworkFile file,
                             byte[] buf,
                             int bufoff,
                             int siz,
                             long fileoff)
                      throws java.io.IOException
        Specified by:
        writeFile in interface org.alfresco.jlan.server.filesys.DiskInterface
        Throws:
        java.io.IOException
      • setRuleEvaluator

        public void setRuleEvaluator​(RuleEvaluator ruleEvaluator)
      • registerContext

        public void registerContext​(org.alfresco.jlan.server.core.DeviceContext ctx)
                             throws org.alfresco.jlan.server.core.DeviceContextException
        Description copied from interface: ExtendedDiskInterface
        Register an independently created device context object for this instance of the shared device. Useful, e.g. when context singleton configuration managed by a container.
        Specified by:
        registerContext in interface ExtendedDiskInterface
        Parameters:
        ctx - the device context
        Throws:
        org.alfresco.jlan.server.core.DeviceContextException
      • setRepositoryDiskInterface

        public void setRepositoryDiskInterface​(RepositoryDiskInterface repositoryDiskInterface)
      • setCommandExecutor

        public void setCommandExecutor​(CommandExecutor commandExecutor)