Skip to content

Commit

Permalink
[ADD] integrity and rating - model, annotations, tests
Browse files Browse the repository at this point in the history
  • Loading branch information
ostumpf committed Jan 15, 2015
1 parent 31083e4 commit d1a5e53
Show file tree
Hide file tree
Showing 47 changed files with 1,648 additions and 334 deletions.
16 changes: 13 additions & 3 deletions jdeeco-core/model/RuntimeModel.ecore
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,10 @@
defaultValueLiteral="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="roles" upperBound="-1"
eType="#//SecurityRole" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="ratingsManager" lowerBound="1"
eType="#//RatingsManager"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="ratingsProcess" eType="#//RatingsProcess"
containment="true" eOpposite="#//RatingsProcess/componentInstance"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EnsembleDefinition">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
Expand All @@ -75,14 +79,15 @@
<eStructuralFeatures xsi:type="ecore:EReference" name="triggers" upperBound="-1"
eType="#//Trigger" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="ParameterDirection">
<eClassifiers xsi:type="ecore:EEnum" name="ParameterKind">
<eLiterals name="IN"/>
<eLiterals name="OUT" value="1"/>
<eLiterals name="INOUT" value="2"/>
<eLiterals name="RATING" value="3"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Parameter">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="direction" lowerBound="1"
eType="#//ParameterDirection" defaultValueLiteral="INOUT" unsettable="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" lowerBound="1" eType="#//ParameterKind"
defaultValueLiteral="INOUT" unsettable="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="knowledgePath" lowerBound="1"
eType="#//KnowledgePath" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass"/>
Expand Down Expand Up @@ -133,4 +138,9 @@
<eClassifiers xsi:type="ecore:EClass" name="AbsoluteSecurityRoleArgument" eSuperTypes="#//SecurityRoleArgument">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="Value" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="RatingsManager" instanceClassName="cz.cuni.mff.d3s.deeco.integrity.RatingsManager"/>
<eClassifiers xsi:type="ecore:EClass" name="RatingsProcess" eSuperTypes="#//Invocable">
<eStructuralFeatures xsi:type="ecore:EReference" name="componentInstance" lowerBound="1"
eType="#//ComponentInstance" eOpposite="#//ComponentInstance/ratingsProcess"/>
</eClassifiers>
</ecore:EPackage>
101 changes: 83 additions & 18 deletions jdeeco-core/model/RuntimeModel.ecorediag

Large diffs are not rendered by default.

37 changes: 27 additions & 10 deletions jdeeco-core/model/RuntimeModel.genmodel
Original file line number Diff line number Diff line change
@@ -1,23 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/cz.cuni.mff.d3s.jdeeco.core/src" modelPluginID="cz.cuni.mff.d3s.jdeeco.core"
xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/jdeeco-core/src" modelPluginID="cz.cuni.mff.d3s.jdeeco.core"
templateDirectory="cz.cuni.mff.d3s.jdeeco.core/model/runtime-templates" dynamicTemplates="true"
modelName="RuntimeModel" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
modelName="RuntimeModel" modelPluginClass="" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
importerID="org.eclipse.emf.importer.ecore" complianceLevel="7.0" copyrightFields="false"
operationReflection="true" importOrganizing="true">
interfaceNamePattern="" operationReflection="true" importOrganizing="true">
<foreignModel>RuntimeModel.ecore</foreignModel>
<genPackages prefix="RuntimeMetadata" basePackage="cz.cuni.mff.d3s.deeco.model"
disposableProviderFactory="true" adapterFactory="false" interfacePackageSuffix="api"
metaDataPackageSuffix="meta" ecorePackage="RuntimeModel.ecore#/">
<genEnums typeSafeEnumCompatible="false" ecoreEnum="RuntimeModel.ecore#//ParameterDirection">
<genEnumLiterals ecoreEnumLiteral="RuntimeModel.ecore#//ParameterDirection/IN"/>
<genEnumLiterals ecoreEnumLiteral="RuntimeModel.ecore#//ParameterDirection/OUT"/>
<genEnumLiterals ecoreEnumLiteral="RuntimeModel.ecore#//ParameterDirection/INOUT"/>
<genEnums typeSafeEnumCompatible="false" ecoreEnum="RuntimeModel.ecore#//ParameterKind">
<genEnumLiterals ecoreEnumLiteral="RuntimeModel.ecore#//ParameterKind/IN"/>
<genEnumLiterals ecoreEnumLiteral="RuntimeModel.ecore#//ParameterKind/OUT"/>
<genEnumLiterals ecoreEnumLiteral="RuntimeModel.ecore#//ParameterKind/INOUT"/>
<genEnumLiterals ecoreEnumLiteral="RuntimeModel.ecore#//ParameterKind/RANK"/>
</genEnums>
<genDataTypes ecoreDataType="RuntimeModel.ecore#//Method"/>
<genDataTypes ecoreDataType="RuntimeModel.ecore#//KnowledgeManager"/>
<genDataTypes ecoreDataType="RuntimeModel.ecore#//ShadowKnowledgeManagerRegistry"/>
<genDataTypes ecoreDataType="RuntimeModel.ecore#//CommunicationBoundary"/>
<genDataTypes ecoreDataType="RuntimeModel.ecore#//RatingsManager"/>
<genClasses ecoreClass="RuntimeModel.ecore#//TimeTrigger">
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute RuntimeModel.ecore#//TimeTrigger/period"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute RuntimeModel.ecore#//TimeTrigger/offset"/>
Expand Down Expand Up @@ -51,6 +53,8 @@
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference RuntimeModel.ecore#//ComponentInstance/internalData"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute RuntimeModel.ecore#//ComponentInstance/systemComponent"/>
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference RuntimeModel.ecore#//ComponentInstance/roles"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute RuntimeModel.ecore#//ComponentInstance/ratingsManager"/>
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference RuntimeModel.ecore#//ComponentInstance/ratingsProcess"/>
</genClasses>
<genClasses ecoreClass="RuntimeModel.ecore#//EnsembleDefinition">
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute RuntimeModel.ecore#//EnsembleDefinition/name"/>
Expand All @@ -69,13 +73,13 @@
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference RuntimeModel.ecore#//ComponentProcess/triggers"/>
</genClasses>
<genClasses ecoreClass="RuntimeModel.ecore#//Parameter">
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute RuntimeModel.ecore#//Parameter/direction"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute RuntimeModel.ecore#//Parameter/kind"/>
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference RuntimeModel.ecore#//Parameter/knowledgePath"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute RuntimeModel.ecore#//Parameter/type"/>
</genClasses>
<genClasses ecoreClass="RuntimeModel.ecore#//Invocable">
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference RuntimeModel.ecore#//Invocable/parameters"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute RuntimeModel.ecore#//Invocable/method"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute RuntimeModel.ecore#//Invocable/method"/>
</genClasses>
<genClasses ecoreClass="RuntimeModel.ecore#//EnsembleController">
<genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference RuntimeModel.ecore#//EnsembleController/componentInstance"/>
Expand All @@ -93,9 +97,22 @@
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference RuntimeModel.ecore#//KnowledgeSecurityTag/requiredRole"/>
</genClasses>
<genClasses ecoreClass="RuntimeModel.ecore#//SecurityRole">
<genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference RuntimeModel.ecore#//SecurityRole/consistsOf"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute RuntimeModel.ecore#//SecurityRole/roleName"/>
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference RuntimeModel.ecore#//SecurityRole/arguments"/>
<genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference RuntimeModel.ecore#//SecurityRole/consistsOf"/>
</genClasses>
<genClasses image="false" ecoreClass="RuntimeModel.ecore#//SecurityRoleArgument">
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute RuntimeModel.ecore#//SecurityRoleArgument/name"/>
</genClasses>
<genClasses ecoreClass="RuntimeModel.ecore#//PathSecurityRoleArgument">
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference RuntimeModel.ecore#//PathSecurityRoleArgument/knowledgePath"/>
</genClasses>
<genClasses ecoreClass="RuntimeModel.ecore#//BlankSecurityRoleArgument"/>
<genClasses ecoreClass="RuntimeModel.ecore#//AbsoluteSecurityRoleArgument">
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute RuntimeModel.ecore#//AbsoluteSecurityRoleArgument/Value"/>
</genClasses>
<genClasses ecoreClass="RuntimeModel.ecore#//RatingsProcess">
<genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference RuntimeModel.ecore#//RatingsProcess/componentInstance"/>
</genClasses>
</genPackages>
</genmodel:GenModel>
18 changes: 18 additions & 0 deletions jdeeco-core/src/cz/cuni/mff/d3s/deeco/annotations/Rating.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package cz.cuni.mff.d3s.deeco.annotations;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
* Marks a method parameter to contain a ranking for specified knowledge path.
*
* @author Ondřej Štumpf
*
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.PARAMETER)
public @interface Rating {
String value();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package cz.cuni.mff.d3s.deeco.annotations;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
* Used to mark a method that performs an integrity check on component instance.
*
* @author Ondřej Štumpf
*
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface RatingsProcess {

}
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,6 @@
public enum PathOrigin {
COMPONENT,
ENSEMBLE,
SECURITY_ANNOTATION
SECURITY_ANNOTATION,
RATING_PROCESS
}
Loading

0 comments on commit d1a5e53

Please sign in to comment.