OSDN Git Service

Add new source files
[armadillo/armadillo1.git] / src / jp / sfjp / armadillo / archive / tar / TarEntry.java
1 package jp.sfjp.armadillo.archive.tar;
2
3 import java.io.*;
4 import jp.sfjp.armadillo.archive.*;
5 import jp.sfjp.armadillo.time.*;
6
7 /**
8  * TAR entry.
9  */
10 public final class TarEntry extends ArchiveEntry {
11
12     /** default mode for dir */
13     public static final int DEFAULT_MODE_DIR = 0755;
14
15     /** default mode for file */
16     public static final int DEFAULT_MODE_FILE = 0666;
17
18     private static final TimeT TIME_T = new TimeT();
19
20     private int mode;
21     int uid;
22     int gid;
23     long size;
24     long mtime;
25     int chksum;
26     char typeflag;
27     String linkname;
28     String magic;
29     String version;
30     String uname;
31     String gname;
32     String devmajor;
33     String devminor;
34     String prefix;
35
36     TarEntry() {
37         super(false);
38         this.mode = 0;
39         this.uid = -1;
40         this.gid = -1;
41         this.size = 0L;
42         this.mtime = 0;
43         this.chksum = 0;
44         this.typeflag = 0;
45         this.linkname = "";
46         this.magic = "ustar"; // default format
47         this.version = "";
48         this.uname = "unknown";
49         this.gname = "unknown";
50         this.devmajor = "";
51         this.devminor = "";
52         this.prefix = "";
53     }
54
55     public TarEntry(String name) {
56         this();
57         setName(name);
58         this.mode = (isDirectory()) ? DEFAULT_MODE_DIR : DEFAULT_MODE_FILE;
59     }
60
61     public TarEntry(String name, File file) {
62         this(name);
63         setFileInfo(file);
64     }
65
66     @Override
67     public long getSize() {
68         return size;
69     }
70
71     @Override
72     public void setSize(long size) {
73         if (!isDirectory())
74             this.size = size;
75     }
76
77     @Override
78     public long getCompressedSize() {
79         return -1;
80     }
81
82     @Override
83     public void setCompressedSize(long size) {
84         // ignore
85     }
86
87     @Override
88     public long getLastModified() {
89         return TIME_T.toMilliseconds(mtime);
90     }
91
92     @Override
93     public void setLastModified(long time) {
94         this.mtime = TIME_T.int64From(time);
95     }
96
97     @Override
98     public String getMethodName() {
99         if (!this.magic.trim().isEmpty())
100             return this.magic.trim();
101         return "TAR";
102     }
103
104     public int getMode() {
105         return mode;
106     }
107
108     public void setMode(int mode) {
109         this.mode = mode;
110     }
111
112     public int getUid() {
113         return uid;
114     }
115
116     public void setUid(int uid) {
117         this.uid = uid;
118     }
119
120     public int getGid() {
121         return gid;
122     }
123
124     public void setGid(int gid) {
125         this.gid = gid;
126     }
127
128     public long getMtime() {
129         return mtime;
130     }
131
132     public void setMtime(long mtime) {
133         this.mtime = mtime;
134     }
135
136     public int getChksum() {
137         return chksum;
138     }
139
140     public void setChksum(int chksum) {
141         this.chksum = chksum;
142     }
143
144     public char getTypeflag() {
145         return typeflag;
146     }
147
148     public void setTypeflag(char typeflag) {
149         this.typeflag = typeflag;
150     }
151
152     public String getLinkname() {
153         return linkname;
154     }
155
156     public void setLinkname(String linkname) {
157         this.linkname = linkname;
158     }
159
160     public String getMagic() {
161         return magic;
162     }
163
164     public void setMagic(String magic) {
165         this.magic = magic;
166     }
167
168     public String getVersion() {
169         return version;
170     }
171
172     public void setVersion(String version) {
173         this.version = version;
174     }
175
176     public String getUname() {
177         return uname;
178     }
179
180     public void setUname(String uname) {
181         this.uname = uname;
182     }
183
184     public String getGname() {
185         return gname;
186     }
187
188     public void setGname(String gname) {
189         this.gname = gname;
190     }
191
192     public String getDevmajor() {
193         return devmajor;
194     }
195
196     public void setDevmajor(String devmajor) {
197         this.devmajor = devmajor;
198     }
199
200     public String getDevminor() {
201         return devminor;
202     }
203
204     public void setDevminor(String devminor) {
205         this.devminor = devminor;
206     }
207
208     public String getPrefix() {
209         return prefix;
210     }
211
212     public void setPrefix(String prefix) {
213         this.prefix = prefix;
214     }
215
216 }