/**
*
*/
package org.js.model.rbac.edit;
import org.js.model.feature.Attribute;
import org.js.model.feature.Feature;
import org.js.model.feature.edit.FeatureModelHelper;
import org.js.model.rbac.AttributeOperation;
import org.js.model.rbac.AttributeValueOperation;
import org.js.model.rbac.FeatureOperation;
import org.js.model.rbac.RBACResolverUtil;
import org.js.model.rbac.RbacHelper;
import org.js.model.rbac.Role;
/**
* Provider to get Text and Images for Itemproviders.
*
* @author Julia
*
*/
public class RBACItemProvider {
public static String image_selectFeature = "full/obj16/SelectFeature";
public static String image_deselectFeature = "full/obj16/DeselectFeature";
public static String image_selectDomainValue = "full/obj16/SelectDomainValue";
public static String image_deselectDomainValue = "full/obj16/DeselectDomainValue";
public static String image_concreteRole = "full/obj16/Role";
public static String image_abstractRole = "full/obj16/AbstractRole";
public static String getText(Object object) {
String label = "";
if (object instanceof AttributeOperation) {
AttributeOperation attOp = (AttributeOperation) object;
label = getText(attOp);
} else if (object instanceof FeatureOperation) {
FeatureOperation featureOp = (FeatureOperation) object;
label = getText(featureOp);
} else if (object instanceof AttributeValueOperation) {
AttributeValueOperation dvOp = (AttributeValueOperation) object;
label = getText(dvOp);
}
return label;
}
public static String getText(AttributeValueOperation op) {
String label = op.getType().getLiteral();
int value = op.getValue();
Attribute attribute = op.getAttribute();
String valueString = FeatureModelHelper.getAttributeValue(value, attribute);
String featureId = op.getFeature().getId();
String attributeId = attribute.getName();
label += " " + featureId + RBACResolverUtil.delimiter + attributeId + RBACResolverUtil.delimiter + valueString;
return label;
}
public static String getText(FeatureOperation op) {
String label = op.getType().getLiteral();
Feature feature = op.getFeature();
if (feature != null) {
label += " <" + feature.getId() + ">";
}
return label;
}
public static String getText(AttributeOperation op) {
String featureId = op.getFeature().getId();
String attributeId = op.getAttribute().getName();
return RBACResolverUtil.set + " " + featureId + RBACResolverUtil.delimiter + attributeId;
}
public static String getImage(Object object) {
String imagePath = "";
if (object instanceof FeatureOperation) {
FeatureOperation featureOp = (FeatureOperation) object;
imagePath = (RbacHelper.isSelectFeatureOperation(featureOp)) ? image_selectFeature : image_deselectFeature;
} else if (object instanceof AttributeValueOperation) {
AttributeValueOperation dvOp = (AttributeValueOperation) object;
imagePath = (RbacHelper.isSelectDomainValueOperation(dvOp)) ? image_selectDomainValue : image_deselectDomainValue;
} else if (object instanceof Role) {
Role role = (Role) object;
imagePath = (RbacHelper.isAbstractRole(role)) ? image_abstractRole : image_concreteRole;
}
return imagePath;
}
}