Commit 91fa89af authored by Gerson Sunyé's avatar Gerson Sunyé
Browse files

first rule

parent dd054ab4
.DS_Store
/bin/ /bin/
target/ target/
.project .project
......
...@@ -7,9 +7,9 @@ Bundle-Version: 1.0.0.qualifier ...@@ -7,9 +7,9 @@ Bundle-Version: 1.0.0.qualifier
Bundle-ClassPath: . Bundle-ClassPath: .
Bundle-Vendor: %providerName Bundle-Vendor: %providerName
Bundle-Localization: plugin Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Require-Bundle: org.eclipse.core.runtime, Require-Bundle: org.eclipse.core.runtime,
org.eclipse.emf.ecore;visibility:=reexport, org.eclipse.emf.ecore;visibility:=reexport,
org.eclipse.xtext.xbase.lib, org.eclipse.xtext.xbase.lib,
org.eclipse.emf.ecore.xcore.lib org.eclipse.emf.ecore.xcore.lib
Bundle-ActivationPolicy: lazy Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
...@@ -49,4 +49,13 @@ Chaque demande doit contenir au moins une règle ATL claire et bien commentée, ...@@ -49,4 +49,13 @@ Chaque demande doit contenir au moins une règle ATL claire et bien commentée,
Comme niveau de difficulté de chaque ticket est estimé, il est possible que la difficulté d'une règle ait été mal évaluée. Comme niveau de difficulté de chaque ticket est estimé, il est possible que la difficulté d'une règle ait été mal évaluée.
Si après avoir écrit une règle, vous pensez que sa difficulté a été sur or sous-estimée, demandez à changer l'étiquette du ticket. Si après avoir écrit une règle, vous pensez que sa difficulté a été sur or sous-estimée, demandez à changer l'étiquette du ticket.
\ No newline at end of file
== Configuration
Ce projet a été préparé en Eclipse Oxygène, avec les logiciels suivants:
* ATL
* EMF
* EMF XCore
* Modisco
-- @path MM=/Source%20Code%20Analyzer/src/main/model/java.ecore -- @nsURI smm=http://www.eclipse.org/MoDisco/SMM/1.0.Beta2/smm
-- @path MM1=/Source%20Code%20Analyzer/src/main/model/smm.ecore -- @nsURI java=http://www.eclipse.org/MoDisco/Java/0.2.incubation/java
module analysis; module analysis;
create OUT : MM1 from IN : MM; create OUT: smm from IN: java;
rule Java2SMM {
from
project: java!Model
to
model: smm!SmmModel (
name <- project.name,
librairies <- lib
),
lib: smm!MeasureLibrary (
name <- 'Java metrics',
measureElements <- thisModule.allMeasures(project)
)
}
helper def: allMeasures(project : java!Model): Set(smm!Measure) =
Set{
thisModule.numberOfClasses()
--
-- Placeholder for other Measures
--
};
rule numberOfClasses() {
to
om: smm!ObservedMeasure (
measure <- noc,
measurements <- measurement
),
noc: smm!DimensionalMeasure (
name <- 'Number of Classes'
),
measurement: smm!DirectMeasurement (
value <- java!ClassDeclaration.allInstances() -> reject(each | each.isProxy()) -> size()
)
do {
noc;
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment