package org.js.model.rbac;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.common.util.TreeIterator;
import org.eclipse.emf.ecore.EObject;
import org.js.model.feature.Attribute;
import org.js.model.feature.DomainValue;
import org.js.model.feature.Feature;
import org.js.model.feature.FeatureModel;
/************************************************************
* Copyright (c) 2010 paperlocator.org - all rights reserved.
*
* $Id$
* $Revision$
* $Author$
***********************************************************/
/**
* @author <a href="mailto:julia.schroeter@tu-dresden.de">Julia Schroeter</a>
*
*/
public abstract class AbstractTestRbac {
AccessControlModel acModelUT;
RBACService rbacService;
public AbstractTestRbac() {
initModels();
}
private void initModels() {
TestModel tm = new TestModel();
acModelUT = tm.getACTestModel();
rbacService = new RBACService();
}
protected Role getRole(String roleId) {
EList<Role> roles = acModelUT.getRoles();
Role r1 = null;
for (Role role : roles) {
String id = role.getId();
if (roleId.equals(id)) {
r1 = role;
break;
}
}
return r1;
}
protected Subject getSubject(String subjectId) {
EList<Subject> subjects = acModelUT.getSubjects();
Subject s1 = null;
for (Subject s : subjects) {
String id = s.getId();
if (subjectId.equals(id)) {
s1 = s;
break;
}
}
return s1;
}
protected Feature getFeature(String featureId) {
Feature result = null;
FeatureModel featureModel = acModelUT.getFeatureModel();
TreeIterator<EObject> eAllContents = featureModel.eAllContents();
while (eAllContents.hasNext()) {
EObject next = eAllContents.next();
if (next instanceof Feature) {
Feature feature = (Feature) next;
String id = feature.getId();
if (featureId.equals(id)) {
result = feature;
break;
}
}
}
return result;
}
protected Attribute getAttribute(Feature f, String attributeId) {
Attribute result = null;
EList<Attribute> attributes = f.getAttributes();
for (Attribute attribute : attributes) {
String name = attribute.getName();
if (attributeId.equals(name)) {
result = attribute;
break;
}
}
return result;
}
protected AttributeValueOperation createDeselectDomainValue(DomainValue domainValue) {
return RbacHelper.createDeselectDomainValue(domainValue);
}
protected AttributeValueOperation createSelectDomainValue(DomainValue domainValue) {
return RbacHelper.createSelectDomainValue(domainValue);
}
protected AttributeOperation createSetAttribute(Feature f, Attribute a) {
return RbacHelper.createSetAttribute(f, a);
}
protected FeatureOperation createSelectFeature(Feature f) {
return RbacHelper.createSelectFeature(f);
}
protected FeatureOperation createDeselectFeature(Feature f) {
return RbacHelper.createDeselectFeature(f);
}
}