Class ArchiveBuilder

java.lang.Object
org.cdlib.mrt.utility.ArchiveBuilder
Direct Known Subclasses:
ArchiveBuilder.Tar, ArchiveBuilder.Zip

public abstract class ArchiveBuilder extends Object
Build an archive (tar, targz, or zip) from a directory
Author:
dloy
  • Field Details

  • Constructor Details

    • ArchiveBuilder

      public ArchiveBuilder(File fromDir, File toArchive, LoggerInf logger, ArchiveBuilder.ArchiveType archiveType) throws TException
      Contructor used as build method for this class
      Parameters:
      fromDir - - directory to be archived
      toArchive - - archive to this file
      logger - - process logging
      archiveType - type of archive to create see ArchiveType
      Throws:
      TException
    • ArchiveBuilder

      public ArchiveBuilder(File fromDir, OutputStream outputStream, LoggerInf logger, ArchiveBuilder.ArchiveType archiveType) throws TException
      Contructor used as build method for this class
      Parameters:
      fromDir - - directory to be archived
      toArchive - - archive to this file
      logger - - process logging
      archiveType - type of archive to create see ArchiveType
      Throws:
      TException
  • Method Details

    • getArchiveBuilder

      public static ArchiveBuilder getArchiveBuilder(File fromDir, File toArchive, LoggerInf logger, ArchiveBuilder.ArchiveType archiveType) throws TException
      Factory routine to get specific ArchiveBuilder for supplied ArchiveType
      Parameters:
      fromDir - - directory to be archived
      toArchive - - archive to this file
      logger - - process logging
      archiveType - type of archive to create see ArchiveType
      Returns:
      specific type of ArchiveBuilder
      Throws:
      TException
    • getArchiveBuilder

      public static ArchiveBuilder getArchiveBuilder(File fromDir, OutputStream outputStream, LoggerInf logger, ArchiveBuilder.ArchiveType archiveType) throws TException
      Factory routine to get specific ArchiveBuilder for supplied ArchiveType
      Parameters:
      fromDir - - directory to be archived
      toArchive - - archive to this file
      logger - - process logging
      archiveType - type of archive to create see ArchiveType
      Returns:
      specific type of ArchiveBuilder
      Throws:
      TException
    • buildArchive

      protected void buildArchive() throws TException
      Create archive from constructor supplied values
      Throws:
      TException
    • setOutputStream

      protected abstract void setOutputStream(OutputStream baseOutputStream) throws TException
      Call back routine for setting archive output stream type: tar, tar.gz, zip
      Parameters:
      baseOutputStream -
      Throws:
      TException
    • addItemFile

      protected abstract void addItemFile(File entry, LoggerInf logger) throws TException
      Call back routinte to write an archive entry to archive output. Archive type specific.
      Parameters:
      entry - archive file entry
      Throws:
      TException
    • closeArchive

      protected abstract void closeArchive()
      Call back routine to close archive. Archive type specific.
    • getEntryName

      protected String getEntryName(File addFile) throws TException
      Normalize archive entry name
      Parameters:
      addFile - file used for generating archive name
      Returns:
      normalized archive name
      Throws:
      TException
    • addFiles

      protected void addFiles(File sourceLocation) throws TException
      Recursive method for finding files and adding to archive
      Parameters:
      sourceLocation - file or directory to archive
      Throws:
      TException
    • setEntry

      protected void setEntry(OutputStream out, File entry) throws TException
      Move file to archive
      Parameters:
      out - write to this output stream
      entry - file to write to output
      Throws:
      TException
    • main

      public static void main(String[] args)
      Main method