Class TarHeader
- java.lang.Object
-
- org.jboss.shrinkwrap.impl.base.io.tar.TarHeader
-
-
Field Summary
Fields Modifier and Type Field Description int
checkSum
The entry's checksum.static int
CHKSUMLEN
The length of the checksum field in a header buffer.static int
DEVLEN
The length of the devices field in a header buffer.int
devMajor
The entry's major device number.int
devMinor
The entry's minor device number.static int
GIDLEN
The length of the group id field in a header buffer.static int
GNAMELEN
The length of the group name field in a header buffer.static String
GNU_TMAGIC
The magic tag representing a GNU tar archive.int
groupId
The entry's group id.StringBuffer
groupName
The entry's group name.static byte
LF_BLK
Block device file type.static byte
LF_CHR
Character device file type.static byte
LF_CONTIG
Contiguous file type.static byte
LF_DIR
Directory file type.static byte
LF_FIFO
FIFO (pipe) file type.static byte
LF_LINK
Link file type.static byte
LF_NORMAL
Normal file type.static byte
LF_OLDNORM
LF_ constants represent the "link flag" of an entry, or more commonly, the "entry type".static byte
LF_SYMLINK
Symbolic link file type.byte
linkFlag
The entry's link flag.StringBuffer
linkName
The entry's link name.StringBuffer
magic
The entry's magic tag.static int
MAGICLEN
The length of the magic field in a header buffer.int
mode
The entry's permission mode.static int
MODELEN
The length of the mode field in a header buffer.long
modTime
The entry's modification time.static int
MODTIMELEN
The length of the modification time field in a header buffer.StringBuffer
name
The entry's name.static int
NAMELEN
The length of the name field in a header buffer.static int
NAMEOFFSET
The offset of the name field in a header buffer.static int
PREFIXLEN
The length of the name prefix field in a header buffer.static int
PREFIXOFFSET
The offset of the name prefix field in a header buffer.long
size
The entry's size.static int
SIZELEN
The length of the size field in a header buffer.static String
TMAGIC
The magic tag representing a POSIX tar archive.static int
UIDLEN
The length of the user id field in a header buffer.static int
UNAMELEN
The length of the user name field in a header buffer.int
userId
The entry's user id.StringBuffer
userName
The entry's user name.
-
Constructor Summary
Constructors Constructor Description TarHeader()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Object
clone()
TarHeaders can be cloned.static int
getCheckSumOctalBytes(long value, byte[] buf, int offset, int length)
Parse the checksum octal integer from a header buffer.static int
getFileNameBytes(String newName, byte[] outbuf)
This method, like getNameBytes(), is intended to place a name into a TarHeader's buffer.static int
getLongOctalBytes(long value, byte[] buf, int offset, int length)
Parse an octal long integer from a header buffer.String
getName()
Get the name of this entry.static int
getNameBytes(StringBuffer name, byte[] buf, int offset, int length)
Move the bytes from the name StringBuffer into the header's buffer.static int
getOctalBytes(long value, byte[] buf, int offset, int length)
Parse an octal integer from a header buffer.static StringBuffer
parseFileName(byte[] header)
Parse a file name from a header buffer.static StringBuffer
parseName(byte[] header, int offset, int length)
Parse an entry name from a header buffer.static long
parseOctal(byte[] header, int offset, int length)
Parse an octal string from a header buffer.
-
-
-
Field Detail
-
NAMELEN
public static final int NAMELEN
The length of the name field in a header buffer.- See Also:
- Constant Field Values
-
NAMEOFFSET
public static final int NAMEOFFSET
The offset of the name field in a header buffer.- See Also:
- Constant Field Values
-
PREFIXLEN
public static final int PREFIXLEN
The length of the name prefix field in a header buffer.- See Also:
- Constant Field Values
-
PREFIXOFFSET
public static final int PREFIXOFFSET
The offset of the name prefix field in a header buffer.- See Also:
- Constant Field Values
-
MODELEN
public static final int MODELEN
The length of the mode field in a header buffer.- See Also:
- Constant Field Values
-
UIDLEN
public static final int UIDLEN
The length of the user id field in a header buffer.- See Also:
- Constant Field Values
-
GIDLEN
public static final int GIDLEN
The length of the group id field in a header buffer.- See Also:
- Constant Field Values
-
CHKSUMLEN
public static final int CHKSUMLEN
The length of the checksum field in a header buffer.- See Also:
- Constant Field Values
-
SIZELEN
public static final int SIZELEN
The length of the size field in a header buffer.- See Also:
- Constant Field Values
-
MAGICLEN
public static final int MAGICLEN
The length of the magic field in a header buffer.- See Also:
- Constant Field Values
-
MODTIMELEN
public static final int MODTIMELEN
The length of the modification time field in a header buffer.- See Also:
- Constant Field Values
-
UNAMELEN
public static final int UNAMELEN
The length of the user name field in a header buffer.- See Also:
- Constant Field Values
-
GNAMELEN
public static final int GNAMELEN
The length of the group name field in a header buffer.- See Also:
- Constant Field Values
-
DEVLEN
public static final int DEVLEN
The length of the devices field in a header buffer.- See Also:
- Constant Field Values
-
LF_OLDNORM
public static final byte LF_OLDNORM
LF_ constants represent the "link flag" of an entry, or more commonly, the "entry type". This is the "old way" of indicating a normal file.- See Also:
- Constant Field Values
-
LF_NORMAL
public static final byte LF_NORMAL
Normal file type.- See Also:
- Constant Field Values
-
LF_LINK
public static final byte LF_LINK
Link file type.- See Also:
- Constant Field Values
-
LF_SYMLINK
public static final byte LF_SYMLINK
Symbolic link file type.- See Also:
- Constant Field Values
-
LF_CHR
public static final byte LF_CHR
Character device file type.- See Also:
- Constant Field Values
-
LF_BLK
public static final byte LF_BLK
Block device file type.- See Also:
- Constant Field Values
-
LF_DIR
public static final byte LF_DIR
Directory file type.- See Also:
- Constant Field Values
-
LF_FIFO
public static final byte LF_FIFO
FIFO (pipe) file type.- See Also:
- Constant Field Values
-
LF_CONTIG
public static final byte LF_CONTIG
Contiguous file type.- See Also:
- Constant Field Values
-
TMAGIC
public static final String TMAGIC
The magic tag representing a POSIX tar archive.- See Also:
- Constant Field Values
-
GNU_TMAGIC
public static final String GNU_TMAGIC
The magic tag representing a GNU tar archive.- See Also:
- Constant Field Values
-
name
public StringBuffer name
The entry's name.
-
mode
public int mode
The entry's permission mode.
-
userId
public int userId
The entry's user id.
-
groupId
public int groupId
The entry's group id.
-
size
public long size
The entry's size.
-
modTime
public long modTime
The entry's modification time.
-
checkSum
public int checkSum
The entry's checksum.
-
linkFlag
public byte linkFlag
The entry's link flag.
-
linkName
public StringBuffer linkName
The entry's link name.
-
magic
public StringBuffer magic
The entry's magic tag.
-
userName
public StringBuffer userName
The entry's user name.
-
groupName
public StringBuffer groupName
The entry's group name.
-
devMajor
public int devMajor
The entry's major device number.
-
devMinor
public int devMinor
The entry's minor device number.
-
-
Method Detail
-
getName
public String getName()
Get the name of this entry.- Returns:
- Teh entry's name.
-
parseOctal
public static long parseOctal(byte[] header, int offset, int length) throws InvalidHeaderException
Parse an octal string from a header buffer. This is used for the file permission mode value.- Parameters:
header
- The header buffer from which to parse.offset
- The offset into the buffer from which to parse.length
- The number of header bytes to parse.- Returns:
- The long value of the octal string.
- Throws:
InvalidHeaderException
-
parseFileName
public static StringBuffer parseFileName(byte[] header)
Parse a file name from a header buffer. This is different from parseName() in that is recognizes 'ustar' names and will handle adding on the "prefix" field to the name. Contributed by Dmitri Tikhonov- Parameters:
header
- The header buffer from which to parse.offset
- The offset into the buffer from which to parse.length
- The number of header bytes to parse.- Returns:
- The header's entry name.
-
parseName
public static StringBuffer parseName(byte[] header, int offset, int length) throws InvalidHeaderException
Parse an entry name from a header buffer.- Parameters:
header
- The header buffer from which to parse.offset
- The offset into the buffer from which to parse.length
- The number of header bytes to parse.- Returns:
- The header's entry name.
- Throws:
InvalidHeaderException
-
getFileNameBytes
public static int getFileNameBytes(String newName, byte[] outbuf) throws InvalidHeaderException
This method, like getNameBytes(), is intended to place a name into a TarHeader's buffer. However, this method is sophisticated enough to recognize long names (name.length() > NAMELEN). In these cases, the method will break the name into a prefix and suffix and place the name in the header in 'ustar' format. It is up to the TarEntry to manage the "entry header format". This method assumes the name is valid for the type of archive being generated.- Parameters:
outbuf
- The buffer containing the entry header to modify.newName
- The new name to place into the header buffer.- Returns:
- The current offset in the tar header (always TarHeader.NAMELEN).
- Throws:
InvalidHeaderException
- If the name will not fit in the header.
-
getNameBytes
public static int getNameBytes(StringBuffer name, byte[] buf, int offset, int length)
Move the bytes from the name StringBuffer into the header's buffer.- Parameters:
header
- The header buffer into which to copy the name.offset
- The offset into the buffer at which to store.length
- The number of header bytes to store.- Returns:
- The new offset (offset + length).
-
getOctalBytes
public static int getOctalBytes(long value, byte[] buf, int offset, int length)
Parse an octal integer from a header buffer.- Parameters:
header
- The header buffer from which to parse.offset
- The offset into the buffer from which to parse.length
- The number of header bytes to parse.- Returns:
- The integer value of the octal bytes.
-
getLongOctalBytes
public static int getLongOctalBytes(long value, byte[] buf, int offset, int length)
Parse an octal long integer from a header buffer.- Parameters:
header
- The header buffer from which to parse.offset
- The offset into the buffer from which to parse.length
- The number of header bytes to parse.- Returns:
- The long value of the octal bytes.
-
getCheckSumOctalBytes
public static int getCheckSumOctalBytes(long value, byte[] buf, int offset, int length)
Parse the checksum octal integer from a header buffer.- Parameters:
header
- The header buffer from which to parse.offset
- The offset into the buffer from which to parse.length
- The number of header bytes to parse.- Returns:
- The integer value of the entry's checksum.
-
-