|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectnet.sf.mmm.util.file.base.FileAccessPermissions
public class FileAccessPermissions
This class represents the permissions of a file.
Field Summary | |
---|---|
private static int |
MASK_ALL
|
private static int |
MASK_ALL_EXECUTABLE
|
private static int |
MASK_ALL_READABLE
|
private static int |
MASK_ALL_WRITABLE
|
static int |
MASK_EXECUTABLE
|
private static int |
MASK_FULL_DIRECTORY_ACCESS
|
private static int |
MASK_FULL_FILE_ACCESS
|
private static int |
MASK_GROUP
|
private static int |
MASK_GROUP_FLAGS
|
private static int |
MASK_MAX
|
private static int |
MASK_OTHERS
|
private static int |
MASK_OTHERS_FLAGS
|
static int |
MASK_READABLE
|
static int |
MASK_SETGID
|
static int |
MASK_SETUID
|
static int |
MASK_STICKY
|
private static int |
MASK_USER
|
private static int |
MASK_USER_FLAGS
|
static int |
MASK_WRITABLE
|
private int |
maskBits
|
Constructor Summary | |
---|---|
FileAccessPermissions()
The constructor. |
|
FileAccessPermissions(int mask)
The constructor. |
Method Summary | |
---|---|
void |
chmod(String chmod)
This method allows to change the modifiers by a
string expression. |
FileAccessPermissions |
clone()
|
static FileAccessPermissions |
createByUmask(int umask,
boolean isDirectory)
This method create a new FileAccessPermissions instance according
to the given
umask (user
file creation mode mask). |
boolean |
equals(Object obj)
|
int |
getMaskBits()
This method gets the FileAccessPermissions encoded as a single
integer value. |
private boolean |
hasBits(int bitMask)
This method determines if the flags given by bitMask are set
in this mask . |
private boolean |
hasFlag(FileAccessClass fileModeClass,
int bitMask)
This method determines if the flag(s) given by bitMask is set
in this mask for the given
fileModeClass . |
int |
hashCode()
|
boolean |
isExecutable(FileAccessClass fileModeClass)
This method determines if this mask is executable
for the given fileModeClass . |
boolean |
isReadable(FileAccessClass fileModeClass)
This method determines if this mask is readable for
the given fileModeClass . |
boolean |
isSetgid()
This method determines the value of the setgid flag ("set group ID"). |
boolean |
isSetuid()
This method determines the value of the setuid flag ("set user ID"). |
boolean |
isSticky()
This method determines the value of the sticky flag. |
boolean |
isWritable(FileAccessClass fileModeClass)
This method determines if this mask is writable for
the given fileModeClass . |
private static int |
parseOctalMode(CharSequenceScanner parse)
This method parses the current state of the chmod
argument given by parse in octal mode. |
private static int |
parseSymbolicMode(CharSequenceScanner parse,
int maskBits)
This method parses a symbolic-mode segment from parse . |
private static int |
parseUGO(CharSequenceScanner parse)
This method parses the ugoa prefix indicating which flags to
modify. |
private void |
setBits(int bitMask,
boolean set)
This method sets or unsets the flags given by bitMask in this
mask according to the given flag . |
void |
setExecutable(boolean executable)
This method sets the executable flag
of this this mask for ALL access-classes to the given value (executable ). |
void |
setExecutable(FileAccessClass fileModeClass,
boolean executable)
This method sets the executable flag
of this this mask for the given
fileModeClass to the given value (executable ). |
private void |
setFlag(FileAccessClass fileModeClass,
int bitMask,
boolean flag)
This method sets the flag(s) given by bitMask of this this
mask for the given fileModeClass to the
given value (flag ). |
void |
setMaskBits(int mask)
This method sets the bitwise encoded mask . |
void |
setReadable(boolean readable)
This method sets the readable flag of
this this mask for ALL access-classes to the given value (readable ). |
void |
setReadable(FileAccessClass fileModeClass,
boolean readable)
This method sets the readable flag of
this this mask for the given
fileModeClass to the given value (readable ). |
void |
setSetgid(boolean setgid)
This method sets the setuid flag to the given value
setuid . |
void |
setSetuid(boolean setuid)
This method sets the setuid flag to the given value
setuid . |
void |
setSticky(boolean sticky)
This method sets the sticky flag to the given value
sticky . |
void |
setWritable(boolean writable)
This method sets the writable flag of
this this mask for ALL access-classes to the given value (writable ). |
void |
setWritable(FileAccessClass fileModeClass,
boolean writable)
This method sets the writable flag of
this this mask for the given
fileModeClass to the given value (writable ). |
private int |
shiftMask(FileAccessClass fileModeClass,
int bitMask)
This method shifts the given bitMask according to the given
fileModeClass . |
String |
toString()
|
Methods inherited from class java.lang.Object |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
private static final int MASK_MAX
parseUGO(CharSequenceScanner)
,
Constant Field Valuesprivate static final int MASK_USER
parseUGO(CharSequenceScanner)
,
Constant Field Valuesprivate static final int MASK_GROUP
parseUGO(CharSequenceScanner)
,
Constant Field Valuesprivate static final int MASK_OTHERS
parseUGO(CharSequenceScanner)
,
Constant Field Valuesprivate static final int MASK_ALL
parseUGO(CharSequenceScanner)
,
Constant Field Valuespublic static final int MASK_READABLE
isReadable(FileAccessClass)
,
Constant Field Valuespublic static final int MASK_WRITABLE
isWritable(FileAccessClass)
,
Constant Field Valuespublic static final int MASK_EXECUTABLE
isExecutable(FileAccessClass)
,
Constant Field Valuespublic static final int MASK_SETUID
isSetuid()
,
Constant Field Valuespublic static final int MASK_SETGID
isSetgid()
,
Constant Field Valuespublic static final int MASK_STICKY
isSticky()
,
Constant Field Valuesprivate static final int MASK_USER_FLAGS
chmod(String)
,
Constant Field Valuesprivate static final int MASK_GROUP_FLAGS
chmod(String)
,
Constant Field Valuesprivate static final int MASK_OTHERS_FLAGS
chmod(String)
,
Constant Field Valuesprivate static final int MASK_FULL_FILE_ACCESS
createByUmask(int, boolean)
,
Constant Field Valuesprivate static final int MASK_FULL_DIRECTORY_ACCESS
createByUmask(int, boolean)
,
Constant Field Valuesprivate static final int MASK_ALL_EXECUTABLE
setExecutable(boolean)
,
Constant Field Valuesprivate static final int MASK_ALL_WRITABLE
setWritable(boolean)
,
Constant Field Valuesprivate static final int MASK_ALL_READABLE
setReadable(boolean)
,
Constant Field Valuesprivate int maskBits
getMaskBits()
Constructor Detail |
---|
public FileAccessPermissions()
public FileAccessPermissions(int mask)
mask
- is the mask
.Method Detail |
---|
public static FileAccessPermissions createByUmask(int umask, boolean isDirectory)
FileAccessPermissions
instance according
to the given
umask
(user
file creation mode mask).
umask
- is the umask.isDirectory
- true
if the the
FileAccessPermissions
is to be created for a directory,
false
for a regular file.
FileAccessPermissions
.public int getMaskBits()
FileAccessPermissions
encoded as a single
integer value. The value is in the same format as the octal notation for
the command chmod
. Only the last 12 bits of the mask can be
set.
public void setMaskBits(int mask) throws IllegalArgumentException
mask
.
mask
- the mask to set.
IllegalArgumentException
- if the given mask
is negative
or greater than 07777
(== 0xFFF
==
4095
).public boolean isReadable(FileAccessClass fileModeClass)
mask
is readable for
the given fileModeClass
.
fileModeClass
- is the class of access (
FileAccessClass.USER
,
FileAccessClass.GROUP
, or
FileAccessClass.OTHERS
).
true
if the mask is readable for the given
fileModeClass
, false
otherwise.public void setReadable(boolean readable)
readable flag
of
this this mask
for ALL access-classes
to the given value (readable
).
readable
- if true
the mask will be readable, if
false
it will NOT be readable.public void setReadable(FileAccessClass fileModeClass, boolean readable)
readable flag
of
this this mask
for the given
fileModeClass
to the given value (readable
).
fileModeClass
- is the class of access (
FileAccessClass.USER
,
FileAccessClass.GROUP
, or
FileAccessClass.OTHERS
).readable
- if true
the mask will be readable for the
given fileModeClass
, if false
it will NOT
be readable.public boolean isWritable(FileAccessClass fileModeClass)
mask
is writable for
the given fileModeClass
.
fileModeClass
- is the class of access (
FileAccessClass.USER
,
FileAccessClass.GROUP
, or
FileAccessClass.OTHERS
).
true
if the mask is writable for the given
fileModeClass
, false
otherwise.public void setWritable(boolean writable)
writable flag
of
this this mask
for ALL access-classes
to the given value (writable
).
writable
- if true
the mask will be writable, if
false
it will NOT be writable.public void setWritable(FileAccessClass fileModeClass, boolean writable)
writable flag
of
this this mask
for the given
fileModeClass
to the given value (writable
).
fileModeClass
- is the class of access (
FileAccessClass.USER
,
FileAccessClass.GROUP
, or
FileAccessClass.OTHERS
).writable
- if true
the mask will be writable for the
given fileModeClass
, if false
it will NOT
be writable.public boolean isExecutable(FileAccessClass fileModeClass)
mask
is executable
for the given fileModeClass
.
fileModeClass
- is the class of access (
FileAccessClass.USER
,
FileAccessClass.GROUP
, or
FileAccessClass.OTHERS
).
true
if the mask is executable for the given
fileModeClass
, false
otherwise.public void setExecutable(boolean executable)
executable flag
of this this mask
for ALL access-classes
to the given value (executable
).
executable
- if true
the mask will be executable, if
false
it will NOT be executable.public void setExecutable(FileAccessClass fileModeClass, boolean executable)
executable flag
of this this mask
for the given
fileModeClass
to the given value (executable
).
fileModeClass
- is the class of access (
FileAccessClass.USER
,
FileAccessClass.GROUP
, or
FileAccessClass.OTHERS
).executable
- if true
the mask will be executable for the
given fileModeClass
, if false
it will NOT
be executable.public boolean isSetuid()
owner
instead of the user that performed the execution.
true
if the flag is set, false
otherwise.public void setSetuid(boolean setuid)
setuid
flag to the given value
setuid
.
setuid
- - if true
the flag will be set, if
false
it will be unset.public boolean isSetgid()
group owning the
file
instead of the group of the user that performed the execution.
true
if the flag is set, false
otherwise.public void setSetgid(boolean setgid)
setuid
flag to the given value
setuid
.
setgid
- - if true
the flag will be set, if
false
it will be unset.public boolean isSticky()
true
if the flag is set, false
otherwise.public void setSticky(boolean sticky)
sticky
flag to the given value
sticky
.
sticky
- - if true
the flag will be set, if
false
it will be unset.private int shiftMask(FileAccessClass fileModeClass, int bitMask)
bitMask
according to the given
fileModeClass
.
fileModeClass
- is the class of access (
FileAccessClass.USER
,
FileAccessClass.GROUP
, or
FileAccessClass.OTHERS
).bitMask
- is the bit-mask to shift.
bitMask
.private void setFlag(FileAccessClass fileModeClass, int bitMask, boolean flag)
bitMask
of this this
mask
for the given fileModeClass
to the
given value (flag
).
fileModeClass
- is the class of access (
FileAccessClass.USER
,
FileAccessClass.GROUP
, or
FileAccessClass.OTHERS
).bitMask
- is the bit-mask of the flag(s) to set.flag
- - if true
the flag will be set, if
false
it will be unset.private boolean hasFlag(FileAccessClass fileModeClass, int bitMask)
bitMask
is set
in this mask
for the given
fileModeClass
.
fileModeClass
- is the class of access (
FileAccessClass.USER
,
FileAccessClass.GROUP
, or
FileAccessClass.OTHERS
).bitMask
- is the bit-mask of the flag(s) to get.
true
if the flag is set, false
otherwise.private boolean hasBits(int bitMask)
bitMask
are set
in this mask
.
bitMask
- is the bit-mask of the flag(s) to check.
true
if the flags are set, false
otherwise.private void setBits(int bitMask, boolean set)
bitMask
in this
mask
according to the given flag
.
bitMask
- is the bit-mask of the flag(s) to set or unset.set
- - if true
the flag(s) will be set, if
false
they will be unset.private static int parseUGO(CharSequenceScanner parse)
ugoa
prefix indicating which flags to
modify.
u
indicates that the flags of the
user
should be changed.g
indicates that the flags of the
group
should be changed.o
indicates that the flags of the
others
should be changed.a
indicates that the flags of all classes
should be changed.
parse
- is the current state of the parser.
private static int parseSymbolicMode(CharSequenceScanner parse, int maskBits)
parse
. It
applies the chmod
of that segment to the given
mask
and returns the result. The state of this object remains
unchanged.
parse
- is the current state of the parser.maskBits
- is the current modifier mask.
mask
.private static int parseOctalMode(CharSequenceScanner parse) throws IllegalArgumentException
chmod
argument given by parse
in octal mode. If no digits are
detected, parse
remains unchanged and -1
is
returned, else all digits are consumed and the parsed octal-mode is
returned.
parse
- is the current parser state of the the chmod
argument.
-1
if parse
does
NOT point to a digit.
IllegalArgumentException
- if there are more the 4 digits or
non-octal digits (8 or 9).public void chmod(String chmod)
modifiers
by a
string expression. It behaves like the GNU command chmod
(change modifiers).
chmod
- is the mode-list argument as supplied to the
chmod
command. It can either be a single octal-mode (up
to 4 digits of octal number) or a comma-separated list of
symbolic-modes ([ugoa]*([-+=]([rwxXst]*|[ugo]))+
).public int hashCode()
hashCode
in class Object
public boolean equals(Object obj)
equals
in class Object
public FileAccessPermissions clone()
clone
in class Object
public String toString()
toString
in class Object
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |