* @see #getPrivileges(int)
* @deprecated Use {@link PrivilegeManagerImpl#getBits(javax.jcr.security.Privilege...)} instead.
*/
public static int getBits(Privilege[] privileges) throws AccessControlException {
if (privileges == null || privileges.length == 0) {
throw new AccessControlException("Privilege array is empty or null.");
}
Map<String, String> lookup = new HashMap<String,String>(2);
lookup.put(Name.NS_REP_PREFIX, Name.NS_REP_URI);
lookup.put(Name.NS_JCR_PREFIX, Name.NS_JCR_URI);
int bits = NO_PRIVILEGE;
for (Privilege priv : privileges) {
String prefix = Text.getNamespacePrefix(priv.getName());
if (lookup.containsKey(prefix)) {
Name n = NAME_FACTORY.create(lookup.get(prefix), Text.getLocalName(priv.getName()));
if (PRIVILEGE_NAMES.containsKey(n)) {
bits |= PRIVILEGE_NAMES.get(n);
} else if (NameConstants.JCR_WRITE.equals(n)) {
bits |= createJcrWriteDefinition().bits.longValue();
} else if (REP_WRITE_NAME.equals(n)) {
Definition jcrWrite = createJcrWriteDefinition();
bits |= createRepWriteDefinition(jcrWrite).bits.longValue();
} else if (NameConstants.JCR_ALL.equals(n)) {
for (Name pn : PRIVILEGE_NAMES.keySet()) {
bits |= PRIVILEGE_NAMES.get(pn);
}
} else {
throw new AccessControlException("Unknown privilege '" + priv.getName() + "'.");
}
} else {
throw new AccessControlException("Unknown privilege '" + priv.getName() + "'.");
}
}
return bits;
}