@NotNull @Override public PrivilegeBits supportedPrivileges(@Nullable Tree tree, @Nullable PrivilegeBits privilegeBits) { if (tree == null) { return PrivilegeBits.EMPTY; } PrivilegeBits pb; if (privilegeBits == null) { pb = PrivilegeBits.BUILT_IN.get(PrivilegeConstants.JCR_READ); } else { pb = PrivilegeBits.getInstance(privilegeBits); pb.retain(PrivilegeBits.BUILT_IN.get(PrivilegeConstants.JCR_READ)); } if (pb.isEmpty() || !includesCug(tree)) { return PrivilegeBits.EMPTY; } else { return pb; } }
@NotNull @Override public PrivilegeBits supportedPrivileges(@Nullable Tree tree, @Nullable PrivilegeBits privilegeBits) { if (tree == null) { return PrivilegeBits.EMPTY; } PrivilegeBits pb; if (privilegeBits == null) { pb = PrivilegeBits.BUILT_IN.get(PrivilegeConstants.JCR_READ); } else { pb = PrivilegeBits.getInstance(privilegeBits); pb.retain(PrivilegeBits.BUILT_IN.get(PrivilegeConstants.JCR_READ)); } if (pb.isEmpty() || !includesCug(tree)) { return PrivilegeBits.EMPTY; } else { return pb; } }
@NotNull @Override public PrivilegeBits supportedPrivileges(@Nullable Tree tree, @Nullable PrivilegeBits privilegeBits) { if (tree == null) { return PrivilegeBits.EMPTY; } PrivilegeBits pb; if (privilegeBits == null) { pb = SUPPORTED_PRIVBITS; } else { pb = PrivilegeBits.getInstance(privilegeBits); pb.retain(SUPPORTED_PRIVBITS); } if (pb.isEmpty() || !Utils.isSupportedPath(supportedPath, tree.getPath())) { return PrivilegeBits.EMPTY; } else { return pb; } }
@NotNull @Override public PrivilegeBits supportedPrivileges(@Nullable Tree tree, @Nullable PrivilegeBits privilegeBits) { return toBits(supported, pbp).retain(privilegeBits); }
@NotNull @Override public PrivilegeBits supportedPrivileges(@Nullable Tree tree, @Nullable PrivilegeBits privilegeBits) { PrivilegeBits supported = PrivilegeBits.getInstance( PrivilegeBits.BUILT_IN.get(JCR_NAMESPACE_MANAGEMENT), PrivilegeBits.BUILT_IN.get(REP_READ_NODES)); if (privilegeBits != null) { return PrivilegeBits.getInstance(privilegeBits).retain(supported); } else { return supported; } }
@NotNull @Override public PrivilegeBits supportedPrivileges(@Nullable Tree tree, @Nullable PrivilegeBits privilegeBits) { PrivilegeBits supported; if (tree == null) { supported = PrivilegeBits.getInstance( PrivilegeBits.BUILT_IN.get(JCR_NAMESPACE_MANAGEMENT), PrivilegeBits.BUILT_IN.get(JCR_NODE_TYPE_DEFINITION_MANAGEMENT)); } else if (isSupported(tree)) { supported = PrivilegeBits.BUILT_IN.get(JCR_WRITE); } else { supported = PrivilegeBits.EMPTY; } if (privilegeBits != null && !supported.isEmpty()) { return PrivilegeBits.getInstance(privilegeBits).retain(supported); } else { return supported; } }
@Test public void testRetainUnmodifiable() { PrivilegeBits unmodifiable = READ_NODES_PRIVILEGE_BITS; try { unmodifiable.retain(PrivilegeBits.getInstance()); fail(); } catch (UnsupportedOperationException e) { // success } }
mod.retain(nxt); assertEquivalent(nxt, mod); mod.retain(pb); assertTrue(nxt.toString(), mod.isEmpty()); mod.retain(READ_NODES_PRIVILEGE_BITS); assertTrue(nxt.toString(), mod.isEmpty()); mod.retain(nxt); assertEquivalent(nxt, mod); mod.retain(READ_NODES_PRIVILEGE_BITS); assertEquivalent(READ_NODES_PRIVILEGE_BITS, mod); mod.retain(other); assertEquivalent(other, mod); other.retain(nxt); assertTrue(other.isEmpty());
@Test public void testRetainSimple() { PrivilegeBits pb = PrivilegeBits.getInstance(READ_NODES_PRIVILEGE_BITS); assertEquals(pb, pb.retain(pb)); assertEquals(pb, pb.retain(READ_NODES_PRIVILEGE_BITS)); pb = PrivilegeBits.getInstance(READ_NODES_PRIVILEGE_BITS); pb.retain(PrivilegeBits.getInstance()); assertTrue(pb.isEmpty()); pb = PrivilegeBits.getInstance(READ_NODES_PRIVILEGE_BITS); pb.retain(PrivilegeBits.EMPTY); assertTrue(pb.isEmpty()); PrivilegeBits write = PrivilegeBits.BUILT_IN.get(PrivilegeBits.REP_WRITE); pb = PrivilegeBits.getInstance().add(write); assertEquals(pb, pb.retain(pb)); assertEquals(pb, pb.retain(write)); pb.retain(READ_NODES_PRIVILEGE_BITS); assertTrue(pb.isEmpty()); pb.add(READ_NODES_PRIVILEGE_BITS).add(write); pb.retain(write); assertEquivalent(write, pb); assertFalse(pb.includes(READ_NODES_PRIVILEGE_BITS)); PrivilegeBits lock = PrivilegeBits.BUILT_IN.get(PrivilegeBits.JCR_LOCK_MANAGEMENT); PrivilegeBits lw = PrivilegeBits.getInstance(write, lock); pb.add(READ_NODES_PRIVILEGE_BITS).add(write).add(lock); pb.retain(lw); assertEquivalent(lw, pb); assertFalse(pb.includes(READ_NODES_PRIVILEGE_BITS)); }