/************************************************************
* Copyright (c) 2010 paperlocator.org - all rights reserved.
*
* $Id$
* $Revision$
* $Author$
***********************************************************/
package org.js.model.rbac;
import org.js.model.feature.Attribute;
import org.js.model.feature.DomainValue;
import org.js.model.feature.Feature;
/**
* Helper Class to handle model changes.
*
* @author <a href="mailto:julia.schroeter@tu-dresden.de">Julia Schroeter</a>
*
*/
public final class RbacHelper {
public static AttributeValueOperation createDeselectDomainValue(DomainValue value) {
AttributeValueOperation domainValue = RbacFactory.eINSTANCE.createAttributeValueOperation();
domainValue.setType(ConfigurationType.DESELECT);
int name = value.getInt();
domainValue.setValue(name);
return domainValue;
}
public static AttributeValueOperation createSelectDomainValue(DomainValue value) {
AttributeValueOperation domainValue = RbacFactory.eINSTANCE.createAttributeValueOperation();
domainValue.setType(ConfigurationType.SELECT);
int name = value.getInt();
domainValue.setValue(name);
return domainValue;
}
public static AttributeOperation createSetAttribute(Feature f, Attribute a) {
AttributeOperation sa1 = RbacFactory.eINSTANCE.createAttributeOperation();
sa1.setAttribute(a);
sa1.setFeature(f);
return sa1;
}
public static FeatureOperation createSelectFeature(Feature f) {
FeatureOperation selectFeature = RbacFactory.eINSTANCE.createFeatureOperation();
selectFeature.setType(ConfigurationType.SELECT);
selectFeature.setFeature(f);
return selectFeature;
}
public static FeatureOperation createDeselectFeature(Feature f) {
FeatureOperation deselectFeature = RbacFactory.eINSTANCE.createFeatureOperation();
deselectFeature.setType(ConfigurationType.DESELECT);
deselectFeature.setFeature(f);
return deselectFeature;
}
public static boolean isSelectFeatureOperation(Permission permission) {
boolean result = false;
if (permission instanceof FeatureOperation) {
FeatureOperation operation = (FeatureOperation) permission;
result = ConfigurationType.SELECT.equals(operation.getType());
}
return result;
}
public static boolean isDeselectFeatureOperation(Permission permission) {
boolean result = false;
if (permission instanceof FeatureOperation) {
FeatureOperation operation = (FeatureOperation) permission;
result = ConfigurationType.DESELECT.equals(operation.getType());
}
return result;
}
public static boolean isSelectDomainValueOperation(Permission permission) {
boolean result = false;
if (permission instanceof AttributeValueOperation) {
AttributeValueOperation operation = (AttributeValueOperation) permission;
result = ConfigurationType.SELECT.equals(operation.getType());
}
return result;
}
public static boolean isDeselectDomainValueOperation(Permission permission) {
boolean result = false;
if (permission instanceof AttributeValueOperation) {
AttributeValueOperation operation = (AttributeValueOperation) permission;
result = ConfigurationType.DESELECT.equals(operation.getType());
}
return result;
}
public static boolean isAbstractRole(Role role) {
RoleType type = role.getType();
return RoleType.ABSTRACT.equals(type);
}
public static boolean isViewElement(Permission permission){
boolean result = false;
if (permission instanceof VisibilityRestriction) {
VisibilityRestriction operation = (VisibilityRestriction) permission;
result = ModificationType.VIEW.equals(operation.getVisibility());
}
return result;
}
}