/*
* Copyright 2010 Robert Csakany <robson@semmi.se>.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* under the License.
*/
package org.liveSense.service.securityManager;
import java.util.ArrayList;
import java.util.Iterator;
import javax.jcr.RepositoryException;
import javax.jcr.security.AccessControlException;
import javax.jcr.security.AccessControlManager;
import javax.jcr.security.Privilege;
/**
*
* @author Robert Csakany (robson@semmi.se)
* @created Feb 26, 2010
*/
public class PrivilegeFromSerializable implements Privilege {
SerializablePrivilege privilege;
static Privilege[] fromSerializableArray(AccessControlManager util, SerializablePrivilege[] privileges) throws AccessControlException, RepositoryException {
/*
ArrayList<Privilege> ret = new ArrayList<Privilege>();
for (int i = 0; i < privileges.length; i++) {
ret.add(util.privilegeFromName(privileges[i].getName()));
}
return (Privilege[]) ret.toArray();
*
*/
Privilege[] ret = new Privilege[privileges.length];
for (int i = 0; i < privileges.length; i++) {
ret[i] = util.privilegeFromName(privileges[i].getName());
}
return ret;
}
public PrivilegeFromSerializable(SerializablePrivilege privilege) {
this.privilege = privilege;
}
public String getName() {
return privilege.getName();
}
public boolean isAbstract() {
return privilege.isAbstract();
}
public boolean isAggregate() {
return privilege.isAggregate();
}
public Privilege[] getDeclaredAggregatePrivileges() {
ArrayList<PrivilegeFromSerializable> ret = new ArrayList<PrivilegeFromSerializable>();
Iterator<SerializablePrivilege> iter = privilege.declaredAggregatePrivileges.iterator();
while (iter.hasNext()) {
ret.add(new PrivilegeFromSerializable(iter.next()));
}
PrivilegeFromSerializable[] retArr = new PrivilegeFromSerializable[ret.size()];
System.arraycopy(ret.toArray(), 0, retArr, 0, ret.size());
return retArr;
}
public Privilege[] getAggregatePrivileges() {
ArrayList<PrivilegeFromSerializable> ret = new ArrayList<PrivilegeFromSerializable>();
Iterator<SerializablePrivilege> iter = privilege.aggregatePrivileges.iterator();
while (iter.hasNext()) {
ret.add(new PrivilegeFromSerializable(iter.next()));
}
PrivilegeFromSerializable[] retArr = new PrivilegeFromSerializable[ret.size()];
System.arraycopy(ret.toArray(), 0, retArr, 0, ret.size());
return retArr;
}
}