Class OpenOfficeContentNetworkFile

  • All Implemented Interfaces:
    NetworkFileLegacyReferenceCount, org.alfresco.jlan.server.filesys.cache.NetworkFileStateInterface

    public class OpenOfficeContentNetworkFile
    extends ContentNetworkFile
    OpenOffice Content Network File Class

    Provides special handling for OpenOffice file saves that open the file, truncate, close, then open the file again to write the data, as this causes multiple versions to be generated when the file is versionable.

    Author:
    gkspencer
    • Field Summary

      • Fields inherited from class org.alfresco.jlan.server.filesys.NetworkFile

        ATTRIBUTESONLY, Created, DelayedClose, DelayedWriteError, DeleteOnClose, IOPending, m_accessDate, m_allowedAccess, m_attrib, m_closed, m_createDate, m_dirId, m_fid, m_fileSize, m_fullName, m_grantedAccess, m_modifyDate, m_name, m_streamId, m_streamName, m_uniqueId, m_writeCount, READONLY, READWRITE, WRITEONLY
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected OpenOfficeContentNetworkFile​(org.alfresco.service.cmr.repository.NodeService nodeService, ContentService contentService, org.alfresco.service.cmr.repository.MimetypeService mimetypeService, org.alfresco.service.cmr.repository.NodeRef nodeRef, java.lang.String name)
      Class constructor
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void closeFile()
      Close the file
      int getDelayedCloseCount()
      Return the delayed close count
      void incrementDelayedCloseCount()
      Increment the delayed close count
      int readFile​(byte[] buffer, int length, int position, long fileOffset)
      Read from the file.
      boolean truncatedToZeroLength()
      Check if the last file operation was a truncate to zero length
      void truncateFile​(long size)
      Truncate or extend the file to the specified length
      void writeFile​(byte[] buffer, int length, int position, long fileOffset)
      Write a block of data to the file.
      • Methods inherited from class org.alfresco.jlan.server.filesys.NetworkFile

        addLock, close, getAccessDate, getAccessToken, getAllowedAccess, getCreationDate, getDirectoryId, getFileAttributes, getFileId, getFileSize, getFileSizeInt, getFullName, getFullNameStream, getGrantedAccess, getGrantedAccessAsString, getLockAt, getLockList, getModifyDate, getName, getOpLock, getProtocolId, getStreamId, getStreamName, getUniqueId, getWriteCount, hasAccessDate, hasAccessToken, hasCreationDate, hasDelayedClose, hasDelayedWriteError, hasDeleteOnClose, hasIOPending, hasLocks, hasModifyDate, hasNTAttribute, hasOpLock, incrementWriteCount, isArchived, isClosed, isDirectory, isForce, isHidden, isReadOnly, isStream, isSystem, numberOfLocks, removeAllLocks, removeLock, setAccessDate, setAccessToken, setAllowedAccess, setAttributes, setClosed, setCreationDate, setDelayedClose, setDelayedWriteError, setDeleteOnClose, setDirectoryId, setFileId, setFileSize, setFileSize, setForce, setFullName, setGrantedAccess, setIOPending, setModifyDate, setName, setOpLock, setProtocolId, setStatusFlag, setStreamId, setStreamName, setUniqueId, setUniqueId, setUniqueId, wasCreated
      • Methods inherited from class java.lang.Object

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

      • OpenOfficeContentNetworkFile

        protected OpenOfficeContentNetworkFile​(org.alfresco.service.cmr.repository.NodeService nodeService,
                                               ContentService contentService,
                                               org.alfresco.service.cmr.repository.MimetypeService mimetypeService,
                                               org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                               java.lang.String name)
        Class constructor
        Parameters:
        nodeService - NodeService
        contentService - ContentService
        mimetypeService - MimetypeService
        nodeRef - NodeRef
        name - String
    • Method Detail

      • getDelayedCloseCount

        public final int getDelayedCloseCount()
        Return the delayed close count
        Returns:
        int
      • incrementDelayedCloseCount

        public final void incrementDelayedCloseCount()
        Increment the delayed close count
      • truncatedToZeroLength

        public final boolean truncatedToZeroLength()
        Check if the last file operation was a truncate to zero length
        Returns:
        boolean
      • readFile

        public int readFile​(byte[] buffer,
                            int length,
                            int position,
                            long fileOffset)
                     throws java.io.IOException
        Read from the file.
        Overrides:
        readFile in class ContentNetworkFile
        Parameters:
        buffer - byte[]
        length - int
        position - int
        fileOffset - long
        Returns:
        Length of data read.
        Throws:
        java.io.IOException
      • writeFile

        public void writeFile​(byte[] buffer,
                              int length,
                              int position,
                              long fileOffset)
                       throws java.io.IOException
        Write a block of data to the file.
        Overrides:
        writeFile in class ContentNetworkFile
        Parameters:
        buffer - byte[]
        length - int
        position - int
        fileOffset - long
        Throws:
        java.io.IOException
      • truncateFile

        public void truncateFile​(long size)
                          throws java.io.IOException
        Truncate or extend the file to the specified length
        Overrides:
        truncateFile in class ContentNetworkFile
        Parameters:
        size - long
        Throws:
        java.io.IOException
      • closeFile

        public void closeFile()
                       throws java.io.IOException
        Close the file
        Overrides:
        closeFile in class ContentNetworkFile
        Throws:
        java.io.IOException