summaryrefslogtreecommitdiff
path: root/src/org/catacombae/rarx/UNIXFileAttributes.java
blob: 175e8d22ca188965a47be65f7c49a35a43bda6af (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
/*-
 * Copyright (C) 2006 Erik Larsson
 * 
 * All rights reserved.
 * 
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
 */

package org.catacombae.rarx;

import java.io.PrintStream;

public class UNIXFileAttributes implements FileAttributes {
    private int attributes;
    
    public UNIXFileAttributes(int attributes) {
	this.attributes = attributes;
    }
    
    public boolean isDirectory() { return isDirectoryFlagSet(); }

    public boolean isFileFlagSet() { return Util.getBit(attributes, 15); }
    public boolean isDirectoryFlagSet() { return Util.getBit(attributes, 14); }
    public boolean isSpecialFileFlagSet() { return Util.getBit(attributes, 13); }
    public boolean isOwnerReadFlagSet() { return Util.getBit(attributes, 8); }
    public boolean isOwnerWriteFlagSet() { return Util.getBit(attributes, 7); }
    public boolean isOwnerExecuteFlagSet() { return Util.getBit(attributes, 6); }
    public boolean isGroupReadFlagSet() { return Util.getBit(attributes, 5); }
    public boolean isGroupWriteFlagSet() { return Util.getBit(attributes, 4); }
    public boolean isGroupExecuteFlagSet() { return Util.getBit(attributes, 3); }
    public boolean isOthersReadFlagSet() { return Util.getBit(attributes, 2); }
    public boolean isOthersWriteFlagSet() { return Util.getBit(attributes, 1); }
    public boolean isOthersExecuteFlagSet() { return Util.getBit(attributes, 0); }
    
    public void print(PrintStream ps, String prefix) {
	ps.println(prefix + "UNIXFileAttributes:");
	printFields(ps, prefix);
    }
    public void printFields(PrintStream ps, String prefix) {
	ps.println(prefix + " isFileFlagSet: " + isFileFlagSet());
	ps.println(prefix + " isDirectoryFlagSet: " + isDirectoryFlagSet());
	ps.println(prefix + " isSpecialFileFlagSet: " + isSpecialFileFlagSet());
	ps.println(prefix + " isOwnerReadFlagSet: " + isOwnerReadFlagSet());
	ps.println(prefix + " isOwnerWriteFlagSet: " + isOwnerWriteFlagSet());
	ps.println(prefix + " isOwnerExecuteFlagSet: " + isOwnerExecuteFlagSet());
	ps.println(prefix + " isGroupReadFlagSet: " + isGroupReadFlagSet());
	ps.println(prefix + " isGroupWriteFlagSet: " + isGroupWriteFlagSet());
	ps.println(prefix + " isGroupExecuteFlagSet: " + isGroupExecuteFlagSet());
	ps.println(prefix + " isOthersReadFlagSet: " + isOthersReadFlagSet());
	ps.println(prefix + " isOthersWriteFlagSet: " + isOthersWriteFlagSet());
	ps.println(prefix + " isOthersExecuteFlagSet: " + isOthersExecuteFlagSet());
// 	ps.println(prefix + " isFlagSet: " + isFlagSet());
    }
}