Class PrivilegeBits
- java.lang.Object
-
- org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeBits
-
- All Implemented Interfaces:
PrivilegeConstants
public final class PrivilegeBits extends java.lang.Object implements PrivilegeConstants
Internal representation of JCR privileges.
-
-
Field Summary
Fields Modifier and Type Field Description static java.util.Map<java.lang.String,PrivilegeBits>
BUILT_IN
static PrivilegeBits
EMPTY
static PrivilegeBits
NEXT_AFTER_BUILT_INS
-
Fields inherited from interface org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeConstants
AGGREGATE_PRIVILEGES, JCR_ADD_CHILD_NODES, JCR_ALL, JCR_LIFECYCLE_MANAGEMENT, JCR_LOCK_MANAGEMENT, JCR_MODIFY_ACCESS_CONTROL, JCR_MODIFY_PROPERTIES, JCR_NAMESPACE_MANAGEMENT, JCR_NODE_TYPE_DEFINITION_MANAGEMENT, JCR_NODE_TYPE_MANAGEMENT, JCR_READ, JCR_READ_ACCESS_CONTROL, JCR_REMOVE_CHILD_NODES, JCR_REMOVE_NODE, JCR_RETENTION_MANAGEMENT, JCR_VERSION_MANAGEMENT, JCR_WORKSPACE_MANAGEMENT, JCR_WRITE, NON_AGGREGATE_PRIVILEGES, NT_REP_PRIVILEGE, NT_REP_PRIVILEGES, PRIVILEGE_NODETYPE_NAMES, PRIVILEGE_PROPERTY_NAMES, PRIVILEGES_PATH, REP_ADD_PROPERTIES, REP_AGGREGATES, REP_ALTER_PROPERTIES, REP_BITS, REP_INDEX_DEFINITION_MANAGEMENT, REP_IS_ABSTRACT, REP_NEXT, REP_PRIVILEGE_MANAGEMENT, REP_PRIVILEGES, REP_READ_NODES, REP_READ_PROPERTIES, REP_REMOVE_PROPERTIES, REP_USER_MANAGEMENT, REP_WRITE
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description @NotNull PrivilegeBits
add(@NotNull PrivilegeBits other)
Adds the other privilege bits to this instance.@NotNull PrivilegeBits
addDifference(@NotNull PrivilegeBits a, @NotNull PrivilegeBits b)
Subtracts theb
froma
and adds the result (diff) to this instance.@NotNull PropertyState
asPropertyState(@NotNull java.lang.String name)
static long
calculatePermissions(@NotNull PrivilegeBits bits, @NotNull PrivilegeBits parentBits, boolean isAllow)
Calculate the granted permissions by evaluating the given privileges.@NotNull PrivilegeBits
diff(@NotNull PrivilegeBits other)
Subtracts the other PrivilegeBits from the this.
If the specified bits do not intersect with this, it isn't modified.
Ifthis
is included inother
empty
privilege bits is returned.boolean
equals(java.lang.Object o)
static PrivilegeBits
getInstance()
Creates a mutable instance of privilege bits.static @NotNull PrivilegeBits
getInstance(@NotNull PrivilegeBits... base)
Creates a mutable instance of privilege bits.static @NotNull PrivilegeBits
getInstance(@Nullable PropertyState property)
Get or create an instance of privilege bits for a specific property that stores privileges.static @NotNull PrivilegeBits
getInstance(@Nullable Tree tree)
Get or create an instance of privilege bits for a privilege definition.int
hashCode()
boolean
includes(@NotNull PrivilegeBits otherBits)
Returnstrue
if all privileges defined by the specifiedotherBits
are present in this instance.boolean
isBuiltin()
boolean
isEmpty()
Returnstrue
if this privilege bits includes no privileges at all.@NotNull PrivilegeBits
modifiable()
@NotNull PrivilegeBits
nextBits()
Method to calculate the next privilege bits associated with this instance.@NotNull PrivilegeBits
retain(@NotNull PrivilegeBits other)
Retains the elements in thisPrivilegeBits
that are contained in the specified otherPrivilegeBits
.java.lang.String
toString()
@NotNull PrivilegeBits
unmodifiable()
Returns an unmodifiable instance.void
writeTo(@NotNull Tree tree)
Write this instance as property to the specified tree.
-
-
-
Field Detail
-
EMPTY
public static final PrivilegeBits EMPTY
-
BUILT_IN
public static final java.util.Map<java.lang.String,PrivilegeBits> BUILT_IN
-
NEXT_AFTER_BUILT_INS
public static final PrivilegeBits NEXT_AFTER_BUILT_INS
-
-
Method Detail
-
getInstance
public static PrivilegeBits getInstance()
Creates a mutable instance of privilege bits.- Returns:
- a new instance of privilege bits.
-
getInstance
@NotNull public static @NotNull PrivilegeBits getInstance(@NotNull @NotNull PrivilegeBits... base)
Creates a mutable instance of privilege bits.- Parameters:
base
- The base for this mutable instance.- Returns:
- a new instance of privilege bits.
-
getInstance
@NotNull public static @NotNull PrivilegeBits getInstance(@Nullable @Nullable PropertyState property)
Get or create an instance of privilege bits for a specific property that stores privileges.- Parameters:
property
- The property state storing privilege bits information.- Returns:
- an instance of
PrivilegeBits
-
getInstance
@NotNull public static @NotNull PrivilegeBits getInstance(@Nullable @Nullable Tree tree)
Get or create an instance of privilege bits for a privilege definition.- Parameters:
tree
- A privilege definition tree or the privileges root.- Returns:
- an instance of
PrivilegeBits
-
calculatePermissions
public static long calculatePermissions(@NotNull @NotNull PrivilegeBits bits, @NotNull @NotNull PrivilegeBits parentBits, boolean isAllow)
Calculate the granted permissions by evaluating the given privileges. Note, that only built-in privileges can be mapped to permissions. Any other privileges will be ignored.- Parameters:
bits
- The set of privileges present at given tree.parentBits
- The privileges present on the parent tree. These are required in order to determine permissions that include a modification of the parent tree (add_child_nodes, remove_child_nodes).isAllow
-true
if the privileges are granted;false
otherwise.- Returns:
- the resulting permissions.
-
isEmpty
public boolean isEmpty()
Returnstrue
if this privilege bits includes no privileges at all.- Returns:
true
if this privilege bits includes no privileges at all;false
otherwise.- See Also:
Permissions.NO_PERMISSION
-
unmodifiable
@NotNull public @NotNull PrivilegeBits unmodifiable()
Returns an unmodifiable instance.- Returns:
- an unmodifiable
PrivilegeBits
instance.
-
modifiable
@NotNull public @NotNull PrivilegeBits modifiable()
-
includes
public boolean includes(@NotNull @NotNull PrivilegeBits otherBits)
Returnstrue
if all privileges defined by the specifiedotherBits
are present in this instance.- Parameters:
otherBits
-- Returns:
true
if all privileges defined by the specifiedotherBits
are included in this instance;false
otherwise.
-
isBuiltin
public boolean isBuiltin()
- Returns:
true
if this instance represents one of the built-in privilege- See Also:
BUILT_IN
-
add
@NotNull public @NotNull PrivilegeBits add(@NotNull @NotNull PrivilegeBits other)
Adds the other privilege bits to this instance.- Parameters:
other
- The other privilege bits to be added.- Returns:
- The updated instance.
- Throws:
java.lang.UnsupportedOperationException
- if this instance is immutable.
-
diff
@NotNull public @NotNull PrivilegeBits diff(@NotNull @NotNull PrivilegeBits other)
Subtracts the other PrivilegeBits from the this.
If the specified bits do not intersect with this, it isn't modified.
Ifthis
is included inother
empty
privilege bits is returned.- Parameters:
other
- The other privilege bits to be subtracted from this instance.- Returns:
- The updated instance.
- Throws:
java.lang.UnsupportedOperationException
- if this instance is immutable.
-
addDifference
@NotNull public @NotNull PrivilegeBits addDifference(@NotNull @NotNull PrivilegeBits a, @NotNull @NotNull PrivilegeBits b)
Subtracts theb
froma
and adds the result (diff) to this instance.- Parameters:
a
- An instance of privilege bits.b
- An instance of privilege bits.- Returns:
- The updated instance.
- Throws:
java.lang.UnsupportedOperationException
- if this instance is immutable.
-
retain
@NotNull public @NotNull PrivilegeBits retain(@NotNull @NotNull PrivilegeBits other)
Retains the elements in thisPrivilegeBits
that are contained in the specified otherPrivilegeBits
.- Parameters:
other
- Other privilege bits.- Returns:
- This modifiable instance of privilege bits modified such it contains
only privileges that were also contained in the
other
instance.
-
asPropertyState
@NotNull public @NotNull PropertyState asPropertyState(@NotNull @NotNull java.lang.String name)
-
nextBits
@NotNull public @NotNull PrivilegeBits nextBits()
Method to calculate the next privilege bits associated with this instance.- Returns:
- an new instance of
PrivilegeBits
-
writeTo
public void writeTo(@NotNull @NotNull Tree tree)
Write this instance as property to the specified tree.- Parameters:
tree
- The target tree.
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equals
in classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-