org.eclipse.birt.core.archive.compound
Class ArchiveFileV2

java.lang.Object
  extended by org.eclipse.birt.core.archive.compound.ArchiveFileV2
All Implemented Interfaces:
IArchiveFile

public class ArchiveFileV2
extends java.lang.Object
implements IArchiveFile

the archive file contains following mode:

  • "r" open the file for read only.
  • "rw" create the file for read/write
  • "rw+" open file is open for read/write
  • "rwt" create the transient file, it will be removed after closing.


    Field Summary
    static int ALLOC_TABLE_BLOCK
              the first block of allocation table
    protected  org.eclipse.birt.core.archive.compound.AllocTable allocTbl
              allocation table of the archive file
    protected  java.lang.String archiveName
              the archive file name.
    protected  int BLOCK_SIZE
               
    protected  org.eclipse.birt.core.archive.cache.FileCacheManager caches
              cache manager of the archive file.
    static int DEFAULT_BLOCK_SIZE
              Size of a physical block, counted in bytes.
    static int DEFAULT_BUFFER_POOL_SIZE
              default size of buffer pool - number of buffer blocks in buffer pool
    protected  java.lang.String dependId
               
    static long DOCUMENT_TAG
              The magic tag of the archive file: "RPTDOC"
    static long DOCUMENT_VERSION_0
              After support system id in archive file, DOCUMENT_VERSION_1 is writen into header.
    static long DOCUMENT_VERSION_1
               
    protected  java.util.HashMap<java.lang.String,org.eclipse.birt.core.archive.compound.NameEntry> entries
              archive entries in the table
    static int ENTRY_ITEM_SIZE
              the size of a entry in the entry table, counted in bytes
    static int ENTRY_TABLE_BLOCK
              the first block of entry table
    protected  org.eclipse.birt.core.archive.compound.NameTable entryTbl
              entry table of the archive file
    static int FILE_STATUS_FINISHED
              File status value: finished
    protected  org.eclipse.birt.core.archive.compound.ArchiveHeader head
              header status
    static int HEADER_BLOCK
              the block of archive header
    protected  boolean isAppend
              the archive file is appended.
    protected  boolean isClosed
              if the file is closed.
    protected  boolean isTransient
              the archive file is transient.
    protected  boolean isWritable
              the archive file is writable.
    static int MIN_BUFFER_POOL_SIZE
              Min size of buffer pool - number of buffer blocks in buffer pool
    static java.lang.String PROPERTY_DEFAULT_BLOCK_SIZE
              the system property defines the block size, it should be times of 1024.
    protected  java.io.RandomAccessFile rf
              the physical file correspond to this compound file system
    protected  java.lang.String systemId
               
    protected  int totalBlocks
              the total blocks exits in this file
    protected  int totalDiskBlocks
              the total blocks exits in the disk
     
    Constructor Summary
    ArchiveFileV2(java.lang.String fileName, java.io.RandomAccessFile rf, java.lang.String mode)
              create the archive file.
    ArchiveFileV2(java.lang.String fileName, java.lang.String mode)
               
    ArchiveFileV2(java.lang.String systemId, java.lang.String fileName, java.lang.String mode)
               
    ArchiveFileV2(java.lang.String systemId, java.lang.String dependId, java.lang.String fileName, java.io.RandomAccessFile rf, java.lang.String mode)
              create the archive file.
    ArchiveFileV2(java.lang.String systemId, java.lang.String dependId, java.lang.String fileName, java.lang.String mode)
               
     
    Method Summary
     void close()
              close the archive.
    protected  Block createBlock()
               
     ArchiveEntry createEntry(java.lang.String name)
               
     boolean exists(java.lang.String name)
               
     void flush()
               
     java.lang.String getDependId()
               
     java.lang.String getName()
              get the archive name.
     java.lang.String getSystemId()
               
     long getUsedCache()
               
     java.util.List<java.lang.String> listEntries(java.lang.String namePattern)
               
     java.lang.Object lockEntry(java.lang.String name)
               
     ArchiveEntry openEntry(java.lang.String name)
               
     void refresh()
               
     boolean removeEntry(java.lang.String name)
               
     void save()
               
     void setCacheSize(long cacheSize)
              set up the cache size.
    protected  void unloadBlock(Block block)
               
     void unlockEntry(java.lang.Object locker)
               
     
    Methods inherited from class java.lang.Object
    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
     

    Field Detail

    rf

    protected java.io.RandomAccessFile rf
    the physical file correspond to this compound file system


    isClosed

    protected boolean isClosed
    if the file is closed.


    isWritable

    protected boolean isWritable
    the archive file is writable.


    isTransient

    protected boolean isTransient
    the archive file is transient.


    isAppend

    protected boolean isAppend
    the archive file is appended.


    archiveName

    protected java.lang.String archiveName
    the archive file name.


    systemId

    protected java.lang.String systemId

    dependId

    protected java.lang.String dependId

    BLOCK_SIZE

    protected int BLOCK_SIZE

    head

    protected org.eclipse.birt.core.archive.compound.ArchiveHeader head
    header status


    allocTbl

    protected org.eclipse.birt.core.archive.compound.AllocTable allocTbl
    allocation table of the archive file


    entryTbl

    protected org.eclipse.birt.core.archive.compound.NameTable entryTbl
    entry table of the archive file


    entries

    protected java.util.HashMap<java.lang.String,org.eclipse.birt.core.archive.compound.NameEntry> entries
    archive entries in the table


    caches

    protected org.eclipse.birt.core.archive.cache.FileCacheManager caches
    cache manager of the archive file.


    totalBlocks

    protected int totalBlocks
    the total blocks exits in this file


    totalDiskBlocks

    protected int totalDiskBlocks
    the total blocks exits in the disk


    DOCUMENT_TAG

    public static final long DOCUMENT_TAG
    The magic tag of the archive file: "RPTDOC"

    See Also:
    Constant Field Values

    DOCUMENT_VERSION_0

    public static final long DOCUMENT_VERSION_0
    After support system id in archive file, DOCUMENT_VERSION_1 is writen into header.

    See Also:
    Constant Field Values

    DOCUMENT_VERSION_1

    public static final long DOCUMENT_VERSION_1
    See Also:
    Constant Field Values

    PROPERTY_DEFAULT_BLOCK_SIZE

    public static final java.lang.String PROPERTY_DEFAULT_BLOCK_SIZE
    the system property defines the block size, it should be times of 1024.

    See Also:
    Constant Field Values

    DEFAULT_BLOCK_SIZE

    public static final int DEFAULT_BLOCK_SIZE
    Size of a physical block, counted in bytes.

    See Also:
    Constant Field Values

    HEADER_BLOCK

    public static final int HEADER_BLOCK
    the block of archive header

    See Also:
    Constant Field Values

    ALLOC_TABLE_BLOCK

    public static final int ALLOC_TABLE_BLOCK
    the first block of allocation table

    See Also:
    Constant Field Values

    ENTRY_TABLE_BLOCK

    public static final int ENTRY_TABLE_BLOCK
    the first block of entry table

    See Also:
    Constant Field Values

    ENTRY_ITEM_SIZE

    public static final int ENTRY_ITEM_SIZE
    the size of a entry in the entry table, counted in bytes

    See Also:
    Constant Field Values

    FILE_STATUS_FINISHED

    public static final int FILE_STATUS_FINISHED
    File status value: finished

    See Also:
    Constant Field Values

    DEFAULT_BUFFER_POOL_SIZE

    public static final int DEFAULT_BUFFER_POOL_SIZE
    default size of buffer pool - number of buffer blocks in buffer pool

    See Also:
    Constant Field Values

    MIN_BUFFER_POOL_SIZE

    public static final int MIN_BUFFER_POOL_SIZE
    Min size of buffer pool - number of buffer blocks in buffer pool

    See Also:
    Constant Field Values
    Constructor Detail

    ArchiveFileV2

    public ArchiveFileV2(java.lang.String fileName,
                         java.io.RandomAccessFile rf,
                         java.lang.String mode)
                  throws java.io.IOException
    create the archive file.

    Parameters:
    fileName - file name.
    rf - the random access file
    mode - open mode.
    Throws:
    java.io.IOException

    ArchiveFileV2

    public ArchiveFileV2(java.lang.String fileName,
                         java.lang.String mode)
                  throws java.io.IOException
    Throws:
    java.io.IOException

    ArchiveFileV2

    public ArchiveFileV2(java.lang.String systemId,
                         java.lang.String fileName,
                         java.lang.String mode)
                  throws java.io.IOException
    Throws:
    java.io.IOException

    ArchiveFileV2

    public ArchiveFileV2(java.lang.String systemId,
                         java.lang.String dependId,
                         java.lang.String fileName,
                         java.lang.String mode)
                  throws java.io.IOException
    Throws:
    java.io.IOException

    ArchiveFileV2

    public ArchiveFileV2(java.lang.String systemId,
                         java.lang.String dependId,
                         java.lang.String fileName,
                         java.io.RandomAccessFile rf,
                         java.lang.String mode)
                  throws java.io.IOException
    create the archive file.

    Parameters:
    fileName - file name.
    mode - open mode.
    Throws:
    java.io.IOException
    Method Detail

    setCacheSize

    public void setCacheSize(long cacheSize)
    set up the cache size. the actually cache size is round to block size.

    Specified by:
    setCacheSize in interface IArchiveFile
    Parameters:
    cacheSize - cache size in bytes

    getUsedCache

    public long getUsedCache()
    Specified by:
    getUsedCache in interface IArchiveFile

    getDependId

    public java.lang.String getDependId()
    Specified by:
    getDependId in interface IArchiveFile

    getSystemId

    public java.lang.String getSystemId()
    Specified by:
    getSystemId in interface IArchiveFile

    getName

    public java.lang.String getName()
    get the archive name. the archive name is the file name used to create the archive instance.

    Specified by:
    getName in interface IArchiveFile
    Returns:
    archive name.

    close

    public void close()
               throws java.io.IOException
    close the archive. all changed data will be flushed into disk if the file is opened for write. the file will be removed if it is opend as transient. after close, the instance can't be used any more.

    Specified by:
    close in interface IArchiveFile
    Throws:
    java.io.IOException

    flush

    public void flush()
               throws java.io.IOException
    Specified by:
    flush in interface IArchiveFile
    Throws:
    java.io.IOException

    save

    public void save()
              throws java.io.IOException
    Specified by:
    save in interface IArchiveFile
    Throws:
    java.io.IOException

    refresh

    public void refresh()
                 throws java.io.IOException
    Specified by:
    refresh in interface IArchiveFile
    Throws:
    java.io.IOException

    exists

    public boolean exists(java.lang.String name)
    Specified by:
    exists in interface IArchiveFile

    openEntry

    public ArchiveEntry openEntry(java.lang.String name)
                           throws java.io.IOException
    Specified by:
    openEntry in interface IArchiveFile
    Throws:
    java.io.IOException

    listEntries

    public java.util.List<java.lang.String> listEntries(java.lang.String namePattern)
    Specified by:
    listEntries in interface IArchiveFile

    createEntry

    public ArchiveEntry createEntry(java.lang.String name)
                             throws java.io.IOException
    Specified by:
    createEntry in interface IArchiveFile
    Throws:
    java.io.IOException

    removeEntry

    public boolean removeEntry(java.lang.String name)
                        throws java.io.IOException
    Specified by:
    removeEntry in interface IArchiveFile
    Throws:
    java.io.IOException

    lockEntry

    public java.lang.Object lockEntry(java.lang.String name)
                               throws java.io.IOException
    Specified by:
    lockEntry in interface IArchiveFile
    Throws:
    java.io.IOException

    unlockEntry

    public void unlockEntry(java.lang.Object locker)
                     throws java.io.IOException
    Specified by:
    unlockEntry in interface IArchiveFile
    Throws:
    java.io.IOException

    createBlock

    protected Block createBlock()
                         throws java.io.IOException
    Throws:
    java.io.IOException

    unloadBlock

    protected void unloadBlock(Block block)
                        throws java.io.IOException
    Throws:
    java.io.IOException


    Copyright © 2008 Actuate Corp. All rights reserved.