001: /*
002: * Licensed to the Apache Software Foundation (ASF) under one or more
003: * contributor license agreements. See the NOTICE file distributed with
004: * this work for additional information regarding copyright ownership.
005: * The ASF licenses this file to You under the Apache License, Version 2.0
006: * (the "License"); you may not use this file except in compliance with
007: * the License. You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: *
017: */
018:
019: /*
020: * This package is based on the work done by Timothy Gerard Endres
021: * (time@ice.com) to whom the Ant project is very grateful for his great code.
022: */
023:
024: package org.apache.tools.tar;
025:
026: /**
027: * This interface contains all the definitions used in the package.
028: *
029: */
030:
031: public interface TarConstants {
032:
033: /**
034: * The length of the name field in a header buffer.
035: */
036: int NAMELEN = 100;
037:
038: /**
039: * The length of the mode field in a header buffer.
040: */
041: int MODELEN = 8;
042:
043: /**
044: * The length of the user id field in a header buffer.
045: */
046: int UIDLEN = 8;
047:
048: /**
049: * The length of the group id field in a header buffer.
050: */
051: int GIDLEN = 8;
052:
053: /**
054: * The length of the checksum field in a header buffer.
055: */
056: int CHKSUMLEN = 8;
057:
058: /**
059: * The length of the size field in a header buffer.
060: */
061: int SIZELEN = 12;
062:
063: /**
064: * The maximum size of a file in a tar archive (That's 11 sevens, octal).
065: */
066: long MAXSIZE = 077777777777L;
067:
068: /**
069: * The length of the magic field in a header buffer.
070: */
071: int MAGICLEN = 8;
072:
073: /**
074: * The length of the modification time field in a header buffer.
075: */
076: int MODTIMELEN = 12;
077:
078: /**
079: * The length of the user name field in a header buffer.
080: */
081: int UNAMELEN = 32;
082:
083: /**
084: * The length of the group name field in a header buffer.
085: */
086: int GNAMELEN = 32;
087:
088: /**
089: * The length of the devices field in a header buffer.
090: */
091: int DEVLEN = 8;
092:
093: /**
094: * LF_ constants represent the "link flag" of an entry, or more commonly,
095: * the "entry type". This is the "old way" of indicating a normal file.
096: */
097: byte LF_OLDNORM = 0;
098:
099: /**
100: * Normal file type.
101: */
102: byte LF_NORMAL = (byte) '0';
103:
104: /**
105: * Link file type.
106: */
107: byte LF_LINK = (byte) '1';
108:
109: /**
110: * Symbolic link file type.
111: */
112: byte LF_SYMLINK = (byte) '2';
113:
114: /**
115: * Character device file type.
116: */
117: byte LF_CHR = (byte) '3';
118:
119: /**
120: * Block device file type.
121: */
122: byte LF_BLK = (byte) '4';
123:
124: /**
125: * Directory file type.
126: */
127: byte LF_DIR = (byte) '5';
128:
129: /**
130: * FIFO (pipe) file type.
131: */
132: byte LF_FIFO = (byte) '6';
133:
134: /**
135: * Contiguous file type.
136: */
137: byte LF_CONTIG = (byte) '7';
138:
139: /**
140: * The magic tag representing a POSIX tar archive.
141: */
142: String TMAGIC = "ustar";
143:
144: /**
145: * The magic tag representing a GNU tar archive.
146: */
147: String GNU_TMAGIC = "ustar ";
148:
149: /**
150: * The namr of the GNU tar entry which contains a long name.
151: */
152: String GNU_LONGLINK = "././@LongLink";
153:
154: /**
155: * Identifies the *next* file on the tape as having a long name.
156: */
157: byte LF_GNUTYPE_LONGNAME = (byte) 'L';
158: }
|