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 024package org.apache.activemq.console.command.store.tar; 025 026/** 027 * This interface contains all the definitions used in the package. 028 * 029 */ 030// CheckStyle:InterfaceIsTypeCheck OFF (bc) 031public 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}