Save This Page
Home » apache-ant-1.8.1 » org.apache.tools » tar » [javadoc | source]
org.apache.tools.tar
public class: TarEntry [javadoc | source]
java.lang.Object
   org.apache.tools.tar.TarEntry

All Implemented Interfaces:
    TarConstants

This class represents an entry in a Tar archive. It consists of the entry's header, as well as the entry's File. Entries can be instantiated in one of three ways, depending on how they are to be used.

TarEntries that are created from the header bytes read from an archive are instantiated with the TarEntry( byte[] ) constructor. These entries will be used when extracting from or listing the contents of an archive. These entries have their header filled in using the header bytes. They also set the File to null, since they reference an archive entry not a file.

TarEntries that are created from Files that are to be written into an archive are instantiated with the TarEntry( File ) constructor. These entries have their header filled in using the File's information. They also keep a reference to the File for convenience when writing entries.

Finally, TarEntries can be constructed from nothing but a name. This allows the programmer to construct the entry by hand, for instance when only an InputStream is available for writing to the archive, and the header information is constructed from other information. In this case the header fields are set to defaults and the File is set to null.

The C structure for a Tar Entry's header is:

struct header {
char name[NAMSIZ];
char mode[8];
char uid[8];
char gid[8];
char size[12];
char mtime[12];
char chksum[8];
char linkflag;
char linkname[NAMSIZ];
char magic[8];
char uname[TUNMLEN];
char gname[TGNMLEN];
char devmajor[8];
char devminor[8];
} header;
Field Summary
public static final  int MAX_NAMELEN    Maximum length of a user's name in the tar file 
public static final  int DEFAULT_DIR_MODE    Default permissions bits for directories 
public static final  int DEFAULT_FILE_MODE    Default permissions bits for files 
public static final  int MILLIS_PER_SECOND    Convert millis to seconds 
Constructor:
 public TarEntry(String name) 
    Construct an entry with only a name. This allows the programmer to construct the entry's header "by hand". File is set to null.
    Parameters:
    name - the entry name
 public TarEntry(File file) 
    Construct an entry for a file. File is set to file, and the header is constructed from information from the file.
    Parameters:
    file - The file that the entry represents.
 public TarEntry(byte[] headerBuf) 
 public TarEntry(String name,
    boolean preserveLeadingSlashes) 
    Construct an entry with only a name. This allows the programmer to construct the entry's header "by hand". File is set to null.
    Parameters:
    name - the entry name
    preserveLeadingSlashes - whether to allow leading slashes in the name.
 public TarEntry(String name,
    byte linkFlag) 
    Construct an entry with a name and a link flag.
    Parameters:
    name - the entry name
    linkFlag - the entry link flag.
Method from org.apache.tools.tar.TarEntry Summary:
equals,   equals,   getDirectoryEntries,   getFile,   getGroupId,   getGroupName,   getLinkName,   getModTime,   getMode,   getName,   getSize,   getUserId,   getUserName,   hashCode,   isDescendent,   isDirectory,   isGNULongNameEntry,   parseTarHeader,   setGroupId,   setGroupName,   setIds,   setModTime,   setModTime,   setMode,   setName,   setNames,   setSize,   setUserId,   setUserName,   writeEntryHeader
Methods from java.lang.Object:
clone,   equals,   finalize,   getClass,   hashCode,   notify,   notifyAll,   toString,   wait,   wait,   wait
Method from org.apache.tools.tar.TarEntry Detail:
 public boolean equals(TarEntry it) 
    Determine if the two entries are equal. Equality is determined by the header names being equal.
 public boolean equals(Object it) 
    Determine if the two entries are equal. Equality is determined by the header names being equal.
 public TarEntry[] getDirectoryEntries() 
    If this entry represents a file, and the file is a directory, return an array of TarEntries for this entry's children.
 public File getFile() 
    Get this entry's file.
 public int getGroupId() 
    Get this entry's group id.
 public String getGroupName() 
    Get this entry's group name.
 public String getLinkName() 
    Get this entry's link name.
 public Date getModTime() 
    Set this entry's modification time.
 public int getMode() 
    Get this entry's mode.
 public String getName() 
    Get this entry's name.
 public long getSize() 
    Get this entry's file size.
 public int getUserId() 
    Get this entry's user id.
 public String getUserName() 
    Get this entry's user name.
 public int hashCode() 
    Hashcodes are based on entry names.
 public boolean isDescendent(TarEntry desc) 
    Determine if the given entry is a descendant of this entry. Descendancy is determined by the name of the descendant starting with this entry's name.
 public boolean isDirectory() 
    Return whether or not this entry represents a directory.
 public boolean isGNULongNameEntry() 
    Indicate if this entry is a GNU long name block
 public  void parseTarHeader(byte[] header) 
    Parse an entry's header information from a header buffer.
 public  void setGroupId(int groupId) 
    Set this entry's group id.
 public  void setGroupName(String groupName) 
    Set this entry's group name.
 public  void setIds(int userId,
    int groupId) 
    Convenience method to set this entry's group and user ids.
 public  void setModTime(long time) 
    Set this entry's modification time. The parameter passed to this method is in "Java time".
 public  void setModTime(Date time) 
    Set this entry's modification time.
 public  void setMode(int mode) 
    Set the mode for this entry
 public  void setName(String name) 
    Set this entry's name.
 public  void setNames(String userName,
    String groupName) 
    Convenience method to set this entry's group and user names.
 public  void setSize(long size) 
    Set this entry's file size.
 public  void setUserId(int userId) 
    Set this entry's user id.
 public  void setUserName(String userName) 
    Set this entry's user name.
 public  void writeEntryHeader(byte[] outbuf) 
    Write an entry's header information to a header buffer.