This repository has been archived on 2024-04-22. You can view files and clone it, but cannot push or open issues or pull requests.
SecureUML-GUI/src/ch/ethz/infsec/secureumlgui/modelmapping/permissions/ResourcePermissionsSet.java

81 lines
2.7 KiB
Java

package ch.ethz.infsec.secureumlgui.modelmapping.permissions;
import java.util.Collection;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import ch.ethz.infsec.secureumlgui.logging.MultiContextLogger;
import ch.ethz.infsec.secureumlgui.wrapper.ActionWrapper;
import ch.ethz.infsec.secureumlgui.wrapper.PolicyWrapper;
/**
* A mapping from actions to {@link ActionPermissionSet}s
*
*
*/
public class ResourcePermissionsSet {
Map<Object, ActionPermissionSet> resourcePermissions = new LinkedHashMap<Object, ActionPermissionSet>();
MultiContextLogger logger = MultiContextLogger.getDefault();
public void addPermission(ActionWrapper actionWrapper,
PermissionValue permissionValue, PolicyWrapper policy) {
ActionPermissionSet actionPermissions = getPermissions(actionWrapper);
if (actionPermissions == null) {
actionPermissions = new ActionPermissionSet();
resourcePermissions.put(actionWrapper.getModelElement(),
actionPermissions);
}
actionPermissions.addPermission(policy, permissionValue, HierarchicalPermissionsExplorer.CHANGES.EXPLICIT);
}
public ActionPermissionSet getPermissions(Object action) {
ActionPermissionSet result = resourcePermissions.get(action);
if (result == null) {
result = new ActionPermissionSet();
resourcePermissions.put(action, result);
result.setExplicitActionWrapper(new ActionWrapper(action));
}
return result;
}
public ActionPermissionSet getPermissions(ActionWrapper actionWrapper) {
ActionPermissionSet result = resourcePermissions.get(actionWrapper
.getModelElement());
if (result == null) {
result = new ActionPermissionSet();
resourcePermissions.put(actionWrapper.getModelElement(), result);
}
return result;
}
public Collection<Object> getActions() {
return resourcePermissions.keySet();
}
public ActionPermissionSet getPermissions(String actionShortname) {
for (Iterator iter = resourcePermissions.keySet().iterator(); iter
.hasNext();) {
ActionWrapper actionWrapper = ActionWrapper
.createActionWrapper(iter.next());
if (actionWrapper == null)
logger.error("actionWrapper == null");
if (actionShortname != null
&& actionShortname.equals(actionWrapper.getName())) {
return getPermissions(actionWrapper);
}
}
return new ActionPermissionSet();
}
}