new UML metrics context Package added
diff --git a/org.eclipse.emf.refactor.metrics.uml24.compositional/plugin.xml b/org.eclipse.emf.refactor.metrics.uml24.compositional/plugin.xml
index 2bc5166..bdd9569 100644
--- a/org.eclipse.emf.refactor.metrics.uml24.compositional/plugin.xml
+++ b/org.eclipse.emf.refactor.metrics.uml24.compositional/plugin.xml
@@ -11,6 +11,126 @@
             metric_metamodel="http://www.eclipse.org/uml2/4.0.0/UML"

             metric_name="A">

       </metric>

+      <metric

+            id="org.eclipse.emf.refactor.metrics.uml24.tc"

+            metric_calculate_class="org.eclipse.emf.refactor.metrics.uml24.umlpack.TC"

+            metric_context="Package"

+            metric_description="Total coupling: afferent coupling + efferent coupling"

+            metric_metamodel="http://www.eclipse.org/uml2/4.0.0/UML"

+            metric_name="TC">

+      </metric>

+      <metric

+            id="org.eclipse.emf.refactor.metrics.uml24.i"

+            metric_calculate_class="org.eclipse.emf.refactor.metrics.uml24.umlpack.I"

+            metric_context="Package"

+            metric_description="Ratio between efferent coupling and total coupling (instability)"

+            metric_metamodel="http://www.eclipse.org/uml2/4.0.0/UML"

+            metric_name="I">

+      </metric>

+      <metric

+            id="org.eclipse.emf.refactor.metrics.uml24.ahf"

+            metric_calculate_class="org.eclipse.emf.refactor.metrics.uml24.umlpack.AHF"

+            metric_context="Package"

+            metric_description="Attribute hiding factor"

+            metric_metamodel="http://www.eclipse.org/uml2/4.0.0/UML"

+            metric_name="AHF">

+      </metric>

+      <metric

+            id="org.eclipse.emf.refactor.metrics.uml24.aif"

+            metric_calculate_class="org.eclipse.emf.refactor.metrics.uml24.umlpack.AIF"

+            metric_context="Package"

+            metric_description="Attribute inheritance factor"

+            metric_metamodel="http://www.eclipse.org/uml2/4.0.0/UML"

+            metric_name="AIF">

+      </metric>

+      <metric

+            id="org.eclipse.emf.refactor.metrics.uml24.ohf"

+            metric_calculate_class="org.eclipse.emf.refactor.metrics.uml24.umlpack.OHF"

+            metric_context="Package"

+            metric_description="Operation hiding factor"

+            metric_metamodel="http://www.eclipse.org/uml2/4.0.0/UML"

+            metric_name="OHF">

+      </metric>

+      <metric

+            id="org.eclipse.emf.refactor.metrics.uml24.oif"

+            metric_calculate_class="org.eclipse.emf.refactor.metrics.uml24.umlpack.OIF"

+            metric_context="Package"

+            metric_description="Operation inheritance factor"

+            metric_metamodel="http://www.eclipse.org/uml2/4.0.0/UML"

+            metric_name="OIF">

+      </metric>

+      <metric

+            id="org.eclipse.emf.refactor.metrics.uml24.navcp"

+            metric_calculate_class="org.eclipse.emf.refactor.metrics.uml24.umlpack.NAVCP"

+            metric_context="Package"

+            metric_description="Ratio between number of associations and number of classes within the package"

+            metric_metamodel="http://www.eclipse.org/uml2/4.0.0/UML"

+            metric_name="NAVCP">

+      </metric>

+      <metric

+            id="org.eclipse.emf.refactor.metrics.uml24.ncap"

+            metric_calculate_class="org.eclipse.emf.refactor.metrics.uml24.umlpack.NCAP"

+            metric_context="Package"

+            metric_description="Number of classes and associations within the package"

+            metric_metamodel="http://www.eclipse.org/uml2/4.0.0/UML"

+            metric_name="NCAP">

+      </metric>

+      <metric

+            id="org.eclipse.emf.refactor.metrics.uml24.ntctp"

+            metric_calculate_class="org.eclipse.emf.refactor.metrics.uml24.umlpack.NTCTP"

+            metric_context="Package"

+            metric_description="Number of times classes within the package are used as attribute and association end types from outside the package"

+            metric_metamodel="http://www.eclipse.org/uml2/4.0.0/UML"

+            metric_name="NTCTP">

+      </metric>

+      <metric

+            id="org.eclipse.emf.refactor.metrics.uml24.nttcp"

+            metric_calculate_class="org.eclipse.emf.refactor.metrics.uml24.umlpack.NTTCP"

+            metric_context="Package"

+            metric_description="Number of times classes within the package use classes in other packages as attribute and association end type"

+            metric_metamodel="http://www.eclipse.org/uml2/4.0.0/UML"

+            metric_name="NTTCP">

+      </metric>

+      <metric

+            id="org.eclipse.emf.refactor.metrics.uml24.nitrp"

+            metric_calculate_class="org.eclipse.emf.refactor.metrics.uml24.umlpack.NITRP"

+            metric_context="Package"

+            metric_description="Number of internal class type relationships within the package"

+            metric_metamodel="http://www.eclipse.org/uml2/4.0.0/UML"

+            metric_name="NITRP">

+      </metric>

+      <metric

+            id="org.eclipse.emf.refactor.metrics.uml24.nicrp"

+            metric_calculate_class="org.eclipse.emf.refactor.metrics.uml24.umlpack.NICRP"

+            metric_context="Package"

+            metric_description="Number of internal relationships between classes within the package"

+            metric_metamodel="http://www.eclipse.org/uml2/4.0.0/UML"

+            metric_name="NICRP">

+      </metric>

+      <metric

+            id="org.eclipse.emf.refactor.metrics.uml24.h"

+            metric_calculate_class="org.eclipse.emf.refactor.metrics.uml24.umlpack.H"

+            metric_context="Package"

+            metric_description="Relational cohesion"

+            metric_metamodel="http://www.eclipse.org/uml2/4.0.0/UML"

+            metric_name="H">

+      </metric>

+      <metric

+            id="org.eclipse.emf.refactor.metrics.uml24.ndcop"

+            metric_calculate_class="org.eclipse.emf.refactor.metrics.uml24.umlpack.NDCOP"

+            metric_context="Package"

+            metric_description="Number of dependencies of classes in other packages on classes within the package"

+            metric_metamodel="http://www.eclipse.org/uml2/4.0.0/UML"

+            metric_name="NDCOP">

+      </metric>

+      <metric

+            id="org.eclipse.emf.refactor.metrics.uml24.ndocp"

+            metric_calculate_class="org.eclipse.emf.refactor.metrics.uml24.umlpack.NDOCP"

+            metric_context="Package"

+            metric_description="Number of dependencies of classes within the package on classes in other packages"

+            metric_metamodel="http://www.eclipse.org/uml2/4.0.0/UML"

+            metric_name="NDOCP">

+      </metric>

    </extension>

    

    <extension

diff --git a/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/AHF.java b/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/AHF.java
new file mode 100644
index 0000000..6dd8b88
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/AHF.java
@@ -0,0 +1,37 @@
+package org.eclipse.emf.refactor.metrics.uml24.umlpack;

+

+import java.util.List;

+

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.refactor.metrics.core.Metric;

+import org.eclipse.emf.refactor.metrics.interfaces.IMetricCalculator;

+import org.eclipse.emf.refactor.metrics.interfaces.IOperation;

+import org.eclipse.emf.refactor.metrics.operations.Operations;

+

+public class AHF implements IMetricCalculator {

+

+	private List<EObject> context;

+	private String metricID1 = "org.eclipse.emf.refactor.metrics.uml24.nnpatp";

+	private String metricID2 = "org.eclipse.emf.refactor.metrics.uml24.natp";

+	

+	IOperation operation = Operations.getOperation("Division");

+

+	@Override

+	public void setContext(List<EObject> context) {

+		this.context = context;	

+	}

+

+	@Override

+	public double calculate() {

+		Metric metric1 = Metric.getMetricInstanceFromId(metricID1);

+		Metric metric2 = Metric.getMetricInstanceFromId(metricID2);

+		

+		IMetricCalculator calc1 = metric1.getCalculateClass();

+		IMetricCalculator calc2 = metric2.getCalculateClass();

+			

+		calc1.setContext(this.context);

+		calc2.setContext(this.context);

+		return operation.calculate(calc1.calculate(),calc2.calculate());

+	}

+

+}

diff --git a/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/AIF.java b/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/AIF.java
new file mode 100644
index 0000000..8e51a5f
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/AIF.java
@@ -0,0 +1,37 @@
+package org.eclipse.emf.refactor.metrics.uml24.umlpack;

+

+import java.util.List;

+

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.refactor.metrics.core.Metric;

+import org.eclipse.emf.refactor.metrics.interfaces.IMetricCalculator;

+import org.eclipse.emf.refactor.metrics.interfaces.IOperation;

+import org.eclipse.emf.refactor.metrics.operations.Operations;

+

+public class AIF implements IMetricCalculator {

+

+	private List<EObject> context;

+	private String metricID1 = "org.eclipse.emf.refactor.metrics.uml24.natip";

+	private String metricID2 = "org.eclipse.emf.refactor.metrics.uml24.tnatp";

+	

+	IOperation operation = Operations.getOperation("Division");

+

+	@Override

+	public void setContext(List<EObject> context) {

+		this.context = context;	

+	}

+

+	@Override

+	public double calculate() {

+		Metric metric1 = Metric.getMetricInstanceFromId(metricID1);

+		Metric metric2 = Metric.getMetricInstanceFromId(metricID2);

+		

+		IMetricCalculator calc1 = metric1.getCalculateClass();

+		IMetricCalculator calc2 = metric2.getCalculateClass();

+			

+		calc1.setContext(this.context);

+		calc2.setContext(this.context);

+		return operation.calculate(calc1.calculate(),calc2.calculate());

+	}

+

+}

diff --git a/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/H.java b/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/H.java
new file mode 100644
index 0000000..d908068
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/H.java
@@ -0,0 +1,37 @@
+package org.eclipse.emf.refactor.metrics.uml24.umlpack;

+

+import java.util.List;

+

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.refactor.metrics.core.Metric;

+import org.eclipse.emf.refactor.metrics.interfaces.IMetricCalculator;

+import org.eclipse.emf.refactor.metrics.interfaces.IOperation;

+import org.eclipse.emf.refactor.metrics.operations.Operations;

+

+public class H implements IMetricCalculator {

+

+	private List<EObject> context;

+	private String metricID1 = "org.eclipse.emf.refactor.metrics.uml24.nicrp";

+	private String metricID2 = "org.eclipse.emf.refactor.metrics.uml24.tncp";

+	

+	IOperation operation = Operations.getOperation("Division");

+	

+	@Override

+	public void setContext(List<EObject> context) {

+		this.context = context;	

+	}

+	

+	@Override

+	public double calculate() {

+		Metric metric1 = Metric.getMetricInstanceFromId(metricID1);

+		Metric metric2 = Metric.getMetricInstanceFromId(metricID2);

+		

+		IMetricCalculator calc1 = metric1.getCalculateClass();

+		IMetricCalculator calc2 = metric2.getCalculateClass();

+			

+		calc1.setContext(this.context);

+		calc2.setContext(this.context);

+		return operation.calculate(calc1.calculate(),calc2.calculate());

+	}

+

+}

diff --git a/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/I.java b/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/I.java
new file mode 100644
index 0000000..1ae8796
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/I.java
@@ -0,0 +1,37 @@
+package org.eclipse.emf.refactor.metrics.uml24.umlpack;

+

+import java.util.List;

+

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.refactor.metrics.core.Metric;

+import org.eclipse.emf.refactor.metrics.interfaces.IMetricCalculator;

+import org.eclipse.emf.refactor.metrics.interfaces.IOperation;

+import org.eclipse.emf.refactor.metrics.operations.Operations;

+

+public class I implements IMetricCalculator {

+

+	private List<EObject> context;

+	private String metricID1 = "org.eclipse.emf.refactor.metrics.uml24.ce";

+	private String metricID2 = "org.eclipse.emf.refactor.metrics.uml24.tc";

+	

+	IOperation operation = Operations.getOperation("Division");

+

+	@Override

+	public void setContext(List<EObject> context) {

+		this.context = context;	

+	}

+

+	@Override

+	public double calculate() {

+		Metric metric1 = Metric.getMetricInstanceFromId(metricID1);

+		Metric metric2 = Metric.getMetricInstanceFromId(metricID2);

+		

+		IMetricCalculator calc1 = metric1.getCalculateClass();

+		IMetricCalculator calc2 = metric2.getCalculateClass();

+			

+		calc1.setContext(this.context);

+		calc2.setContext(this.context);

+		return operation.calculate(calc1.calculate(),calc2.calculate());

+	}

+

+}

diff --git a/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NAVCP.java b/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NAVCP.java
new file mode 100644
index 0000000..37355ee
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NAVCP.java
@@ -0,0 +1,37 @@
+package org.eclipse.emf.refactor.metrics.uml24.umlpack;

+

+import java.util.List;

+

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.refactor.metrics.core.Metric;

+import org.eclipse.emf.refactor.metrics.interfaces.IMetricCalculator;

+import org.eclipse.emf.refactor.metrics.interfaces.IOperation;

+import org.eclipse.emf.refactor.metrics.operations.Operations;

+

+public class NAVCP implements IMetricCalculator {

+

+	private List<EObject> context;

+	private String metricID1 = "org.eclipse.emf.refactor.metrics.uml24.nasp";

+	private String metricID2 = "org.eclipse.emf.refactor.metrics.uml24.tncp";

+	

+	IOperation operation = Operations.getOperation("Division");

+

+	@Override

+	public void setContext(List<EObject> context) {

+		this.context = context;	

+	}

+

+	@Override

+	public double calculate() {

+		Metric metric1 = Metric.getMetricInstanceFromId(metricID1);

+		Metric metric2 = Metric.getMetricInstanceFromId(metricID2);

+		

+		IMetricCalculator calc1 = metric1.getCalculateClass();

+		IMetricCalculator calc2 = metric2.getCalculateClass();

+			

+		calc1.setContext(this.context);

+		calc2.setContext(this.context);

+		return operation.calculate(calc1.calculate(),calc2.calculate());

+	}

+

+}

diff --git a/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NCAP.java b/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NCAP.java
new file mode 100644
index 0000000..8c86b9b
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NCAP.java
@@ -0,0 +1,37 @@
+package org.eclipse.emf.refactor.metrics.uml24.umlpack;

+

+import java.util.List;

+

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.refactor.metrics.core.Metric;

+import org.eclipse.emf.refactor.metrics.interfaces.IMetricCalculator;

+import org.eclipse.emf.refactor.metrics.interfaces.IOperation;

+import org.eclipse.emf.refactor.metrics.operations.Operations;

+

+public class NCAP implements IMetricCalculator {

+

+	private List<EObject> context;

+	private String metricID1 = "org.eclipse.emf.refactor.metrics.uml24.nasp";

+	private String metricID2 = "org.eclipse.emf.refactor.metrics.uml24.tncp";

+	

+	IOperation operation = Operations.getOperation("Sum");

+

+	@Override

+	public void setContext(List<EObject> context) {

+		this.context = context;	

+	}

+

+	@Override

+	public double calculate() {

+		Metric metric1 = Metric.getMetricInstanceFromId(metricID1);

+		Metric metric2 = Metric.getMetricInstanceFromId(metricID2);

+		

+		IMetricCalculator calc1 = metric1.getCalculateClass();

+		IMetricCalculator calc2 = metric2.getCalculateClass();

+			

+		calc1.setContext(this.context);

+		calc2.setContext(this.context);

+		return operation.calculate(calc1.calculate(),calc2.calculate());

+	}

+

+}

diff --git a/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NDCOP.java b/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NDCOP.java
new file mode 100644
index 0000000..930183a
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NDCOP.java
@@ -0,0 +1,37 @@
+package org.eclipse.emf.refactor.metrics.uml24.umlpack;

+

+import java.util.List;

+

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.refactor.metrics.core.Metric;

+import org.eclipse.emf.refactor.metrics.interfaces.IMetricCalculator;

+import org.eclipse.emf.refactor.metrics.interfaces.IOperation;

+import org.eclipse.emf.refactor.metrics.operations.Operations;

+

+public class NDCOP implements IMetricCalculator {

+

+	private List<EObject> context;

+	private String metricID1 = "org.eclipse.emf.refactor.metrics.uml24.ntctp";

+	private String metricID2 = "org.eclipse.emf.refactor.metrics.uml24.nesubp";

+	

+	IOperation operation = Operations.getOperation("Sum");

+	

+	@Override

+	public void setContext(List<EObject> context) {

+		this.context = context;	

+	}

+	

+	@Override

+	public double calculate() {

+		Metric metric1 = Metric.getMetricInstanceFromId(metricID1);

+		Metric metric2 = Metric.getMetricInstanceFromId(metricID2);

+		

+		IMetricCalculator calc1 = metric1.getCalculateClass();

+		IMetricCalculator calc2 = metric2.getCalculateClass();

+			

+		calc1.setContext(this.context);

+		calc2.setContext(this.context);

+		return operation.calculate(calc1.calculate(),calc2.calculate());

+	}

+

+}

diff --git a/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NDOCP.java b/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NDOCP.java
new file mode 100644
index 0000000..cac0d69
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NDOCP.java
@@ -0,0 +1,37 @@
+package org.eclipse.emf.refactor.metrics.uml24.umlpack;

+

+import java.util.List;

+

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.refactor.metrics.core.Metric;

+import org.eclipse.emf.refactor.metrics.interfaces.IMetricCalculator;

+import org.eclipse.emf.refactor.metrics.interfaces.IOperation;

+import org.eclipse.emf.refactor.metrics.operations.Operations;

+

+public class NDOCP implements IMetricCalculator {

+

+	private List<EObject> context;

+	private String metricID1 = "org.eclipse.emf.refactor.metrics.uml24.nttcp";

+	private String metricID2 = "org.eclipse.emf.refactor.metrics.uml24.nesupp";

+	

+	IOperation operation = Operations.getOperation("Sum");

+	

+	@Override

+	public void setContext(List<EObject> context) {

+		this.context = context;	

+	}

+	

+	@Override

+	public double calculate() {

+		Metric metric1 = Metric.getMetricInstanceFromId(metricID1);

+		Metric metric2 = Metric.getMetricInstanceFromId(metricID2);

+		

+		IMetricCalculator calc1 = metric1.getCalculateClass();

+		IMetricCalculator calc2 = metric2.getCalculateClass();

+			

+		calc1.setContext(this.context);

+		calc2.setContext(this.context);

+		return operation.calculate(calc1.calculate(),calc2.calculate());

+	}

+

+}

diff --git a/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NICRP.java b/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NICRP.java
new file mode 100644
index 0000000..3618527
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NICRP.java
@@ -0,0 +1,37 @@
+package org.eclipse.emf.refactor.metrics.uml24.umlpack;

+

+import java.util.List;

+

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.refactor.metrics.core.Metric;

+import org.eclipse.emf.refactor.metrics.interfaces.IMetricCalculator;

+import org.eclipse.emf.refactor.metrics.interfaces.IOperation;

+import org.eclipse.emf.refactor.metrics.operations.Operations;

+

+public class NICRP implements IMetricCalculator {

+

+	private List<EObject> context;

+	private String metricID1 = "org.eclipse.emf.refactor.metrics.uml24.nitrp";

+	private String metricID2 = "org.eclipse.emf.refactor.metrics.uml24.nigp";

+	

+	IOperation operation = Operations.getOperation("Sum");

+	

+	@Override

+	public void setContext(List<EObject> context) {

+		this.context = context;	

+	}

+	

+	@Override

+	public double calculate() {

+		Metric metric1 = Metric.getMetricInstanceFromId(metricID1);

+		Metric metric2 = Metric.getMetricInstanceFromId(metricID2);

+		

+		IMetricCalculator calc1 = metric1.getCalculateClass();

+		IMetricCalculator calc2 = metric2.getCalculateClass();

+			

+		calc1.setContext(this.context);

+		calc2.setContext(this.context);

+		return operation.calculate(calc1.calculate(),calc2.calculate());

+	}

+

+}

diff --git a/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NITRP.java b/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NITRP.java
new file mode 100644
index 0000000..c5a82ac
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NITRP.java
@@ -0,0 +1,37 @@
+package org.eclipse.emf.refactor.metrics.uml24.umlpack;

+

+import java.util.List;

+

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.refactor.metrics.core.Metric;

+import org.eclipse.emf.refactor.metrics.interfaces.IMetricCalculator;

+import org.eclipse.emf.refactor.metrics.interfaces.IOperation;

+import org.eclipse.emf.refactor.metrics.operations.Operations;

+

+public class NITRP implements IMetricCalculator {

+

+	private List<EObject> context;

+	private String metricID1 = "org.eclipse.emf.refactor.metrics.uml24.niatp";

+	private String metricID2 = "org.eclipse.emf.refactor.metrics.uml24.niaep";

+	

+	IOperation operation = Operations.getOperation("Sum");

+	

+	@Override

+	public void setContext(List<EObject> context) {

+		this.context = context;	

+	}

+	

+	@Override

+	public double calculate() {

+		Metric metric1 = Metric.getMetricInstanceFromId(metricID1);

+		Metric metric2 = Metric.getMetricInstanceFromId(metricID2);

+		

+		IMetricCalculator calc1 = metric1.getCalculateClass();

+		IMetricCalculator calc2 = metric2.getCalculateClass();

+			

+		calc1.setContext(this.context);

+		calc2.setContext(this.context);

+		return operation.calculate(calc1.calculate(),calc2.calculate());

+	}

+

+}

diff --git a/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NTCTP.java b/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NTCTP.java
new file mode 100644
index 0000000..48b4c61
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NTCTP.java
@@ -0,0 +1,37 @@
+package org.eclipse.emf.refactor.metrics.uml24.umlpack;

+

+import java.util.List;

+

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.refactor.metrics.core.Metric;

+import org.eclipse.emf.refactor.metrics.interfaces.IMetricCalculator;

+import org.eclipse.emf.refactor.metrics.interfaces.IOperation;

+import org.eclipse.emf.refactor.metrics.operations.Operations;

+

+public class NTCTP implements IMetricCalculator {

+

+	private List<EObject> context;

+	private String metricID1 = "org.eclipse.emf.refactor.metrics.uml24.neacp";

+	private String metricID2 = "org.eclipse.emf.refactor.metrics.uml24.neaecp";

+	

+	IOperation operation = Operations.getOperation("Sum");

+

+	@Override

+	public void setContext(List<EObject> context) {

+		this.context = context;	

+	}

+

+	@Override

+	public double calculate() {

+		Metric metric1 = Metric.getMetricInstanceFromId(metricID1);

+		Metric metric2 = Metric.getMetricInstanceFromId(metricID2);

+		

+		IMetricCalculator calc1 = metric1.getCalculateClass();

+		IMetricCalculator calc2 = metric2.getCalculateClass();

+			

+		calc1.setContext(this.context);

+		calc2.setContext(this.context);

+		return operation.calculate(calc1.calculate(),calc2.calculate());

+	}

+

+}

diff --git a/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NTTCP.java b/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NTTCP.java
new file mode 100644
index 0000000..8ed7ba8
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NTTCP.java
@@ -0,0 +1,37 @@
+package org.eclipse.emf.refactor.metrics.uml24.umlpack;

+

+import java.util.List;

+

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.refactor.metrics.core.Metric;

+import org.eclipse.emf.refactor.metrics.interfaces.IMetricCalculator;

+import org.eclipse.emf.refactor.metrics.interfaces.IOperation;

+import org.eclipse.emf.refactor.metrics.operations.Operations;

+

+public class NTTCP implements IMetricCalculator {

+

+	private List<EObject> context;

+	private String metricID1 = "org.eclipse.emf.refactor.metrics.uml24.netap";

+	private String metricID2 = "org.eclipse.emf.refactor.metrics.uml24.naetop";

+	

+	IOperation operation = Operations.getOperation("Sum");

+	

+	@Override

+	public void setContext(List<EObject> context) {

+		this.context = context;	

+	}

+	

+	@Override

+	public double calculate() {

+		Metric metric1 = Metric.getMetricInstanceFromId(metricID1);

+		Metric metric2 = Metric.getMetricInstanceFromId(metricID2);

+		

+		IMetricCalculator calc1 = metric1.getCalculateClass();

+		IMetricCalculator calc2 = metric2.getCalculateClass();

+			

+		calc1.setContext(this.context);

+		calc2.setContext(this.context);

+		return operation.calculate(calc1.calculate(),calc2.calculate());

+	}

+

+}

diff --git a/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/OHF.java b/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/OHF.java
new file mode 100644
index 0000000..79d26f7
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/OHF.java
@@ -0,0 +1,37 @@
+package org.eclipse.emf.refactor.metrics.uml24.umlpack;

+

+import java.util.List;

+

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.refactor.metrics.core.Metric;

+import org.eclipse.emf.refactor.metrics.interfaces.IMetricCalculator;

+import org.eclipse.emf.refactor.metrics.interfaces.IOperation;

+import org.eclipse.emf.refactor.metrics.operations.Operations;

+

+public class OHF implements IMetricCalculator {

+

+	private List<EObject> context;

+	private String metricID1 = "org.eclipse.emf.refactor.metrics.uml24.nnpopp";

+	private String metricID2 = "org.eclipse.emf.refactor.metrics.uml24.nopp";

+	

+	IOperation operation = Operations.getOperation("Division");

+

+	@Override

+	public void setContext(List<EObject> context) {

+		this.context = context;	

+	}

+

+	@Override

+	public double calculate() {

+		Metric metric1 = Metric.getMetricInstanceFromId(metricID1);

+		Metric metric2 = Metric.getMetricInstanceFromId(metricID2);

+		

+		IMetricCalculator calc1 = metric1.getCalculateClass();

+		IMetricCalculator calc2 = metric2.getCalculateClass();

+			

+		calc1.setContext(this.context);

+		calc2.setContext(this.context);

+		return operation.calculate(calc1.calculate(),calc2.calculate());

+	}

+

+}

diff --git a/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/OIF.java b/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/OIF.java
new file mode 100644
index 0000000..2c446e8
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/OIF.java
@@ -0,0 +1,37 @@
+package org.eclipse.emf.refactor.metrics.uml24.umlpack;

+

+import java.util.List;

+

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.refactor.metrics.core.Metric;

+import org.eclipse.emf.refactor.metrics.interfaces.IMetricCalculator;

+import org.eclipse.emf.refactor.metrics.interfaces.IOperation;

+import org.eclipse.emf.refactor.metrics.operations.Operations;

+

+public class OIF implements IMetricCalculator {

+

+	private List<EObject> context;

+	private String metricID1 = "org.eclipse.emf.refactor.metrics.uml24.nopip";

+	private String metricID2 = "org.eclipse.emf.refactor.metrics.uml24.tnopp";

+	

+	IOperation operation = Operations.getOperation("Division");

+

+	@Override

+	public void setContext(List<EObject> context) {

+		this.context = context;	

+	}

+

+	@Override

+	public double calculate() {

+		Metric metric1 = Metric.getMetricInstanceFromId(metricID1);

+		Metric metric2 = Metric.getMetricInstanceFromId(metricID2);

+		

+		IMetricCalculator calc1 = metric1.getCalculateClass();

+		IMetricCalculator calc2 = metric2.getCalculateClass();

+			

+		calc1.setContext(this.context);

+		calc2.setContext(this.context);

+		return operation.calculate(calc1.calculate(),calc2.calculate());

+	}

+

+}

diff --git a/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/TC.java b/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/TC.java
new file mode 100644
index 0000000..29ffc34
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.compositional/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/TC.java
@@ -0,0 +1,37 @@
+package org.eclipse.emf.refactor.metrics.uml24.umlpack;

+

+import java.util.List;

+

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.refactor.metrics.core.Metric;

+import org.eclipse.emf.refactor.metrics.interfaces.IMetricCalculator;

+import org.eclipse.emf.refactor.metrics.interfaces.IOperation;

+import org.eclipse.emf.refactor.metrics.operations.Operations;

+

+public class TC implements IMetricCalculator {

+

+	private List<EObject> context;

+	private String metricID1 = "org.eclipse.emf.refactor.metrics.uml24.ca";

+	private String metricID2 = "org.eclipse.emf.refactor.metrics.uml24.ce";

+	

+	IOperation operation = Operations.getOperation("Sum");

+

+	@Override

+	public void setContext(List<EObject> context) {

+		this.context = context;	

+	}

+

+	@Override

+	public double calculate() {

+		Metric metric1 = Metric.getMetricInstanceFromId(metricID1);

+		Metric metric2 = Metric.getMetricInstanceFromId(metricID2);

+		

+		IMetricCalculator calc1 = metric1.getCalculateClass();

+		IMetricCalculator calc2 = metric2.getCalculateClass();

+			

+		calc1.setContext(this.context);

+		calc2.setContext(this.context);

+		return operation.calculate(calc1.calculate(),calc2.calculate());

+	}

+

+}

diff --git a/org.eclipse.emf.refactor.metrics.uml24.henshin/.settings/org.eclipse.core.resources.prefs b/org.eclipse.emf.refactor.metrics.uml24.henshin/.settings/org.eclipse.core.resources.prefs
index a4ca92b..322ad1e 100644
--- a/org.eclipse.emf.refactor.metrics.uml24.henshin/.settings/org.eclipse.core.resources.prefs
+++ b/org.eclipse.emf.refactor.metrics.uml24.henshin/.settings/org.eclipse.core.resources.prefs
@@ -1,6 +1,14 @@
 eclipse.preferences.version=1

 encoding//transformations/ICParC.henshin_diagram=UTF-8

 encoding//transformations/ICParI.henshin_diagram=UTF-8

+encoding//transformations/NAETOP.henshin_diagram=UTF-8

 encoding//transformations/NASOC.henshin_diagram=UTF-8

+encoding//transformations/NEACP.henshin_diagram=UTF-8

+encoding//transformations/NEAECP.henshin_diagram=UTF-8

+encoding//transformations/NESUBP.henshin_diagram=UTF-8

+encoding//transformations/NESUPP.henshin_diagram=UTF-8

+encoding//transformations/NETAP.henshin_diagram=UTF-8

+encoding//transformations/NIAEP.henshin_diagram=UTF-8

+encoding//transformations/NIGP.henshin_diagram=UTF-8

 encoding//transformations/NNIACP.henshin=UTF-8

 encoding//transformations/NNIACP.henshin_diagram=UTF-8

diff --git a/org.eclipse.emf.refactor.metrics.uml24.henshin/plugin.xml b/org.eclipse.emf.refactor.metrics.uml24.henshin/plugin.xml
index 8c6bfe1..c6ed755 100644
--- a/org.eclipse.emf.refactor.metrics.uml24.henshin/plugin.xml
+++ b/org.eclipse.emf.refactor.metrics.uml24.henshin/plugin.xml
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>

 <plugin>

+

 <extension point="org.eclipse.emf.refactor.metrics">

 	<metric 

 		id="org.eclipse.emf.refactor.metrics.uml24.nniacp" 

@@ -9,7 +10,72 @@
 		metric_metamodel="http://www.eclipse.org/uml2/4.0.0/UML" 

 		metric_name="NNIACP">

 	</metric>

+	<metric 

+		id="org.eclipse.emf.refactor.metrics.uml24.niaep" 

+		metric_calculate_class="org.eclipse.emf.refactor.metrics.umlpack.NIAEP" 

+		metric_context="Package" 

+		metric_description="Number of internal navigable owned association end types within the package" 

+		metric_metamodel="http://www.eclipse.org/uml2/4.0.0/UML" 

+		metric_name="NIAEP">

+	</metric>

+	<metric 

+		id="org.eclipse.emf.refactor.metrics.uml24.nigp" 

+		metric_calculate_class="org.eclipse.emf.refactor.metrics.umlpack.NIGP" 

+		metric_context="Package" 

+		metric_description="Number of internal generalization relationships within the package" 

+		metric_metamodel="http://www.eclipse.org/uml2/4.0.0/UML" 

+		metric_name="NIGP">

+	</metric>

+	<metric 

+		id="org.eclipse.emf.refactor.metrics.uml24.neacp" 

+		metric_calculate_class="org.eclipse.emf.refactor.metrics.umlpack.NEACP" 

+		metric_context="Package" 

+		metric_description="Number of owned attributes in external classes typed by classes within the package" 

+		metric_metamodel="http://www.eclipse.org/uml2/4.0.0/UML" 

+		metric_name="NEACP">

+	</metric>

+	<metric 

+		id="org.eclipse.emf.refactor.metrics.uml24.neaecp" 

+		metric_calculate_class="org.eclipse.emf.refactor.metrics.umlpack.NEAECP" 

+		metric_context="Package" 

+		metric_description="Number of external navigable owned association ends typed by classes within the package" 

+		metric_metamodel="http://www.eclipse.org/uml2/4.0.0/UML" 

+		metric_name="NEAECP">

+	</metric>

+	<metric 

+		id="org.eclipse.emf.refactor.metrics.uml24.naetop" 

+		metric_calculate_class="org.eclipse.emf.refactor.metrics.umlpack.NAETOP" 

+		metric_context="Package" 

+		metric_description="Number of internal navigable owned association ends typed by classes in other packages" 

+		metric_metamodel="http://www.eclipse.org/uml2/4.0.0/UML" 

+		metric_name="NAETOP">

+	</metric>

+	<metric 

+		id="org.eclipse.emf.refactor.metrics.uml24.netap" 

+		metric_calculate_class="org.eclipse.emf.refactor.metrics.umlpack.NETAP" 

+		metric_context="Package" 

+		metric_description="Number of attributes within the package typed by classes in other packages" 

+		metric_metamodel="http://www.eclipse.org/uml2/4.0.0/UML" 

+		metric_name="NETAP">

+	</metric>

+	<metric 

+		id="org.eclipse.emf.refactor.metrics.uml24.nesubp" 

+		metric_calculate_class="org.eclipse.emf.refactor.metrics.umlpack.NESUBP" 

+		metric_context="Package" 

+		metric_description="Number of classes in other packages which are direct subclasses of classes within the package" 

+		metric_metamodel="http://www.eclipse.org/uml2/4.0.0/UML" 

+		metric_name="NESUBP">

+	</metric>

+	<metric 

+		id="org.eclipse.emf.refactor.metrics.uml24.nesupp" 

+		metric_calculate_class="org.eclipse.emf.refactor.metrics.umlpack.NESUPP" 

+		metric_context="Package" 

+		metric_description="Number of classes within the package which are direct subclasses of classes in other packages" 

+		metric_metamodel="http://www.eclipse.org/uml2/4.0.0/UML" 

+		metric_name="NESUPP">

+	</metric>

 </extension>

+

 <extension point="org.eclipse.emf.refactor.metrics">

 	<metric 

 		id="org.eclipse.emf.refactor.metrics.uml24.nasoc" 

@@ -36,4 +102,5 @@
 		metric_name="ICParI">

 	</metric>

 </extension>

+

 </plugin>

diff --git a/org.eclipse.emf.refactor.metrics.uml24.henshin/src/org/eclipse/emf/refactor/metrics/umlpack/NAETOP.java b/org.eclipse.emf.refactor.metrics.uml24.henshin/src/org/eclipse/emf/refactor/metrics/umlpack/NAETOP.java
new file mode 100644
index 0000000..95644dd
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.henshin/src/org/eclipse/emf/refactor/metrics/umlpack/NAETOP.java
@@ -0,0 +1,43 @@
+package org.eclipse.emf.refactor.metrics.umlpack;

+

+import java.io.IOException;

+import java.net.URL;

+import java.util.Collections;

+import java.util.List;

+

+import org.eclipse.core.runtime.FileLocator;

+import org.eclipse.core.runtime.Path;

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.refactor.metrics.henshin.managers.HenshinManager;

+import org.eclipse.emf.refactor.metrics.interfaces.IMetricCalculator;

+import org.eclipse.emf.refactor.metrics.uml24.henshin.Activator;

+

+public class NAETOP implements IMetricCalculator {

+

+	private String transformationPath = getFullPath("transformations/NAETOP.henshin"); 

+	

+	private EObject context; 

+		

+	@Override

+	public void setContext(List<EObject> context) {

+		this.context = context.get(0);

+	}	

+		

+	@Override

+	public double calculate() {

+		return HenshinManager.run(transformationPath, this.context);

+	}

+	

+	private String getFullPath(String transformationPath){

+		URL url = FileLocator.find(Activator.getDefault().getBundle(), new Path(transformationPath), Collections.EMPTY_MAP);

+		URL fileUrl = null;

+		try {

+			fileUrl = FileLocator.toFileURL(url);

+		}

+		catch (IOException e) {

+			e.printStackTrace();

+		}

+		return 	fileUrl.getPath();

+	}	

+

+}

diff --git a/org.eclipse.emf.refactor.metrics.uml24.henshin/src/org/eclipse/emf/refactor/metrics/umlpack/NEACP.java b/org.eclipse.emf.refactor.metrics.uml24.henshin/src/org/eclipse/emf/refactor/metrics/umlpack/NEACP.java
new file mode 100644
index 0000000..1bd59ce
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.henshin/src/org/eclipse/emf/refactor/metrics/umlpack/NEACP.java
@@ -0,0 +1,42 @@
+package org.eclipse.emf.refactor.metrics.umlpack;

+

+import java.io.IOException;

+import java.net.URL;

+import java.util.Collections;

+import java.util.List;

+

+import org.eclipse.core.runtime.FileLocator;

+import org.eclipse.core.runtime.Path;

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.refactor.metrics.henshin.managers.HenshinManager;

+import org.eclipse.emf.refactor.metrics.interfaces.IMetricCalculator;

+import org.eclipse.emf.refactor.metrics.uml24.henshin.Activator;

+

+public class NEACP implements IMetricCalculator {

+

+	private String transformationPath = getFullPath("transformations/NEACP.henshin"); 

+	

+	private EObject context; 

+		

+	@Override

+	public void setContext(List<EObject> context) {

+		this.context = context.get(0);

+	}	

+		

+	@Override

+	public double calculate() {

+		return HenshinManager.run(transformationPath, this.context);

+	}

+	

+	private String getFullPath(String transformationPath){

+		URL url = FileLocator.find(Activator.getDefault().getBundle(), new Path(transformationPath), Collections.EMPTY_MAP);

+		URL fileUrl = null;

+		try {

+			fileUrl = FileLocator.toFileURL(url);

+		}

+		catch (IOException e) {

+			e.printStackTrace();

+		}

+		return 	fileUrl.getPath();

+	}	

+}

diff --git a/org.eclipse.emf.refactor.metrics.uml24.henshin/src/org/eclipse/emf/refactor/metrics/umlpack/NEAECP.java b/org.eclipse.emf.refactor.metrics.uml24.henshin/src/org/eclipse/emf/refactor/metrics/umlpack/NEAECP.java
new file mode 100644
index 0000000..96f6a24
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.henshin/src/org/eclipse/emf/refactor/metrics/umlpack/NEAECP.java
@@ -0,0 +1,43 @@
+package org.eclipse.emf.refactor.metrics.umlpack;

+

+import java.io.IOException;

+import java.net.URL;

+import java.util.Collections;

+import java.util.List;

+

+import org.eclipse.core.runtime.FileLocator;

+import org.eclipse.core.runtime.Path;

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.refactor.metrics.henshin.managers.HenshinManager;

+import org.eclipse.emf.refactor.metrics.interfaces.IMetricCalculator;

+import org.eclipse.emf.refactor.metrics.uml24.henshin.Activator;

+

+public class NEAECP implements IMetricCalculator {

+

+	private String transformationPath = getFullPath("transformations/NEAECP.henshin"); 

+	

+	private EObject context; 

+		

+	@Override

+	public void setContext(List<EObject> context) {

+		this.context = context.get(0);

+	}	

+		

+	@Override

+	public double calculate() {

+		return HenshinManager.run(transformationPath, this.context);

+	}

+	

+	private String getFullPath(String transformationPath){

+		URL url = FileLocator.find(Activator.getDefault().getBundle(), new Path(transformationPath), Collections.EMPTY_MAP);

+		URL fileUrl = null;

+		try {

+			fileUrl = FileLocator.toFileURL(url);

+		}

+		catch (IOException e) {

+			e.printStackTrace();

+		}

+		return 	fileUrl.getPath();

+	}	

+

+}

diff --git a/org.eclipse.emf.refactor.metrics.uml24.henshin/src/org/eclipse/emf/refactor/metrics/umlpack/NESUBP.java b/org.eclipse.emf.refactor.metrics.uml24.henshin/src/org/eclipse/emf/refactor/metrics/umlpack/NESUBP.java
new file mode 100644
index 0000000..5e1797c
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.henshin/src/org/eclipse/emf/refactor/metrics/umlpack/NESUBP.java
@@ -0,0 +1,43 @@
+package org.eclipse.emf.refactor.metrics.umlpack;

+

+import java.io.IOException;

+import java.net.URL;

+import java.util.Collections;

+import java.util.List;

+

+import org.eclipse.core.runtime.FileLocator;

+import org.eclipse.core.runtime.Path;

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.refactor.metrics.henshin.managers.HenshinManager;

+import org.eclipse.emf.refactor.metrics.interfaces.IMetricCalculator;

+import org.eclipse.emf.refactor.metrics.uml24.henshin.Activator;

+

+public class NESUBP implements IMetricCalculator {

+

+	private String transformationPath = getFullPath("transformations/NESUBP.henshin"); 

+	

+	private EObject context; 

+		

+	@Override

+	public void setContext(List<EObject> context) {

+		this.context = context.get(0);

+	}	

+		

+	@Override

+	public double calculate() {

+		return HenshinManager.run(transformationPath, this.context);

+	}

+	

+	private String getFullPath(String transformationPath){

+		URL url = FileLocator.find(Activator.getDefault().getBundle(), new Path(transformationPath), Collections.EMPTY_MAP);

+		URL fileUrl = null;

+		try {

+			fileUrl = FileLocator.toFileURL(url);

+		}

+		catch (IOException e) {

+			e.printStackTrace();

+		}

+		return 	fileUrl.getPath();

+	}	

+

+}

diff --git a/org.eclipse.emf.refactor.metrics.uml24.henshin/src/org/eclipse/emf/refactor/metrics/umlpack/NESUPP.java b/org.eclipse.emf.refactor.metrics.uml24.henshin/src/org/eclipse/emf/refactor/metrics/umlpack/NESUPP.java
new file mode 100644
index 0000000..e005660
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.henshin/src/org/eclipse/emf/refactor/metrics/umlpack/NESUPP.java
@@ -0,0 +1,43 @@
+package org.eclipse.emf.refactor.metrics.umlpack;

+

+import java.io.IOException;

+import java.net.URL;

+import java.util.Collections;

+import java.util.List;

+

+import org.eclipse.core.runtime.FileLocator;

+import org.eclipse.core.runtime.Path;

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.refactor.metrics.henshin.managers.HenshinManager;

+import org.eclipse.emf.refactor.metrics.interfaces.IMetricCalculator;

+import org.eclipse.emf.refactor.metrics.uml24.henshin.Activator;

+

+public class NESUPP implements IMetricCalculator {

+

+	private String transformationPath = getFullPath("transformations/NESUPP.henshin"); 

+	

+	private EObject context; 

+		

+	@Override

+	public void setContext(List<EObject> context) {

+		this.context = context.get(0);

+	}	

+		

+	@Override

+	public double calculate() {

+		return HenshinManager.run(transformationPath, this.context);

+	}

+	

+	private String getFullPath(String transformationPath){

+		URL url = FileLocator.find(Activator.getDefault().getBundle(), new Path(transformationPath), Collections.EMPTY_MAP);

+		URL fileUrl = null;

+		try {

+			fileUrl = FileLocator.toFileURL(url);

+		}

+		catch (IOException e) {

+			e.printStackTrace();

+		}

+		return 	fileUrl.getPath();

+	}	

+

+}

diff --git a/org.eclipse.emf.refactor.metrics.uml24.henshin/src/org/eclipse/emf/refactor/metrics/umlpack/NETAP.java b/org.eclipse.emf.refactor.metrics.uml24.henshin/src/org/eclipse/emf/refactor/metrics/umlpack/NETAP.java
new file mode 100644
index 0000000..ef48cd9
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.henshin/src/org/eclipse/emf/refactor/metrics/umlpack/NETAP.java
@@ -0,0 +1,43 @@
+package org.eclipse.emf.refactor.metrics.umlpack;

+

+import java.io.IOException;

+import java.net.URL;

+import java.util.Collections;

+import java.util.List;

+

+import org.eclipse.core.runtime.FileLocator;

+import org.eclipse.core.runtime.Path;

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.refactor.metrics.henshin.managers.HenshinManager;

+import org.eclipse.emf.refactor.metrics.interfaces.IMetricCalculator;

+import org.eclipse.emf.refactor.metrics.uml24.henshin.Activator;

+

+public class NETAP implements IMetricCalculator {

+

+	private String transformationPath = getFullPath("transformations/NETAP.henshin"); 

+	

+	private EObject context; 

+		

+	@Override

+	public void setContext(List<EObject> context) {

+		this.context = context.get(0);

+	}	

+		

+	@Override

+	public double calculate() {

+		return HenshinManager.run(transformationPath, this.context);

+	}

+	

+	private String getFullPath(String transformationPath){

+		URL url = FileLocator.find(Activator.getDefault().getBundle(), new Path(transformationPath), Collections.EMPTY_MAP);

+		URL fileUrl = null;

+		try {

+			fileUrl = FileLocator.toFileURL(url);

+		}

+		catch (IOException e) {

+			e.printStackTrace();

+		}

+		return 	fileUrl.getPath();

+	}	

+

+}

diff --git a/org.eclipse.emf.refactor.metrics.uml24.henshin/src/org/eclipse/emf/refactor/metrics/umlpack/NIAEP.java b/org.eclipse.emf.refactor.metrics.uml24.henshin/src/org/eclipse/emf/refactor/metrics/umlpack/NIAEP.java
new file mode 100644
index 0000000..533e5a6
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.henshin/src/org/eclipse/emf/refactor/metrics/umlpack/NIAEP.java
@@ -0,0 +1,43 @@
+package org.eclipse.emf.refactor.metrics.umlpack;

+

+import java.io.IOException;

+import java.net.URL;

+import java.util.Collections;

+import java.util.List;

+

+import org.eclipse.core.runtime.FileLocator;

+import org.eclipse.core.runtime.Path;

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.refactor.metrics.henshin.managers.HenshinManager;

+import org.eclipse.emf.refactor.metrics.interfaces.IMetricCalculator;

+import org.eclipse.emf.refactor.metrics.uml24.henshin.Activator;

+

+public class NIAEP implements IMetricCalculator {

+

+	private String transformationPath = getFullPath("transformations/NIAEP.henshin"); 

+	

+	private EObject context; 

+		

+	@Override

+	public void setContext(List<EObject> context) {

+		this.context = context.get(0);

+	}	

+		

+	@Override

+	public double calculate() {

+		return HenshinManager.run(transformationPath, this.context);

+	}

+	

+	private String getFullPath(String transformationPath){

+		URL url = FileLocator.find(Activator.getDefault().getBundle(), new Path(transformationPath), Collections.EMPTY_MAP);

+		URL fileUrl = null;

+		try {

+			fileUrl = FileLocator.toFileURL(url);

+		}

+		catch (IOException e) {

+			e.printStackTrace();

+		}

+		return 	fileUrl.getPath();

+	}	

+

+}

diff --git a/org.eclipse.emf.refactor.metrics.uml24.henshin/src/org/eclipse/emf/refactor/metrics/umlpack/NIGP.java b/org.eclipse.emf.refactor.metrics.uml24.henshin/src/org/eclipse/emf/refactor/metrics/umlpack/NIGP.java
new file mode 100644
index 0000000..bd83132
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.henshin/src/org/eclipse/emf/refactor/metrics/umlpack/NIGP.java
@@ -0,0 +1,43 @@
+package org.eclipse.emf.refactor.metrics.umlpack;

+

+import java.io.IOException;

+import java.net.URL;

+import java.util.Collections;

+import java.util.List;

+

+import org.eclipse.core.runtime.FileLocator;

+import org.eclipse.core.runtime.Path;

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.refactor.metrics.henshin.managers.HenshinManager;

+import org.eclipse.emf.refactor.metrics.interfaces.IMetricCalculator;

+import org.eclipse.emf.refactor.metrics.uml24.henshin.Activator;

+

+public class NIGP implements IMetricCalculator {

+

+	private String transformationPath = getFullPath("transformations/NIGP.henshin"); 

+	

+	private EObject context; 

+		

+	@Override

+	public void setContext(List<EObject> context) {

+		this.context = context.get(0);

+	}	

+		

+	@Override

+	public double calculate() {

+		return HenshinManager.run(transformationPath, this.context);

+	}

+	

+	private String getFullPath(String transformationPath){

+		URL url = FileLocator.find(Activator.getDefault().getBundle(), new Path(transformationPath), Collections.EMPTY_MAP);

+		URL fileUrl = null;

+		try {

+			fileUrl = FileLocator.toFileURL(url);

+		}

+		catch (IOException e) {

+			e.printStackTrace();

+		}

+		return 	fileUrl.getPath();

+	}	

+

+}

diff --git a/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NAETOP.henshin b/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NAETOP.henshin
new file mode 100644
index 0000000..12aa745
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NAETOP.henshin
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<henshin:Module xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmi:id="_DkD08KH-EeObOe_NVdEHRg">

+  <imports href="http://www.eclipse.org/uml2/4.0.0/UML#/"/>

+  <units xsi:type="henshin:Rule" xmi:id="_DkHfUKH-EeObOe_NVdEHRg" name="mainRule">

+    <parameters xmi:id="_DkIGYKH-EeObOe_NVdEHRg" name="context"/>

+    <lhs xmi:id="_DkItcKH-EeObOe_NVdEHRg" name="Lhs">

+      <nodes xmi:id="_DkM-4KH-EeObOe_NVdEHRg" name="context" outgoing="_yU5k0qH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/>

+      </nodes>

+      <nodes xmi:id="_yU3voKH-EeObOe_NVdEHRg" incoming="_yU5k0qH-EeObOe_NVdEHRg" outgoing="_1r7yEKH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Association"/>

+      </nodes>

+      <nodes xmi:id="_yxWQQKH-EeObOe_NVdEHRg" incoming="_1r7yEKH-EeObOe_NVdEHRg" outgoing="_22-o4KH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Property"/>

+      </nodes>

+      <nodes xmi:id="_zfQfIKH-EeObOe_NVdEHRg" incoming="_22-o4KH-EeObOe_NVdEHRg _f7B3QKIOEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>

+      </nodes>

+      <nodes xmi:id="_d4afQKIOEeOQIJJp0Esjjw" outgoing="_f7B3QKIOEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/>

+      </nodes>

+      <edges xmi:id="_yU5k0qH-EeObOe_NVdEHRg" source="_DkM-4KH-EeObOe_NVdEHRg" target="_yU3voKH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+      <edges xmi:id="_1r7yEKH-EeObOe_NVdEHRg" source="_yU3voKH-EeObOe_NVdEHRg" target="_yxWQQKH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Association/navigableOwnedEnd"/>

+      </edges>

+      <edges xmi:id="_22-o4KH-EeObOe_NVdEHRg" source="_yxWQQKH-EeObOe_NVdEHRg" target="_zfQfIKH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement/type"/>

+      </edges>

+      <edges xmi:id="_f7B3QKIOEeOQIJJp0Esjjw" source="_d4afQKIOEeOQIJJp0Esjjw" target="_zfQfIKH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+    </lhs>

+    <rhs xmi:id="_DkPbIaH-EeObOe_NVdEHRg" name="Rhs">

+      <nodes xmi:id="_DkPbJKH-EeObOe_NVdEHRg" name="context" outgoing="_yU5k06H-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/>

+      </nodes>

+      <nodes xmi:id="_yU5k0KH-EeObOe_NVdEHRg" incoming="_yU5k06H-EeObOe_NVdEHRg" outgoing="_1r7yEaH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Association"/>

+      </nodes>

+      <nodes xmi:id="_yxWQQaH-EeObOe_NVdEHRg" incoming="_1r7yEaH-EeObOe_NVdEHRg" outgoing="_22_P8KH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Property"/>

+      </nodes>

+      <nodes xmi:id="_zfQfIaH-EeObOe_NVdEHRg" incoming="_22_P8KH-EeObOe_NVdEHRg _f7B3QaIOEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>

+      </nodes>

+      <nodes xmi:id="_d4afQaIOEeOQIJJp0Esjjw" outgoing="_f7B3QaIOEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/>

+      </nodes>

+      <edges xmi:id="_yU5k06H-EeObOe_NVdEHRg" source="_DkPbJKH-EeObOe_NVdEHRg" target="_yU5k0KH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+      <edges xmi:id="_1r7yEaH-EeObOe_NVdEHRg" source="_yU5k0KH-EeObOe_NVdEHRg" target="_yxWQQaH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Association/navigableOwnedEnd"/>

+      </edges>

+      <edges xmi:id="_22_P8KH-EeObOe_NVdEHRg" source="_yxWQQaH-EeObOe_NVdEHRg" target="_zfQfIaH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement/type"/>

+      </edges>

+      <edges xmi:id="_f7B3QaIOEeOQIJJp0Esjjw" source="_d4afQaIOEeOQIJJp0Esjjw" target="_zfQfIaH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+    </rhs>

+    <mappings xmi:id="_DkQCMaH-EeObOe_NVdEHRg" origin="_DkM-4KH-EeObOe_NVdEHRg" image="_DkPbJKH-EeObOe_NVdEHRg"/>

+    <mappings xmi:id="_yU5k0aH-EeObOe_NVdEHRg" origin="_yU3voKH-EeObOe_NVdEHRg" image="_yU5k0KH-EeObOe_NVdEHRg"/>

+    <mappings xmi:id="_yxW3UKH-EeObOe_NVdEHRg" origin="_yxWQQKH-EeObOe_NVdEHRg" image="_yxWQQaH-EeObOe_NVdEHRg"/>

+    <mappings xmi:id="_zfQfIqH-EeObOe_NVdEHRg" origin="_zfQfIKH-EeObOe_NVdEHRg" image="_zfQfIaH-EeObOe_NVdEHRg"/>

+    <mappings xmi:id="_d4afQqIOEeOQIJJp0Esjjw" origin="_d4afQKIOEeOQIJJp0Esjjw" image="_d4afQaIOEeOQIJJp0Esjjw"/>

+  </units>

+</henshin:Module>

diff --git a/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NAETOP.henshin_diagram b/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NAETOP.henshin_diagram
new file mode 100644
index 0000000..cd9ef18
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NAETOP.henshin_diagram
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_XV3_UKIOEeOQIJJp0Esjjw" type="Henshin" measurementUnit="Pixel">

+  <children xmi:type="notation:Shape" xmi:id="_XXmdoKIOEeOQIJJp0Esjjw" type="2001" fontName="Segoe UI" italic="true" lineColor="0">

+    <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_d4bGUqIOEeOQIJJp0Esjjw" source="defaultAction">

+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_d4bGU6IOEeOQIJJp0Esjjw" key="value" value="preserve"/>

+    </eAnnotations>

+    <children xmi:type="notation:DecorationNode" xmi:id="_XXmdoqIOEeOQIJJp0Esjjw" type="5001"/>

+    <children xmi:type="notation:DecorationNode" xmi:id="_XXmdo6IOEeOQIJJp0Esjjw" type="7001">

+      <children xmi:type="notation:Shape" xmi:id="_XXo54KIOEeOQIJJp0Esjjw" type="3001" fontName="Segoe UI">

+        <children xmi:type="notation:DecorationNode" xmi:id="_XXo54qIOEeOQIJJp0Esjjw" type="5002"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_XXo546IOEeOQIJJp0Esjjw" type="5003"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_XXo55KIOEeOQIJJp0Esjjw" type="7002">

+          <styles xmi:type="notation:SortingStyle" xmi:id="_XXo55aIOEeOQIJJp0Esjjw"/>

+          <styles xmi:type="notation:FilteringStyle" xmi:id="_XXo55qIOEeOQIJJp0Esjjw"/>

+        </children>

+        <element xmi:type="henshin:Node" href="NAETOP.henshin#_DkM-4KH-EeObOe_NVdEHRg"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XXo54aIOEeOQIJJp0Esjjw" x="22" y="16"/>

+      </children>

+      <children xmi:type="notation:Shape" xmi:id="_XXpg8KIOEeOQIJJp0Esjjw" type="3001" fontName="Segoe UI">

+        <children xmi:type="notation:DecorationNode" xmi:id="_XXpg8qIOEeOQIJJp0Esjjw" type="5002"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_XXpg86IOEeOQIJJp0Esjjw" type="5003"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_XXpg9KIOEeOQIJJp0Esjjw" type="7002">

+          <styles xmi:type="notation:SortingStyle" xmi:id="_XXpg9aIOEeOQIJJp0Esjjw"/>

+          <styles xmi:type="notation:FilteringStyle" xmi:id="_XXpg9qIOEeOQIJJp0Esjjw"/>

+        </children>

+        <element xmi:type="henshin:Node" href="NAETOP.henshin#_yU3voKH-EeObOe_NVdEHRg"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XXpg8aIOEeOQIJJp0Esjjw" x="36" y="169"/>

+      </children>

+      <children xmi:type="notation:Shape" xmi:id="_XXpg96IOEeOQIJJp0Esjjw" type="3001" fontName="Segoe UI">

+        <children xmi:type="notation:DecorationNode" xmi:id="_XXqIAKIOEeOQIJJp0Esjjw" type="5002"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_XXqIAaIOEeOQIJJp0Esjjw" type="5003"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_XXqIAqIOEeOQIJJp0Esjjw" type="7002">

+          <styles xmi:type="notation:SortingStyle" xmi:id="_XXqIA6IOEeOQIJJp0Esjjw"/>

+          <styles xmi:type="notation:FilteringStyle" xmi:id="_XXqIBKIOEeOQIJJp0Esjjw"/>

+        </children>

+        <element xmi:type="henshin:Node" href="NAETOP.henshin#_yxWQQKH-EeObOe_NVdEHRg"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XXpg-KIOEeOQIJJp0Esjjw" x="280" y="169"/>

+      </children>

+      <children xmi:type="notation:Shape" xmi:id="_XXqIBaIOEeOQIJJp0Esjjw" type="3001" fontName="Segoe UI">

+        <children xmi:type="notation:DecorationNode" xmi:id="_XXqIB6IOEeOQIJJp0Esjjw" type="5002"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_XXqICKIOEeOQIJJp0Esjjw" type="5003"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_XXqICaIOEeOQIJJp0Esjjw" type="7002">

+          <styles xmi:type="notation:SortingStyle" xmi:id="_XXqICqIOEeOQIJJp0Esjjw"/>

+          <styles xmi:type="notation:FilteringStyle" xmi:id="_XXqIC6IOEeOQIJJp0Esjjw"/>

+        </children>

+        <element xmi:type="henshin:Node" href="NAETOP.henshin#_zfQfIKH-EeObOe_NVdEHRg"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XXqIBqIOEeOQIJJp0Esjjw" x="481" y="169"/>

+      </children>

+      <children xmi:type="notation:Shape" xmi:id="_d4c7gKIOEeOQIJJp0Esjjw" type="3001" fontName="Segoe UI">

+        <children xmi:type="notation:DecorationNode" xmi:id="_d4c7gqIOEeOQIJJp0Esjjw" type="5002"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_d4c7g6IOEeOQIJJp0Esjjw" type="5003"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_d4c7hKIOEeOQIJJp0Esjjw" type="7002">

+          <styles xmi:type="notation:SortingStyle" xmi:id="_d4c7haIOEeOQIJJp0Esjjw"/>

+          <styles xmi:type="notation:FilteringStyle" xmi:id="_d4c7hqIOEeOQIJJp0Esjjw"/>

+        </children>

+        <element xmi:type="henshin:Node" href="NAETOP.henshin#_d4afQKIOEeOQIJJp0Esjjw"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_d4c7gaIOEeOQIJJp0Esjjw" x="481" y="16"/>

+      </children>

+    </children>

+    <element xmi:type="henshin:Rule" href="NAETOP.henshin#_DkHfUKH-EeObOe_NVdEHRg"/>

+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XXmdoaIOEeOQIJJp0Esjjw" x="60" y="43" width="611" height="296"/>

+  </children>

+  <styles xmi:type="notation:DiagramStyle" xmi:id="_XV4mYKIOEeOQIJJp0Esjjw"/>

+  <element xmi:type="henshin:Module" href="NAETOP.henshin#_DkD08KH-EeObOe_NVdEHRg"/>

+  <edges xmi:type="notation:Connector" xmi:id="_XX4KcKIOEeOQIJJp0Esjjw" type="4001" source="_XXo54KIOEeOQIJJp0Esjjw" target="_XXpg8KIOEeOQIJJp0Esjjw">

+    <children xmi:type="notation:DecorationNode" xmi:id="_XX4Kc6IOEeOQIJJp0Esjjw" type="6001">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_XX4KdKIOEeOQIJJp0Esjjw" x="-20" y="-73"/>

+    </children>

+    <children xmi:type="notation:DecorationNode" xmi:id="_XX4KdaIOEeOQIJJp0Esjjw" type="6002">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_XX4KdqIOEeOQIJJp0Esjjw" x="13" y="-49"/>

+    </children>

+    <styles xmi:type="notation:FontStyle" xmi:id="_XX4KcaIOEeOQIJJp0Esjjw" fontName="Segoe UI"/>

+    <element xmi:type="henshin:Edge" href="NAETOP.henshin#_yU5k0qH-EeObOe_NVdEHRg"/>

+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XX4KcqIOEeOQIJJp0Esjjw" points="[-8, 26, 0, -125]$[-8, 125, 0, -26]"/>

+  </edges>

+  <edges xmi:type="notation:Connector" xmi:id="_XX5YkKIOEeOQIJJp0Esjjw" type="4001" source="_XXpg8KIOEeOQIJJp0Esjjw" target="_XXpg96IOEeOQIJJp0Esjjw">

+    <children xmi:type="notation:DecorationNode" xmi:id="_XX5Yk6IOEeOQIJJp0Esjjw" type="6001">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_XX5_oKIOEeOQIJJp0Esjjw" y="-16"/>

+    </children>

+    <children xmi:type="notation:DecorationNode" xmi:id="_XX5_oaIOEeOQIJJp0Esjjw" type="6002">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_XX5_oqIOEeOQIJJp0Esjjw" y="16"/>

+    </children>

+    <styles xmi:type="notation:FontStyle" xmi:id="_XX5YkaIOEeOQIJJp0Esjjw" fontName="Segoe UI"/>

+    <element xmi:type="henshin:Edge" href="NAETOP.henshin#_1r7yEKH-EeObOe_NVdEHRg"/>

+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XX5YkqIOEeOQIJJp0Esjjw" points="[6, 26, 0, 16]$[0, -16, -6, -26]"/>

+  </edges>

+  <edges xmi:type="notation:Connector" xmi:id="_XX5_o6IOEeOQIJJp0Esjjw" type="4001" source="_XXpg96IOEeOQIJJp0Esjjw" target="_XXqIBaIOEeOQIJJp0Esjjw">

+    <children xmi:type="notation:DecorationNode" xmi:id="_XX6msKIOEeOQIJJp0Esjjw" type="6001">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_XX6msaIOEeOQIJJp0Esjjw" x="-2" y="-16"/>

+    </children>

+    <children xmi:type="notation:DecorationNode" xmi:id="_XX6msqIOEeOQIJJp0Esjjw" type="6002">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_XX6ms6IOEeOQIJJp0Esjjw" y="16"/>

+    </children>

+    <styles xmi:type="notation:FontStyle" xmi:id="_XX5_pKIOEeOQIJJp0Esjjw" fontName="Segoe UI"/>

+    <element xmi:type="henshin:Edge" href="NAETOP.henshin#_22-o4KH-EeObOe_NVdEHRg"/>

+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XX5_paIOEeOQIJJp0Esjjw" points="[26, 26, 16, 16]$[-16, -16, -26, -26]"/>

+  </edges>

+  <edges xmi:type="notation:Connector" xmi:id="_f7DFYKIOEeOQIJJp0Esjjw" type="4001" source="_d4c7gKIOEeOQIJJp0Esjjw" target="_XXqIBaIOEeOQIJJp0Esjjw">

+    <children xmi:type="notation:DecorationNode" xmi:id="_f7DFY6IOEeOQIJJp0Esjjw" type="6001">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_f7DscKIOEeOQIJJp0Esjjw" x="-16" y="74"/>

+    </children>

+    <children xmi:type="notation:DecorationNode" xmi:id="_f7DscaIOEeOQIJJp0Esjjw" type="6002">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_f7DscqIOEeOQIJJp0Esjjw" x="10" y="60"/>

+    </children>

+    <styles xmi:type="notation:FontStyle" xmi:id="_f7DFYaIOEeOQIJJp0Esjjw" fontName="Segoe UI"/>

+    <element xmi:type="henshin:Edge" href="NAETOP.henshin#_f7B3QKIOEeOQIJJp0Esjjw"/>

+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f7DFYqIOEeOQIJJp0Esjjw" points="[-12, 26, 53, -101]$[-27, 120, 38, -7]"/>

+  </edges>

+</notation:Diagram>

diff --git a/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NEACP.henshin b/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NEACP.henshin
new file mode 100644
index 0000000..25d65f4
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NEACP.henshin
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<henshin:Module xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmi:id="_DkD08KH-EeObOe_NVdEHRg">

+  <imports href="http://www.eclipse.org/uml2/4.0.0/UML#/"/>

+  <units xsi:type="henshin:Rule" xmi:id="_DkHfUKH-EeObOe_NVdEHRg" name="mainRule">

+    <parameters xmi:id="_DkIGYKH-EeObOe_NVdEHRg" name="context"/>

+    <lhs xmi:id="_DkItcKH-EeObOe_NVdEHRg" name="Lhs">

+      <nodes xmi:id="_DkM-4KH-EeObOe_NVdEHRg" name="context" outgoing="_5g8B0KILEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/>

+      </nodes>

+      <nodes xmi:id="_5g5lkKILEeOQIJJp0Esjjw" incoming="_5g8B0KILEeOQIJJp0Esjjw _CU38oKIMEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>

+      </nodes>

+      <nodes xmi:id="_6HcoMKILEeOQIJJp0Esjjw" outgoing="_AmE4gKIMEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/>

+      </nodes>

+      <nodes xmi:id="_6zEYEKILEeOQIJJp0Esjjw" incoming="_AmE4gKIMEeOQIJJp0Esjjw" outgoing="_BzBz0KIMEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>

+      </nodes>

+      <nodes xmi:id="_7jjZ0KILEeOQIJJp0Esjjw" incoming="_BzBz0KIMEeOQIJJp0Esjjw" outgoing="_CU38oKIMEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Property"/>

+      </nodes>

+      <edges xmi:id="_5g8B0KILEeOQIJJp0Esjjw" source="_DkM-4KH-EeObOe_NVdEHRg" target="_5g5lkKILEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+      <edges xmi:id="_AmE4gKIMEeOQIJJp0Esjjw" source="_6HcoMKILEeOQIJJp0Esjjw" target="_6zEYEKILEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+      <edges xmi:id="_BzBz0KIMEeOQIJJp0Esjjw" source="_6zEYEKILEeOQIJJp0Esjjw" target="_7jjZ0KILEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//StructuredClassifier/ownedAttribute"/>

+      </edges>

+      <edges xmi:id="_CU38oKIMEeOQIJJp0Esjjw" source="_7jjZ0KILEeOQIJJp0Esjjw" target="_5g5lkKILEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement/type"/>

+      </edges>

+    </lhs>

+    <rhs xmi:id="_DkPbIaH-EeObOe_NVdEHRg" name="Rhs">

+      <nodes xmi:id="_DkPbJKH-EeObOe_NVdEHRg" name="context" outgoing="_5g8B0aILEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/>

+      </nodes>

+      <nodes xmi:id="_5g6zsKILEeOQIJJp0Esjjw" incoming="_5g8B0aILEeOQIJJp0Esjjw _CU38oaIMEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>

+      </nodes>

+      <nodes xmi:id="_6HcoMaILEeOQIJJp0Esjjw" outgoing="_AmE4gaIMEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/>

+      </nodes>

+      <nodes xmi:id="_6zEYEaILEeOQIJJp0Esjjw" incoming="_AmE4gaIMEeOQIJJp0Esjjw" outgoing="_BzBz0aIMEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>

+      </nodes>

+      <nodes xmi:id="_7jjZ0aILEeOQIJJp0Esjjw" incoming="_BzBz0aIMEeOQIJJp0Esjjw" outgoing="_CU38oaIMEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Property"/>

+      </nodes>

+      <edges xmi:id="_5g8B0aILEeOQIJJp0Esjjw" source="_DkPbJKH-EeObOe_NVdEHRg" target="_5g6zsKILEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+      <edges xmi:id="_AmE4gaIMEeOQIJJp0Esjjw" source="_6HcoMaILEeOQIJJp0Esjjw" target="_6zEYEaILEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+      <edges xmi:id="_BzBz0aIMEeOQIJJp0Esjjw" source="_6zEYEaILEeOQIJJp0Esjjw" target="_7jjZ0aILEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//StructuredClassifier/ownedAttribute"/>

+      </edges>

+      <edges xmi:id="_CU38oaIMEeOQIJJp0Esjjw" source="_7jjZ0aILEeOQIJJp0Esjjw" target="_5g6zsKILEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement/type"/>

+      </edges>

+    </rhs>

+    <mappings xmi:id="_DkQCMaH-EeObOe_NVdEHRg" origin="_DkM-4KH-EeObOe_NVdEHRg" image="_DkPbJKH-EeObOe_NVdEHRg"/>

+    <mappings xmi:id="_5g6zsaILEeOQIJJp0Esjjw" origin="_5g5lkKILEeOQIJJp0Esjjw" image="_5g6zsKILEeOQIJJp0Esjjw"/>

+    <mappings xmi:id="_6HdPQKILEeOQIJJp0Esjjw" origin="_6HcoMKILEeOQIJJp0Esjjw" image="_6HcoMaILEeOQIJJp0Esjjw"/>

+    <mappings xmi:id="_6zEYEqILEeOQIJJp0Esjjw" origin="_6zEYEKILEeOQIJJp0Esjjw" image="_6zEYEaILEeOQIJJp0Esjjw"/>

+    <mappings xmi:id="_7jjZ0qILEeOQIJJp0Esjjw" origin="_7jjZ0KILEeOQIJJp0Esjjw" image="_7jjZ0aILEeOQIJJp0Esjjw"/>

+  </units>

+</henshin:Module>

diff --git a/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NEACP.henshin_diagram b/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NEACP.henshin_diagram
new file mode 100644
index 0000000..2a1ecec
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NEACP.henshin_diagram
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_w38ywKILEeOQIJJp0Esjjw" type="Henshin" measurementUnit="Pixel">

+  <children xmi:type="notation:Shape" xmi:id="_xI6m8KILEeOQIJJp0Esjjw" type="2001" fontName="Segoe UI" italic="true" lineColor="0">

+    <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5g8o4KILEeOQIJJp0Esjjw" source="defaultAction">

+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5g8o4aILEeOQIJJp0Esjjw" key="value" value="preserve"/>

+    </eAnnotations>

+    <children xmi:type="notation:DecorationNode" xmi:id="_xI9DMKILEeOQIJJp0Esjjw" type="5001"/>

+    <children xmi:type="notation:DecorationNode" xmi:id="_xI9DMaILEeOQIJJp0Esjjw" type="7001">

+      <children xmi:type="notation:Shape" xmi:id="_xLidIKILEeOQIJJp0Esjjw" type="3001" fontName="Segoe UI">

+        <children xmi:type="notation:DecorationNode" xmi:id="_xLidIqILEeOQIJJp0Esjjw" type="5002"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_xLjEMKILEeOQIJJp0Esjjw" type="5003"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_xLjrQKILEeOQIJJp0Esjjw" type="7002">

+          <styles xmi:type="notation:SortingStyle" xmi:id="_xLjrQaILEeOQIJJp0Esjjw"/>

+          <styles xmi:type="notation:FilteringStyle" xmi:id="_xLjrQqILEeOQIJJp0Esjjw"/>

+        </children>

+        <element xmi:type="henshin:Node" href="NEACP.henshin#_DkM-4KH-EeObOe_NVdEHRg"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xLidIaILEeOQIJJp0Esjjw" x="31" y="20"/>

+      </children>

+      <children xmi:type="notation:Shape" xmi:id="_5hCvgKILEeOQIJJp0Esjjw" type="3001" fontName="Segoe UI">

+        <children xmi:type="notation:DecorationNode" xmi:id="_5hCvgqILEeOQIJJp0Esjjw" type="5002"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_5hCvg6ILEeOQIJJp0Esjjw" type="5003"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_5hDWkKILEeOQIJJp0Esjjw" type="7002">

+          <styles xmi:type="notation:SortingStyle" xmi:id="_5hDWkaILEeOQIJJp0Esjjw"/>

+          <styles xmi:type="notation:FilteringStyle" xmi:id="_5hDWkqILEeOQIJJp0Esjjw"/>

+        </children>

+        <element xmi:type="henshin:Node" href="NEACP.henshin#_5g5lkKILEeOQIJJp0Esjjw"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5hCvgaILEeOQIJJp0Esjjw" x="49" y="193"/>

+      </children>

+      <children xmi:type="notation:Shape" xmi:id="_6HfEcKILEeOQIJJp0Esjjw" type="3001" fontName="Segoe UI">

+        <children xmi:type="notation:DecorationNode" xmi:id="_6HfrgKILEeOQIJJp0Esjjw" type="5002"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_6HfrgaILEeOQIJJp0Esjjw" type="5003"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_6HfrgqILEeOQIJJp0Esjjw" type="7002">

+          <styles xmi:type="notation:SortingStyle" xmi:id="_6Hfrg6ILEeOQIJJp0Esjjw"/>

+          <styles xmi:type="notation:FilteringStyle" xmi:id="_6HfrhKILEeOQIJJp0Esjjw"/>

+        </children>

+        <element xmi:type="henshin:Node" href="NEACP.henshin#_6HcoMKILEeOQIJJp0Esjjw"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6HfEcaILEeOQIJJp0Esjjw" x="470" y="20"/>

+      </children>

+      <children xmi:type="notation:Shape" xmi:id="_6zG0UKILEeOQIJJp0Esjjw" type="3001" fontName="Segoe UI">

+        <children xmi:type="notation:DecorationNode" xmi:id="_6zHbYKILEeOQIJJp0Esjjw" type="5002"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_6zHbYaILEeOQIJJp0Esjjw" type="5003"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_6zHbYqILEeOQIJJp0Esjjw" type="7002">

+          <styles xmi:type="notation:SortingStyle" xmi:id="_6zHbY6ILEeOQIJJp0Esjjw"/>

+          <styles xmi:type="notation:FilteringStyle" xmi:id="_6zHbZKILEeOQIJJp0Esjjw"/>

+        </children>

+        <element xmi:type="henshin:Node" href="NEACP.henshin#_6zEYEKILEeOQIJJp0Esjjw"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6zG0UaILEeOQIJJp0Esjjw" x="470" y="193"/>

+      </children>

+      <children xmi:type="notation:Shape" xmi:id="_7jl2EKILEeOQIJJp0Esjjw" type="3001" fontName="Segoe UI">

+        <children xmi:type="notation:DecorationNode" xmi:id="_7jl2EqILEeOQIJJp0Esjjw" type="5002"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_7jl2E6ILEeOQIJJp0Esjjw" type="5003"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_7jmdIKILEeOQIJJp0Esjjw" type="7002">

+          <styles xmi:type="notation:SortingStyle" xmi:id="_7jmdIaILEeOQIJJp0Esjjw"/>

+          <styles xmi:type="notation:FilteringStyle" xmi:id="_7jmdIqILEeOQIJJp0Esjjw"/>

+        </children>

+        <element xmi:type="henshin:Node" href="NEACP.henshin#_7jjZ0KILEeOQIJJp0Esjjw"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7jl2EaILEeOQIJJp0Esjjw" x="258" y="193"/>

+      </children>

+    </children>

+    <element xmi:type="henshin:Rule" href="NEACP.henshin#_DkHfUKH-EeObOe_NVdEHRg"/>

+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xI6m8aILEeOQIJJp0Esjjw" x="41" y="34" width="599" height="319"/>

+  </children>

+  <styles xmi:type="notation:DiagramStyle" xmi:id="_w38ywaILEeOQIJJp0Esjjw"/>

+  <element xmi:type="henshin:Module" href="NEACP.henshin#_DkD08KH-EeObOe_NVdEHRg"/>

+  <edges xmi:type="notation:Connector" xmi:id="_5hT1QKILEeOQIJJp0Esjjw" type="4001" source="_xLidIKILEeOQIJJp0Esjjw" target="_5hCvgKILEeOQIJJp0Esjjw">

+    <children xmi:type="notation:DecorationNode" xmi:id="_5hUcUKILEeOQIJJp0Esjjw" type="6001">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_5hUcUaILEeOQIJJp0Esjjw" x="20" y="-81"/>

+    </children>

+    <children xmi:type="notation:DecorationNode" xmi:id="_5hUcUqILEeOQIJJp0Esjjw" type="6002">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_5hUcU6ILEeOQIJJp0Esjjw" x="-11" y="-53"/>

+    </children>

+    <styles xmi:type="notation:FontStyle" xmi:id="_5hT1QaILEeOQIJJp0Esjjw" fontName="Segoe UI"/>

+    <element xmi:type="henshin:Edge" href="NEACP.henshin#_5g8B0KILEeOQIJJp0Esjjw"/>

+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5hT1QqILEeOQIJJp0Esjjw" points="[-44, -26, 109, 65]$[-153, -91, 0, 0]"/>

+  </edges>

+  <edges xmi:type="notation:Connector" xmi:id="_AmGtsKIMEeOQIJJp0Esjjw" type="4001" source="_6HfEcKILEeOQIJJp0Esjjw" target="_6zG0UKILEeOQIJJp0Esjjw">

+    <children xmi:type="notation:DecorationNode" xmi:id="_AmIi4aIMEeOQIJJp0Esjjw" type="6001">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_AmIi4qIMEeOQIJJp0Esjjw" x="-5" y="79"/>

+    </children>

+    <children xmi:type="notation:DecorationNode" xmi:id="_AmIi46IMEeOQIJJp0Esjjw" type="6002">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_AmIi5KIMEeOQIJJp0Esjjw" x="-31" y="57"/>

+    </children>

+    <styles xmi:type="notation:FontStyle" xmi:id="_AmH70KIMEeOQIJJp0Esjjw" fontName="Segoe UI"/>

+    <element xmi:type="henshin:Edge" href="NEACP.henshin#_AmE4gKIMEeOQIJJp0Esjjw"/>

+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AmIi4KIMEeOQIJJp0Esjjw" points="[2, 26, -6, -146]$[2, 146, -6, -26]"/>

+  </edges>

+  <edges xmi:type="notation:Connector" xmi:id="_BzFeMKIMEeOQIJJp0Esjjw" type="4001" source="_6zG0UKILEeOQIJJp0Esjjw" target="_7jl2EKILEeOQIJJp0Esjjw">

+    <children xmi:type="notation:DecorationNode" xmi:id="_BzGFQqIMEeOQIJJp0Esjjw" type="6001">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_BzGFQ6IMEeOQIJJp0Esjjw" x="-1" y="16"/>

+    </children>

+    <children xmi:type="notation:DecorationNode" xmi:id="_BzGFRKIMEeOQIJJp0Esjjw" type="6002">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_BzGFRaIMEeOQIJJp0Esjjw" y="-16"/>

+    </children>

+    <styles xmi:type="notation:FontStyle" xmi:id="_BzGFQKIMEeOQIJJp0Esjjw" fontName="Segoe UI"/>

+    <element xmi:type="henshin:Edge" href="NEACP.henshin#_BzBz0KIMEeOQIJJp0Esjjw"/>

+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_BzGFQaIMEeOQIJJp0Esjjw" points="[-27, 26, 120, -125]$[-141, 125, 6, -26]"/>

+  </edges>

+  <edges xmi:type="notation:Connector" xmi:id="_CU5KwKIMEeOQIJJp0Esjjw" type="4001" source="_7jl2EKILEeOQIJJp0Esjjw" target="_5hCvgKILEeOQIJJp0Esjjw">

+    <children xmi:type="notation:DecorationNode" xmi:id="_CU5x0KIMEeOQIJJp0Esjjw" type="6001">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_CU5x0aIMEeOQIJJp0Esjjw" x="-2" y="16"/>

+    </children>

+    <children xmi:type="notation:DecorationNode" xmi:id="_CU5x0qIMEeOQIJJp0Esjjw" type="6002">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_CU5x06IMEeOQIJJp0Esjjw" x="-2" y="-16"/>

+    </children>

+    <styles xmi:type="notation:FontStyle" xmi:id="_CU5KwaIMEeOQIJJp0Esjjw" fontName="Segoe UI"/>

+    <element xmi:type="henshin:Edge" href="NEACP.henshin#_CU38oKIMEeOQIJJp0Esjjw"/>

+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_CU5KwqIMEeOQIJJp0Esjjw" points="[-13, -7, 317, 130]$[-292, -146, 38, -9]"/>

+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CU-DQKIMEeOQIJJp0Esjjw" id="(0.17105263157894737,0.5576923076923077)"/>

+  </edges>

+</notation:Diagram>

diff --git a/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NEAECP.henshin b/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NEAECP.henshin
new file mode 100644
index 0000000..9100d01
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NEAECP.henshin
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<henshin:Module xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmi:id="_DkD08KH-EeObOe_NVdEHRg">

+  <imports href="http://www.eclipse.org/uml2/4.0.0/UML#/"/>

+  <units xsi:type="henshin:Rule" xmi:id="_DkHfUKH-EeObOe_NVdEHRg" name="mainRule">

+    <parameters xmi:id="_DkIGYKH-EeObOe_NVdEHRg" name="context"/>

+    <lhs xmi:id="_DkItcKH-EeObOe_NVdEHRg" name="Lhs">

+      <nodes xmi:id="_DkM-4KH-EeObOe_NVdEHRg" name="context" outgoing="_5g8B0KILEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/>

+      </nodes>

+      <nodes xmi:id="_5g5lkKILEeOQIJJp0Esjjw" incoming="_5g8B0KILEeOQIJJp0Esjjw _CU38oKIMEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>

+      </nodes>

+      <nodes xmi:id="_6HcoMKILEeOQIJJp0Esjjw" outgoing="_0YE_sKINEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/>

+      </nodes>

+      <nodes xmi:id="_7jjZ0KILEeOQIJJp0Esjjw" incoming="_1co0AKINEeOQIJJp0Esjjw" outgoing="_CU38oKIMEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Property"/>

+      </nodes>

+      <nodes xmi:id="_w-oXoKINEeOQIJJp0Esjjw" incoming="_0YE_sKINEeOQIJJp0Esjjw" outgoing="_1co0AKINEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Association"/>

+      </nodes>

+      <edges xmi:id="_5g8B0KILEeOQIJJp0Esjjw" source="_DkM-4KH-EeObOe_NVdEHRg" target="_5g5lkKILEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+      <edges xmi:id="_CU38oKIMEeOQIJJp0Esjjw" source="_7jjZ0KILEeOQIJJp0Esjjw" target="_5g5lkKILEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement/type"/>

+      </edges>

+      <edges xmi:id="_0YE_sKINEeOQIJJp0Esjjw" source="_6HcoMKILEeOQIJJp0Esjjw" target="_w-oXoKINEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+      <edges xmi:id="_1co0AKINEeOQIJJp0Esjjw" source="_w-oXoKINEeOQIJJp0Esjjw" target="_7jjZ0KILEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Association/navigableOwnedEnd"/>

+      </edges>

+    </lhs>

+    <rhs xmi:id="_DkPbIaH-EeObOe_NVdEHRg" name="Rhs">

+      <nodes xmi:id="_DkPbJKH-EeObOe_NVdEHRg" name="context" outgoing="_5g8B0aILEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/>

+      </nodes>

+      <nodes xmi:id="_5g6zsKILEeOQIJJp0Esjjw" incoming="_5g8B0aILEeOQIJJp0Esjjw _CU38oaIMEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>

+      </nodes>

+      <nodes xmi:id="_6HcoMaILEeOQIJJp0Esjjw" outgoing="_0YFmwKINEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/>

+      </nodes>

+      <nodes xmi:id="_7jjZ0aILEeOQIJJp0Esjjw" incoming="_1cpbEKINEeOQIJJp0Esjjw" outgoing="_CU38oaIMEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Property"/>

+      </nodes>

+      <nodes xmi:id="_w-oXoaINEeOQIJJp0Esjjw" incoming="_0YFmwKINEeOQIJJp0Esjjw" outgoing="_1cpbEKINEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Association"/>

+      </nodes>

+      <edges xmi:id="_5g8B0aILEeOQIJJp0Esjjw" source="_DkPbJKH-EeObOe_NVdEHRg" target="_5g6zsKILEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+      <edges xmi:id="_CU38oaIMEeOQIJJp0Esjjw" source="_7jjZ0aILEeOQIJJp0Esjjw" target="_5g6zsKILEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement/type"/>

+      </edges>

+      <edges xmi:id="_0YFmwKINEeOQIJJp0Esjjw" source="_6HcoMaILEeOQIJJp0Esjjw" target="_w-oXoaINEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+      <edges xmi:id="_1cpbEKINEeOQIJJp0Esjjw" source="_w-oXoaINEeOQIJJp0Esjjw" target="_7jjZ0aILEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Association/navigableOwnedEnd"/>

+      </edges>

+    </rhs>

+    <mappings xmi:id="_DkQCMaH-EeObOe_NVdEHRg" origin="_DkM-4KH-EeObOe_NVdEHRg" image="_DkPbJKH-EeObOe_NVdEHRg"/>

+    <mappings xmi:id="_5g6zsaILEeOQIJJp0Esjjw" origin="_5g5lkKILEeOQIJJp0Esjjw" image="_5g6zsKILEeOQIJJp0Esjjw"/>

+    <mappings xmi:id="_6HdPQKILEeOQIJJp0Esjjw" origin="_6HcoMKILEeOQIJJp0Esjjw" image="_6HcoMaILEeOQIJJp0Esjjw"/>

+    <mappings xmi:id="_7jjZ0qILEeOQIJJp0Esjjw" origin="_7jjZ0KILEeOQIJJp0Esjjw" image="_7jjZ0aILEeOQIJJp0Esjjw"/>

+    <mappings xmi:id="_w-oXoqINEeOQIJJp0Esjjw" origin="_w-oXoKINEeOQIJJp0Esjjw" image="_w-oXoaINEeOQIJJp0Esjjw"/>

+  </units>

+</henshin:Module>

diff --git a/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NEAECP.henshin_diagram b/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NEAECP.henshin_diagram
new file mode 100644
index 0000000..6ab37c4
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NEAECP.henshin_diagram
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_nPwekKINEeOQIJJp0Esjjw" type="Henshin" measurementUnit="Pixel">

+  <children xmi:type="notation:Shape" xmi:id="_nRxQwKINEeOQIJJp0Esjjw" type="2001" fontName="Segoe UI" italic="true" lineColor="0">

+    <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_w-o-sqINEeOQIJJp0Esjjw" source="defaultAction">

+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_w-o-s6INEeOQIJJp0Esjjw" key="value" value="preserve"/>

+    </eAnnotations>

+    <children xmi:type="notation:DecorationNode" xmi:id="_nRxQwqINEeOQIJJp0Esjjw" type="5001"/>

+    <children xmi:type="notation:DecorationNode" xmi:id="_nRxQw6INEeOQIJJp0Esjjw" type="7001">

+      <children xmi:type="notation:Shape" xmi:id="_nR0UEKINEeOQIJJp0Esjjw" type="3001" fontName="Segoe UI">

+        <children xmi:type="notation:DecorationNode" xmi:id="_nR0UEqINEeOQIJJp0Esjjw" type="5002"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_nR0UE6INEeOQIJJp0Esjjw" type="5003"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_nR0UFKINEeOQIJJp0Esjjw" type="7002">

+          <styles xmi:type="notation:SortingStyle" xmi:id="_nR0UFaINEeOQIJJp0Esjjw"/>

+          <styles xmi:type="notation:FilteringStyle" xmi:id="_nR0UFqINEeOQIJJp0Esjjw"/>

+        </children>

+        <element xmi:type="henshin:Node" href="NEAECP.henshin#_DkM-4KH-EeObOe_NVdEHRg"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nR0UEaINEeOQIJJp0Esjjw" x="25" y="14"/>

+      </children>

+      <children xmi:type="notation:Shape" xmi:id="_nR07IKINEeOQIJJp0Esjjw" type="3001" fontName="Segoe UI">

+        <children xmi:type="notation:DecorationNode" xmi:id="_nR07IqINEeOQIJJp0Esjjw" type="5002"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_nR07I6INEeOQIJJp0Esjjw" type="5003"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_nR07JKINEeOQIJJp0Esjjw" type="7002">

+          <styles xmi:type="notation:SortingStyle" xmi:id="_nR07JaINEeOQIJJp0Esjjw"/>

+          <styles xmi:type="notation:FilteringStyle" xmi:id="_nR07JqINEeOQIJJp0Esjjw"/>

+        </children>

+        <element xmi:type="henshin:Node" href="NEAECP.henshin#_5g5lkKILEeOQIJJp0Esjjw"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nR07IaINEeOQIJJp0Esjjw" x="43" y="195"/>

+      </children>

+      <children xmi:type="notation:Shape" xmi:id="_nR1iMKINEeOQIJJp0Esjjw" type="3001" fontName="Segoe UI">

+        <children xmi:type="notation:DecorationNode" xmi:id="_nR1iMqINEeOQIJJp0Esjjw" type="5002"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_nR1iM6INEeOQIJJp0Esjjw" type="5003"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_nR1iNKINEeOQIJJp0Esjjw" type="7002">

+          <styles xmi:type="notation:SortingStyle" xmi:id="_nR1iNaINEeOQIJJp0Esjjw"/>

+          <styles xmi:type="notation:FilteringStyle" xmi:id="_nR1iNqINEeOQIJJp0Esjjw"/>

+        </children>

+        <element xmi:type="henshin:Node" href="NEAECP.henshin#_6HcoMKILEeOQIJJp0Esjjw"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nR1iMaINEeOQIJJp0Esjjw" x="497" y="14"/>

+      </children>

+      <children xmi:type="notation:Shape" xmi:id="_nR2wUKINEeOQIJJp0Esjjw" type="3001" fontName="Segoe UI">

+        <children xmi:type="notation:DecorationNode" xmi:id="_nR2wUqINEeOQIJJp0Esjjw" type="5002"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_nR2wU6INEeOQIJJp0Esjjw" type="5003"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_nR2wVKINEeOQIJJp0Esjjw" type="7002">

+          <styles xmi:type="notation:SortingStyle" xmi:id="_nR2wVaINEeOQIJJp0Esjjw"/>

+          <styles xmi:type="notation:FilteringStyle" xmi:id="_nR2wVqINEeOQIJJp0Esjjw"/>

+        </children>

+        <element xmi:type="henshin:Node" href="NEAECP.henshin#_7jjZ0KILEeOQIJJp0Esjjw"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nR2wUaINEeOQIJJp0Esjjw" x="223" y="195"/>

+      </children>

+      <children xmi:type="notation:Shape" xmi:id="_w-qz4KINEeOQIJJp0Esjjw" type="3001" fontName="Segoe UI">

+        <children xmi:type="notation:DecorationNode" xmi:id="_w-ra8KINEeOQIJJp0Esjjw" type="5002"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_w-ra8aINEeOQIJJp0Esjjw" type="5003"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_w-ra8qINEeOQIJJp0Esjjw" type="7002">

+          <styles xmi:type="notation:SortingStyle" xmi:id="_w-ra86INEeOQIJJp0Esjjw"/>

+          <styles xmi:type="notation:FilteringStyle" xmi:id="_w-ra9KINEeOQIJJp0Esjjw"/>

+        </children>

+        <element xmi:type="henshin:Node" href="NEAECP.henshin#_w-oXoKINEeOQIJJp0Esjjw"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w-qz4aINEeOQIJJp0Esjjw" x="493" y="195"/>

+      </children>

+    </children>

+    <element xmi:type="henshin:Rule" href="NEAECP.henshin#_DkHfUKH-EeObOe_NVdEHRg"/>

+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nRxQwaINEeOQIJJp0Esjjw" x="86" y="48" width="619" height="314"/>

+  </children>

+  <styles xmi:type="notation:DiagramStyle" xmi:id="_nPxFoKINEeOQIJJp0Esjjw"/>

+  <element xmi:type="henshin:Module" href="NEAECP.henshin#_DkD08KH-EeObOe_NVdEHRg"/>

+  <edges xmi:type="notation:Connector" xmi:id="_nSwvQKINEeOQIJJp0Esjjw" type="4001" source="_nR0UEKINEeOQIJJp0Esjjw" target="_nR07IKINEeOQIJJp0Esjjw">

+    <children xmi:type="notation:DecorationNode" xmi:id="_nSwvQ6INEeOQIJJp0Esjjw" type="6001">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_nSwvRKINEeOQIJJp0Esjjw" x="6" y="-76"/>

+    </children>

+    <children xmi:type="notation:DecorationNode" xmi:id="_nSwvRaINEeOQIJJp0Esjjw" type="6002">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_nSwvRqINEeOQIJJp0Esjjw" x="-24" y="-48"/>

+    </children>

+    <styles xmi:type="notation:FontStyle" xmi:id="_nSwvQaINEeOQIJJp0Esjjw" fontName="Segoe UI"/>

+    <element xmi:type="henshin:Edge" href="NEAECP.henshin#_5g8B0KILEeOQIJJp0Esjjw"/>

+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_nSwvQqINEeOQIJJp0Esjjw" points="[-7, 26, 0, 16]$[0, -16, 7, -26]"/>

+  </edges>

+  <edges xmi:type="notation:Connector" xmi:id="_nSzykKINEeOQIJJp0Esjjw" type="4001" source="_nR2wUKINEeOQIJJp0Esjjw" target="_nR07IKINEeOQIJJp0Esjjw">

+    <children xmi:type="notation:DecorationNode" xmi:id="_nSzyk6INEeOQIJJp0Esjjw" type="6001">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_nSzylKINEeOQIJJp0Esjjw" y="21"/>

+    </children>

+    <children xmi:type="notation:DecorationNode" xmi:id="_nSzylaINEeOQIJJp0Esjjw" type="6002">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_nSzylqINEeOQIJJp0Esjjw" y="-21"/>

+    </children>

+    <styles xmi:type="notation:FontStyle" xmi:id="_nSzykaINEeOQIJJp0Esjjw" fontName="Segoe UI"/>

+    <element xmi:type="henshin:Edge" href="NEAECP.henshin#_CU38oKIMEeOQIJJp0Esjjw"/>

+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_nSzykqINEeOQIJJp0Esjjw" points="[-26, -26, 4, 4]$[-4, -4, 26, 26]"/>

+  </edges>

+  <edges xmi:type="notation:Connector" xmi:id="_0YG04KINEeOQIJJp0Esjjw" type="4001" source="_nR1iMKINEeOQIJJp0Esjjw" target="_w-qz4KINEeOQIJJp0Esjjw">

+    <children xmi:type="notation:DecorationNode" xmi:id="_0YG046INEeOQIJJp0Esjjw" type="6001">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_0YG05KINEeOQIJJp0Esjjw" x="4" y="84"/>

+    </children>

+    <children xmi:type="notation:DecorationNode" xmi:id="_0YHb8KINEeOQIJJp0Esjjw" type="6002">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_0YHb8aINEeOQIJJp0Esjjw" x="-24" y="77"/>

+    </children>

+    <styles xmi:type="notation:FontStyle" xmi:id="_0YG04aINEeOQIJJp0Esjjw" fontName="Segoe UI"/>

+    <element xmi:type="henshin:Edge" href="NEAECP.henshin#_0YE_sKINEeOQIJJp0Esjjw"/>

+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0YG04qINEeOQIJJp0Esjjw" points="[-4, 26, 19, -145]$[-25, 145, -2, -26]"/>

+  </edges>

+  <edges xmi:type="notation:Connector" xmi:id="_1cqpMKINEeOQIJJp0Esjjw" type="4001" source="_w-qz4KINEeOQIJJp0Esjjw" target="_nR2wUKINEeOQIJJp0Esjjw">

+    <children xmi:type="notation:DecorationNode" xmi:id="_1cqpM6INEeOQIJJp0Esjjw" type="6001">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_1cqpNKINEeOQIJJp0Esjjw" y="22"/>

+    </children>

+    <children xmi:type="notation:DecorationNode" xmi:id="_1cqpNaINEeOQIJJp0Esjjw" type="6002">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_1cqpNqINEeOQIJJp0Esjjw" x="2" y="-16"/>

+    </children>

+    <styles xmi:type="notation:FontStyle" xmi:id="_1cqpMaINEeOQIJJp0Esjjw" fontName="Segoe UI"/>

+    <element xmi:type="henshin:Edge" href="NEAECP.henshin#_1co0AKINEeOQIJJp0Esjjw"/>

+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_1cqpMqINEeOQIJJp0Esjjw" points="[-9, 26, 62, -145]$[-33, 145, 38, -26]"/>

+  </edges>

+</notation:Diagram>

diff --git a/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NESUBP.henshin b/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NESUBP.henshin
new file mode 100644
index 0000000..879ecf3
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NESUBP.henshin
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<henshin:Module xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmi:id="_DkD08KH-EeObOe_NVdEHRg">

+  <imports href="http://www.eclipse.org/uml2/4.0.0/UML#/"/>

+  <units xsi:type="henshin:Rule" xmi:id="_DkHfUKH-EeObOe_NVdEHRg" name="mainRule">

+    <parameters xmi:id="_DkIGYKH-EeObOe_NVdEHRg" name="context"/>

+    <lhs xmi:id="_DkItcKH-EeObOe_NVdEHRg" name="Lhs">

+      <nodes xmi:id="_DkM-4KH-EeObOe_NVdEHRg" name="context" outgoing="_IQujIKIkEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/>

+      </nodes>

+      <nodes xmi:id="_Hj2PAKIkEeOQIJJp0Esjjw" outgoing="_Lz69EKIkEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/>

+      </nodes>

+      <nodes xmi:id="_IQt8EKIkEeOQIJJp0Esjjw" incoming="_IQujIKIkEeOQIJJp0Esjjw _NANKAKIkEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>

+      </nodes>

+      <nodes xmi:id="_IxUuwKIkEeOQIJJp0Esjjw" incoming="_Lz69EKIkEeOQIJJp0Esjjw" outgoing="_MbesUKIkEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>

+      </nodes>

+      <nodes xmi:id="_JMpY0KIkEeOQIJJp0Esjjw" incoming="_MbesUKIkEeOQIJJp0Esjjw" outgoing="_NANKAKIkEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Generalization"/>

+      </nodes>

+      <edges xmi:id="_IQujIKIkEeOQIJJp0Esjjw" source="_DkM-4KH-EeObOe_NVdEHRg" target="_IQt8EKIkEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+      <edges xmi:id="_Lz69EKIkEeOQIJJp0Esjjw" source="_Hj2PAKIkEeOQIJJp0Esjjw" target="_IxUuwKIkEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+      <edges xmi:id="_MbesUKIkEeOQIJJp0Esjjw" source="_IxUuwKIkEeOQIJJp0Esjjw" target="_JMpY0KIkEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier/generalization"/>

+      </edges>

+      <edges xmi:id="_NANKAKIkEeOQIJJp0Esjjw" source="_JMpY0KIkEeOQIJJp0Esjjw" target="_IQt8EKIkEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Generalization/general"/>

+      </edges>

+    </lhs>

+    <rhs xmi:id="_DkPbIaH-EeObOe_NVdEHRg" name="Rhs">

+      <nodes xmi:id="_DkPbJKH-EeObOe_NVdEHRg" name="context" outgoing="_IQujIaIkEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/>

+      </nodes>

+      <nodes xmi:id="_Hj4EMKIkEeOQIJJp0Esjjw" outgoing="_Lz69EaIkEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/>

+      </nodes>

+      <nodes xmi:id="_IQt8EaIkEeOQIJJp0Esjjw" incoming="_IQujIaIkEeOQIJJp0Esjjw _NANKAaIkEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>

+      </nodes>

+      <nodes xmi:id="_IxUuwaIkEeOQIJJp0Esjjw" incoming="_Lz69EaIkEeOQIJJp0Esjjw" outgoing="_MbesUaIkEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>

+      </nodes>

+      <nodes xmi:id="_JMpY0aIkEeOQIJJp0Esjjw" incoming="_MbesUaIkEeOQIJJp0Esjjw" outgoing="_NANKAaIkEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Generalization"/>

+      </nodes>

+      <edges xmi:id="_IQujIaIkEeOQIJJp0Esjjw" source="_DkPbJKH-EeObOe_NVdEHRg" target="_IQt8EaIkEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+      <edges xmi:id="_Lz69EaIkEeOQIJJp0Esjjw" source="_Hj4EMKIkEeOQIJJp0Esjjw" target="_IxUuwaIkEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+      <edges xmi:id="_MbesUaIkEeOQIJJp0Esjjw" source="_IxUuwaIkEeOQIJJp0Esjjw" target="_JMpY0aIkEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier/generalization"/>

+      </edges>

+      <edges xmi:id="_NANKAaIkEeOQIJJp0Esjjw" source="_JMpY0aIkEeOQIJJp0Esjjw" target="_IQt8EaIkEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Generalization/general"/>

+      </edges>

+    </rhs>

+    <mappings xmi:id="_DkQCMaH-EeObOe_NVdEHRg" origin="_DkM-4KH-EeObOe_NVdEHRg" image="_DkPbJKH-EeObOe_NVdEHRg"/>

+    <mappings xmi:id="_Hj4EMaIkEeOQIJJp0Esjjw" origin="_Hj2PAKIkEeOQIJJp0Esjjw" image="_Hj4EMKIkEeOQIJJp0Esjjw"/>

+    <mappings xmi:id="_IQt8EqIkEeOQIJJp0Esjjw" origin="_IQt8EKIkEeOQIJJp0Esjjw" image="_IQt8EaIkEeOQIJJp0Esjjw"/>

+    <mappings xmi:id="_IxUuwqIkEeOQIJJp0Esjjw" origin="_IxUuwKIkEeOQIJJp0Esjjw" image="_IxUuwaIkEeOQIJJp0Esjjw"/>

+    <mappings xmi:id="_JMpY0qIkEeOQIJJp0Esjjw" origin="_JMpY0KIkEeOQIJJp0Esjjw" image="_JMpY0aIkEeOQIJJp0Esjjw"/>

+  </units>

+</henshin:Module>

diff --git a/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NESUBP.henshin_diagram b/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NESUBP.henshin_diagram
new file mode 100644
index 0000000..57a9f8d
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NESUBP.henshin_diagram
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_Fx_P0KIkEeOQIJJp0Esjjw" type="Henshin" measurementUnit="Pixel">

+  <children xmi:type="notation:Shape" xmi:id="_F1U3sKIkEeOQIJJp0Esjjw" type="2001" fontName="Segoe UI" italic="true" lineColor="0">

+    <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Hj4ENKIkEeOQIJJp0Esjjw" source="defaultAction">

+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Hj4ENaIkEeOQIJJp0Esjjw" key="value" value="preserve"/>

+    </eAnnotations>

+    <children xmi:type="notation:DecorationNode" xmi:id="_F1VewKIkEeOQIJJp0Esjjw" type="5001"/>

+    <children xmi:type="notation:DecorationNode" xmi:id="_F1VewaIkEeOQIJJp0Esjjw" type="7001">

+      <children xmi:type="notation:Shape" xmi:id="_F1XT8KIkEeOQIJJp0Esjjw" type="3001" fontName="Segoe UI">

+        <children xmi:type="notation:DecorationNode" xmi:id="_F1XT8qIkEeOQIJJp0Esjjw" type="5002"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_F1XT86IkEeOQIJJp0Esjjw" type="5003"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_F1XT9KIkEeOQIJJp0Esjjw" type="7002">

+          <styles xmi:type="notation:SortingStyle" xmi:id="_F1XT9aIkEeOQIJJp0Esjjw"/>

+          <styles xmi:type="notation:FilteringStyle" xmi:id="_F1XT9qIkEeOQIJJp0Esjjw"/>

+        </children>

+        <element xmi:type="henshin:Node" href="NESUBP.henshin#_DkM-4KH-EeObOe_NVdEHRg"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_F1XT8aIkEeOQIJJp0Esjjw" x="25" y="20"/>

+      </children>

+      <children xmi:type="notation:Shape" xmi:id="_Hj7HgKIkEeOQIJJp0Esjjw" type="3001" fontName="Segoe UI">

+        <children xmi:type="notation:DecorationNode" xmi:id="_Hj7HgqIkEeOQIJJp0Esjjw" type="5002"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_Hj7Hg6IkEeOQIJJp0Esjjw" type="5003"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_Hj7HhKIkEeOQIJJp0Esjjw" type="7002">

+          <styles xmi:type="notation:SortingStyle" xmi:id="_Hj7HhaIkEeOQIJJp0Esjjw"/>

+          <styles xmi:type="notation:FilteringStyle" xmi:id="_Hj7HhqIkEeOQIJJp0Esjjw"/>

+        </children>

+        <element xmi:type="henshin:Node" href="NESUBP.henshin#_Hj2PAKIkEeOQIJJp0Esjjw"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Hj7HgaIkEeOQIJJp0Esjjw" x="451" y="20"/>

+      </children>

+      <children xmi:type="notation:Shape" xmi:id="_IQvxQKIkEeOQIJJp0Esjjw" type="3001" fontName="Segoe UI">

+        <children xmi:type="notation:DecorationNode" xmi:id="_IQvxQqIkEeOQIJJp0Esjjw" type="5002"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_IQwYUKIkEeOQIJJp0Esjjw" type="5003"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_IQwYUaIkEeOQIJJp0Esjjw" type="7002">

+          <styles xmi:type="notation:SortingStyle" xmi:id="_IQwYUqIkEeOQIJJp0Esjjw"/>

+          <styles xmi:type="notation:FilteringStyle" xmi:id="_IQwYU6IkEeOQIJJp0Esjjw"/>

+        </children>

+        <element xmi:type="henshin:Node" href="NESUBP.henshin#_IQt8EKIkEeOQIJJp0Esjjw"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IQvxQaIkEeOQIJJp0Esjjw" x="43" y="164"/>

+      </children>

+      <children xmi:type="notation:Shape" xmi:id="_IxWj8KIkEeOQIJJp0Esjjw" type="3001" fontName="Segoe UI">

+        <children xmi:type="notation:DecorationNode" xmi:id="_IxWj8qIkEeOQIJJp0Esjjw" type="5002"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_IxWj86IkEeOQIJJp0Esjjw" type="5003"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_IxWj9KIkEeOQIJJp0Esjjw" type="7002">

+          <styles xmi:type="notation:SortingStyle" xmi:id="_IxWj9aIkEeOQIJJp0Esjjw"/>

+          <styles xmi:type="notation:FilteringStyle" xmi:id="_IxWj9qIkEeOQIJJp0Esjjw"/>

+        </children>

+        <element xmi:type="henshin:Node" href="NESUBP.henshin#_IxUuwKIkEeOQIJJp0Esjjw"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IxWj8aIkEeOQIJJp0Esjjw" x="451" y="164"/>

+      </children>

+      <children xmi:type="notation:Shape" xmi:id="_JMrOAKIkEeOQIJJp0Esjjw" type="3001" fontName="Segoe UI">

+        <children xmi:type="notation:DecorationNode" xmi:id="_JMrOAqIkEeOQIJJp0Esjjw" type="5002"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_JMrOA6IkEeOQIJJp0Esjjw" type="5003"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_JMrOBKIkEeOQIJJp0Esjjw" type="7002">

+          <styles xmi:type="notation:SortingStyle" xmi:id="_JMrOBaIkEeOQIJJp0Esjjw"/>

+          <styles xmi:type="notation:FilteringStyle" xmi:id="_JMrOBqIkEeOQIJJp0Esjjw"/>

+        </children>

+        <element xmi:type="henshin:Node" href="NESUBP.henshin#_JMpY0KIkEeOQIJJp0Esjjw"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JMrOAaIkEeOQIJJp0Esjjw" x="224" y="164"/>

+      </children>

+    </children>

+    <element xmi:type="henshin:Rule" href="NESUBP.henshin#_DkHfUKH-EeObOe_NVdEHRg"/>

+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_F1U3saIkEeOQIJJp0Esjjw" x="56" y="30" width="583" height="272"/>

+  </children>

+  <styles xmi:type="notation:DiagramStyle" xmi:id="_Fx_P0aIkEeOQIJJp0Esjjw"/>

+  <element xmi:type="henshin:Module" href="NESUBP.henshin#_DkD08KH-EeObOe_NVdEHRg"/>

+  <edges xmi:type="notation:Connector" xmi:id="_IQ0CsKIkEeOQIJJp0Esjjw" type="4001" source="_F1XT8KIkEeOQIJJp0Esjjw" target="_IQvxQKIkEeOQIJJp0Esjjw">

+    <children xmi:type="notation:DecorationNode" xmi:id="_IQ0Cs6IkEeOQIJJp0Esjjw" type="6001">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_IQ0CtKIkEeOQIJJp0Esjjw" x="15" y="-82"/>

+    </children>

+    <children xmi:type="notation:DecorationNode" xmi:id="_IQ0CtaIkEeOQIJJp0Esjjw" type="6002">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_IQ0CtqIkEeOQIJJp0Esjjw" x="-13" y="-54"/>

+    </children>

+    <styles xmi:type="notation:FontStyle" xmi:id="_IQ0CsaIkEeOQIJJp0Esjjw" fontName="Segoe UI"/>

+    <element xmi:type="henshin:Edge" href="NESUBP.henshin#_IQujIKIkEeOQIJJp0Esjjw"/>

+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_IQ0CsqIkEeOQIJJp0Esjjw" points="[-53, -26, 87, 43]$[-140, -69, 0, 0]"/>

+  </edges>

+  <edges xmi:type="notation:Connector" xmi:id="_Lz8LMKIkEeOQIJJp0Esjjw" type="4001" source="_Hj7HgKIkEeOQIJJp0Esjjw" target="_IxWj8KIkEeOQIJJp0Esjjw">

+    <children xmi:type="notation:DecorationNode" xmi:id="_Lz8LM6IkEeOQIJJp0Esjjw" type="6001">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_Lz8LNKIkEeOQIJJp0Esjjw" x="-25" y="89"/>

+    </children>

+    <children xmi:type="notation:DecorationNode" xmi:id="_Lz8LNaIkEeOQIJJp0Esjjw" type="6002">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_Lz8LNqIkEeOQIJJp0Esjjw" y="60"/>

+    </children>

+    <styles xmi:type="notation:FontStyle" xmi:id="_Lz8LMaIkEeOQIJJp0Esjjw" fontName="Segoe UI"/>

+    <element xmi:type="henshin:Edge" href="NESUBP.henshin#_Lz69EKIkEeOQIJJp0Esjjw"/>

+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Lz8LMqIkEeOQIJJp0Esjjw" points="[2, 26, -19, -145]$[16, 145, -5, -26]"/>

+  </edges>

+  <edges xmi:type="notation:Connector" xmi:id="_Mbf6cKIkEeOQIJJp0Esjjw" type="4001" source="_IxWj8KIkEeOQIJJp0Esjjw" target="_JMrOAKIkEeOQIJJp0Esjjw">

+    <children xmi:type="notation:DecorationNode" xmi:id="_MbghgKIkEeOQIJJp0Esjjw" type="6001">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_MbghgaIkEeOQIJJp0Esjjw" x="-4" y="21"/>

+    </children>

+    <children xmi:type="notation:DecorationNode" xmi:id="_MbghgqIkEeOQIJJp0Esjjw" type="6002">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_Mbghg6IkEeOQIJJp0Esjjw" x="1" y="-16"/>

+    </children>

+    <styles xmi:type="notation:FontStyle" xmi:id="_Mbf6caIkEeOQIJJp0Esjjw" fontName="Segoe UI"/>

+    <element xmi:type="henshin:Edge" href="NESUBP.henshin#_MbesUKIkEeOQIJJp0Esjjw"/>

+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Mbf6cqIkEeOQIJJp0Esjjw" points="[-23, 18, 175, -136]$[-155, 128, 43, -26]"/>

+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Mbi9wKIkEeOQIJJp0Esjjw" id="(0.10526315789473684,0.4230769230769231)"/>

+  </edges>

+  <edges xmi:type="notation:Connector" xmi:id="_NAOYIKIkEeOQIJJp0Esjjw" type="4001" source="_JMrOAKIkEeOQIJJp0Esjjw" target="_IQvxQKIkEeOQIJJp0Esjjw">

+    <children xmi:type="notation:DecorationNode" xmi:id="_NAO_MKIkEeOQIJJp0Esjjw" type="6001">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_NAO_MaIkEeOQIJJp0Esjjw" x="1" y="16"/>

+    </children>

+    <children xmi:type="notation:DecorationNode" xmi:id="_NAO_MqIkEeOQIJJp0Esjjw" type="6002">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_NAO_M6IkEeOQIJJp0Esjjw" y="-16"/>

+    </children>

+    <styles xmi:type="notation:FontStyle" xmi:id="_NAOYIaIkEeOQIJJp0Esjjw" fontName="Segoe UI"/>

+    <element xmi:type="henshin:Edge" href="NESUBP.henshin#_NANKAKIkEeOQIJJp0Esjjw"/>

+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NAOYIqIkEeOQIJJp0Esjjw" points="[-20, -11, 216, 109]$[-230, -146, 6, -26]"/>

+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NASCgKIkEeOQIJJp0Esjjw" id="(0.19230769230769232,0.5)"/>

+  </edges>

+</notation:Diagram>

diff --git a/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NESUPP.henshin b/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NESUPP.henshin
new file mode 100644
index 0000000..0980571
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NESUPP.henshin
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<henshin:Module xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmi:id="_DkD08KH-EeObOe_NVdEHRg">

+  <imports href="http://www.eclipse.org/uml2/4.0.0/UML#/"/>

+  <units xsi:type="henshin:Rule" xmi:id="_DkHfUKH-EeObOe_NVdEHRg" name="mainRule">

+    <parameters xmi:id="_DkIGYKH-EeObOe_NVdEHRg" name="context"/>

+    <lhs xmi:id="_DkItcKH-EeObOe_NVdEHRg" name="Lhs">

+      <nodes xmi:id="_DkM-4KH-EeObOe_NVdEHRg" outgoing="_IQujIKIkEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/>

+      </nodes>

+      <nodes xmi:id="_Hj2PAKIkEeOQIJJp0Esjjw" name="context" outgoing="_Lz69EKIkEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/>

+      </nodes>

+      <nodes xmi:id="_IQt8EKIkEeOQIJJp0Esjjw" incoming="_IQujIKIkEeOQIJJp0Esjjw _NANKAKIkEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>

+      </nodes>

+      <nodes xmi:id="_IxUuwKIkEeOQIJJp0Esjjw" incoming="_Lz69EKIkEeOQIJJp0Esjjw" outgoing="_MbesUKIkEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>

+      </nodes>

+      <nodes xmi:id="_JMpY0KIkEeOQIJJp0Esjjw" incoming="_MbesUKIkEeOQIJJp0Esjjw" outgoing="_NANKAKIkEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Generalization"/>

+      </nodes>

+      <edges xmi:id="_IQujIKIkEeOQIJJp0Esjjw" source="_DkM-4KH-EeObOe_NVdEHRg" target="_IQt8EKIkEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+      <edges xmi:id="_Lz69EKIkEeOQIJJp0Esjjw" source="_Hj2PAKIkEeOQIJJp0Esjjw" target="_IxUuwKIkEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+      <edges xmi:id="_MbesUKIkEeOQIJJp0Esjjw" source="_IxUuwKIkEeOQIJJp0Esjjw" target="_JMpY0KIkEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier/generalization"/>

+      </edges>

+      <edges xmi:id="_NANKAKIkEeOQIJJp0Esjjw" source="_JMpY0KIkEeOQIJJp0Esjjw" target="_IQt8EKIkEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Generalization/general"/>

+      </edges>

+    </lhs>

+    <rhs xmi:id="_DkPbIaH-EeObOe_NVdEHRg" name="Rhs">

+      <nodes xmi:id="_DkPbJKH-EeObOe_NVdEHRg" outgoing="_IQujIaIkEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/>

+      </nodes>

+      <nodes xmi:id="_Hj4EMKIkEeOQIJJp0Esjjw" name="context" outgoing="_Lz69EaIkEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/>

+      </nodes>

+      <nodes xmi:id="_IQt8EaIkEeOQIJJp0Esjjw" incoming="_IQujIaIkEeOQIJJp0Esjjw _NANKAaIkEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>

+      </nodes>

+      <nodes xmi:id="_IxUuwaIkEeOQIJJp0Esjjw" incoming="_Lz69EaIkEeOQIJJp0Esjjw" outgoing="_MbesUaIkEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>

+      </nodes>

+      <nodes xmi:id="_JMpY0aIkEeOQIJJp0Esjjw" incoming="_MbesUaIkEeOQIJJp0Esjjw" outgoing="_NANKAaIkEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Generalization"/>

+      </nodes>

+      <edges xmi:id="_IQujIaIkEeOQIJJp0Esjjw" source="_DkPbJKH-EeObOe_NVdEHRg" target="_IQt8EaIkEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+      <edges xmi:id="_Lz69EaIkEeOQIJJp0Esjjw" source="_Hj4EMKIkEeOQIJJp0Esjjw" target="_IxUuwaIkEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+      <edges xmi:id="_MbesUaIkEeOQIJJp0Esjjw" source="_IxUuwaIkEeOQIJJp0Esjjw" target="_JMpY0aIkEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier/generalization"/>

+      </edges>

+      <edges xmi:id="_NANKAaIkEeOQIJJp0Esjjw" source="_JMpY0aIkEeOQIJJp0Esjjw" target="_IQt8EaIkEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Generalization/general"/>

+      </edges>

+    </rhs>

+    <mappings xmi:id="_DkQCMaH-EeObOe_NVdEHRg" origin="_DkM-4KH-EeObOe_NVdEHRg" image="_DkPbJKH-EeObOe_NVdEHRg"/>

+    <mappings xmi:id="_Hj4EMaIkEeOQIJJp0Esjjw" origin="_Hj2PAKIkEeOQIJJp0Esjjw" image="_Hj4EMKIkEeOQIJJp0Esjjw"/>

+    <mappings xmi:id="_IQt8EqIkEeOQIJJp0Esjjw" origin="_IQt8EKIkEeOQIJJp0Esjjw" image="_IQt8EaIkEeOQIJJp0Esjjw"/>

+    <mappings xmi:id="_IxUuwqIkEeOQIJJp0Esjjw" origin="_IxUuwKIkEeOQIJJp0Esjjw" image="_IxUuwaIkEeOQIJJp0Esjjw"/>

+    <mappings xmi:id="_JMpY0qIkEeOQIJJp0Esjjw" origin="_JMpY0KIkEeOQIJJp0Esjjw" image="_JMpY0aIkEeOQIJJp0Esjjw"/>

+  </units>

+</henshin:Module>

diff --git a/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NESUPP.henshin_diagram b/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NESUPP.henshin_diagram
new file mode 100644
index 0000000..ace680a
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NESUPP.henshin_diagram
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_kMKcMKKFEeOQIJJp0Esjjw" type="Henshin" measurementUnit="Pixel">

+  <children xmi:type="notation:Shape" xmi:id="_kQj0AKKFEeOQIJJp0Esjjw" type="2001" fontName="Segoe UI" italic="true" lineColor="0">

+    <children xmi:type="notation:DecorationNode" xmi:id="_kQj0AqKFEeOQIJJp0Esjjw" type="5001"/>

+    <children xmi:type="notation:DecorationNode" xmi:id="_kQj0A6KFEeOQIJJp0Esjjw" type="7001">

+      <children xmi:type="notation:Shape" xmi:id="_kQlpMKKFEeOQIJJp0Esjjw" type="3001" fontName="Segoe UI">

+        <children xmi:type="notation:DecorationNode" xmi:id="_kQlpMqKFEeOQIJJp0Esjjw" type="5002"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_kQlpM6KFEeOQIJJp0Esjjw" type="5003"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_kQlpNKKFEeOQIJJp0Esjjw" type="7002">

+          <styles xmi:type="notation:SortingStyle" xmi:id="_kQlpNaKFEeOQIJJp0Esjjw"/>

+          <styles xmi:type="notation:FilteringStyle" xmi:id="_kQlpNqKFEeOQIJJp0Esjjw"/>

+        </children>

+        <element xmi:type="henshin:Node" href="NESUPP.henshin#_DkM-4KH-EeObOe_NVdEHRg"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kQlpMaKFEeOQIJJp0Esjjw" x="32" y="25"/>

+      </children>

+      <children xmi:type="notation:Shape" xmi:id="_kQmQQKKFEeOQIJJp0Esjjw" type="3001" fontName="Segoe UI">

+        <children xmi:type="notation:DecorationNode" xmi:id="_kQmQQqKFEeOQIJJp0Esjjw" type="5002"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_kQmQQ6KFEeOQIJJp0Esjjw" type="5003"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_kQmQRKKFEeOQIJJp0Esjjw" type="7002">

+          <styles xmi:type="notation:SortingStyle" xmi:id="_kQmQRaKFEeOQIJJp0Esjjw"/>

+          <styles xmi:type="notation:FilteringStyle" xmi:id="_kQmQRqKFEeOQIJJp0Esjjw"/>

+        </children>

+        <element xmi:type="henshin:Node" href="NESUPP.henshin#_Hj2PAKIkEeOQIJJp0Esjjw"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kQmQQaKFEeOQIJJp0Esjjw" x="432" y="25"/>

+      </children>

+      <children xmi:type="notation:Shape" xmi:id="_kQmQR6KFEeOQIJJp0Esjjw" type="3001" fontName="Segoe UI">

+        <children xmi:type="notation:DecorationNode" xmi:id="_kQmQSaKFEeOQIJJp0Esjjw" type="5002"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_kQm3UKKFEeOQIJJp0Esjjw" type="5003"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_kQm3UaKFEeOQIJJp0Esjjw" type="7002">

+          <styles xmi:type="notation:SortingStyle" xmi:id="_kQm3UqKFEeOQIJJp0Esjjw"/>

+          <styles xmi:type="notation:FilteringStyle" xmi:id="_kQm3U6KFEeOQIJJp0Esjjw"/>

+        </children>

+        <element xmi:type="henshin:Node" href="NESUPP.henshin#_IQt8EKIkEeOQIJJp0Esjjw"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kQmQSKKFEeOQIJJp0Esjjw" x="32" y="160"/>

+      </children>

+      <children xmi:type="notation:Shape" xmi:id="_kQm3VKKFEeOQIJJp0Esjjw" type="3001" fontName="Segoe UI">

+        <children xmi:type="notation:DecorationNode" xmi:id="_kQm3VqKFEeOQIJJp0Esjjw" type="5002"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_kQm3V6KFEeOQIJJp0Esjjw" type="5003"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_kQm3WKKFEeOQIJJp0Esjjw" type="7002">

+          <styles xmi:type="notation:SortingStyle" xmi:id="_kQm3WaKFEeOQIJJp0Esjjw"/>

+          <styles xmi:type="notation:FilteringStyle" xmi:id="_kQm3WqKFEeOQIJJp0Esjjw"/>

+        </children>

+        <element xmi:type="henshin:Node" href="NESUPP.henshin#_IxUuwKIkEeOQIJJp0Esjjw"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kQm3VaKFEeOQIJJp0Esjjw" x="450" y="160"/>

+      </children>

+      <children xmi:type="notation:Shape" xmi:id="_kQneYKKFEeOQIJJp0Esjjw" type="3001" fontName="Segoe UI">

+        <children xmi:type="notation:DecorationNode" xmi:id="_kQneYqKFEeOQIJJp0Esjjw" type="5002"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_kQneY6KFEeOQIJJp0Esjjw" type="5003"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_kQneZKKFEeOQIJJp0Esjjw" type="7002">

+          <styles xmi:type="notation:SortingStyle" xmi:id="_kQneZaKFEeOQIJJp0Esjjw"/>

+          <styles xmi:type="notation:FilteringStyle" xmi:id="_kQneZqKFEeOQIJJp0Esjjw"/>

+        </children>

+        <element xmi:type="henshin:Node" href="NESUPP.henshin#_JMpY0KIkEeOQIJJp0Esjjw"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kQneYaKFEeOQIJJp0Esjjw" x="219" y="160"/>

+      </children>

+    </children>

+    <element xmi:type="henshin:Rule" href="NESUPP.henshin#_DkHfUKH-EeObOe_NVdEHRg"/>

+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kQj0AaKFEeOQIJJp0Esjjw" x="40" y="34" width="571" height="293"/>

+  </children>

+  <styles xmi:type="notation:DiagramStyle" xmi:id="_kMKcMaKFEeOQIJJp0Esjjw"/>

+  <element xmi:type="henshin:Module" href="NESUPP.henshin#_DkD08KH-EeObOe_NVdEHRg"/>

+  <edges xmi:type="notation:Connector" xmi:id="_kQ2H4KKFEeOQIJJp0Esjjw" type="4001" source="_kQlpMKKFEeOQIJJp0Esjjw" target="_kQmQR6KFEeOQIJJp0Esjjw">

+    <children xmi:type="notation:DecorationNode" xmi:id="_kQ2H46KFEeOQIJJp0Esjjw" type="6001">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_kQ2H5KKFEeOQIJJp0Esjjw" x="17" y="-72"/>

+    </children>

+    <children xmi:type="notation:DecorationNode" xmi:id="_kQ2H5aKFEeOQIJJp0Esjjw" type="6002">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_kQ2H5qKFEeOQIJJp0Esjjw" x="-5" y="-51"/>

+    </children>

+    <styles xmi:type="notation:FontStyle" xmi:id="_kQ2H4aKFEeOQIJJp0Esjjw" fontName="Segoe UI"/>

+    <element xmi:type="henshin:Edge" href="NESUPP.henshin#_IQujIKIkEeOQIJJp0Esjjw"/>

+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kQ2H4qKFEeOQIJJp0Esjjw" points="[3, 26, 0, 6]$[0, -6, -3, -26]"/>

+  </edges>

+  <edges xmi:type="notation:Connector" xmi:id="_kQ2u8KKFEeOQIJJp0Esjjw" type="4001" source="_kQmQQKKFEeOQIJJp0Esjjw" target="_kQm3VKKFEeOQIJJp0Esjjw">

+    <children xmi:type="notation:DecorationNode" xmi:id="_kQ2u86KFEeOQIJJp0Esjjw" type="6001">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_kQ2u9KKFEeOQIJJp0Esjjw" x="9" y="71"/>

+    </children>

+    <children xmi:type="notation:DecorationNode" xmi:id="_kQ2u9aKFEeOQIJJp0Esjjw" type="6002">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_kQ2u9qKFEeOQIJJp0Esjjw" x="-10" y="60"/>

+    </children>

+    <styles xmi:type="notation:FontStyle" xmi:id="_kQ2u8aKFEeOQIJJp0Esjjw" fontName="Segoe UI"/>

+    <element xmi:type="henshin:Edge" href="NESUPP.henshin#_Lz69EKIkEeOQIJJp0Esjjw"/>

+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kQ2u8qKFEeOQIJJp0Esjjw" points="[26, 26, 6, 6]$[-6, -6, -26, -26]"/>

+  </edges>

+  <edges xmi:type="notation:Connector" xmi:id="_kQ3WAKKFEeOQIJJp0Esjjw" type="4001" source="_kQm3VKKFEeOQIJJp0Esjjw" target="_kQneYKKFEeOQIJJp0Esjjw">

+    <children xmi:type="notation:DecorationNode" xmi:id="_kQ3WA6KFEeOQIJJp0Esjjw" type="6001">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_kQ39EKKFEeOQIJJp0Esjjw" x="-2" y="16"/>

+    </children>

+    <children xmi:type="notation:DecorationNode" xmi:id="_kQ39EaKFEeOQIJJp0Esjjw" type="6002">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_kQ39EqKFEeOQIJJp0Esjjw" x="-2" y="-16"/>

+    </children>

+    <styles xmi:type="notation:FontStyle" xmi:id="_kQ3WAaKFEeOQIJJp0Esjjw" fontName="Segoe UI"/>

+    <element xmi:type="henshin:Edge" href="NESUPP.henshin#_MbesUKIkEeOQIJJp0Esjjw"/>

+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kQ3WAqKFEeOQIJJp0Esjjw" points="[38, 15, 14, 5]$[-28, -12, -52, -22]"/>

+  </edges>

+  <edges xmi:type="notation:Connector" xmi:id="_kQ39E6KFEeOQIJJp0Esjjw" type="4001" source="_kQneYKKFEeOQIJJp0Esjjw" target="_kQmQR6KFEeOQIJJp0Esjjw">

+    <children xmi:type="notation:DecorationNode" xmi:id="_kQ4kIKKFEeOQIJJp0Esjjw" type="6001">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_kQ4kIaKFEeOQIJJp0Esjjw" x="-1" y="16"/>

+    </children>

+    <children xmi:type="notation:DecorationNode" xmi:id="_kQ4kIqKFEeOQIJJp0Esjjw" type="6002">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_kQ4kI6KFEeOQIJJp0Esjjw" x="-5" y="-16"/>

+    </children>

+    <styles xmi:type="notation:FontStyle" xmi:id="_kQ39FKKFEeOQIJJp0Esjjw" fontName="Segoe UI"/>

+    <element xmi:type="henshin:Edge" href="NESUPP.henshin#_NANKAKIkEeOQIJJp0Esjjw"/>

+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kQ39FaKFEeOQIJJp0Esjjw" points="[-45, -26, -11, -6]$[4, 2, 38, 22]"/>

+  </edges>

+</notation:Diagram>

diff --git a/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NETAP.henshin b/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NETAP.henshin
new file mode 100644
index 0000000..4e17abe
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NETAP.henshin
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<henshin:Module xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmi:id="_DkD08KH-EeObOe_NVdEHRg">

+  <imports href="http://www.eclipse.org/uml2/4.0.0/UML#/"/>

+  <units xsi:type="henshin:Rule" xmi:id="_DkHfUKH-EeObOe_NVdEHRg" name="mainRule">

+    <parameters xmi:id="_DkIGYKH-EeObOe_NVdEHRg" name="context"/>

+    <lhs xmi:id="_DkItcKH-EeObOe_NVdEHRg" name="Lhs">

+      <nodes xmi:id="_DkM-4KH-EeObOe_NVdEHRg" name="context" outgoing="_zfQfI6H-EeObOe_NVdEHRg _5uPu8KIUEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/>

+      </nodes>

+      <nodes xmi:id="_yxWQQKH-EeObOe_NVdEHRg" incoming="_7Ti40KIUEeOQIJJp0Esjjw" outgoing="_22-o4KH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Property"/>

+      </nodes>

+      <nodes xmi:id="_zfQfIKH-EeObOe_NVdEHRg" incoming="_zfQfI6H-EeObOe_NVdEHRg _22-o4KH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>

+      </nodes>

+      <nodes xmi:id="_5uPH4KIUEeOQIJJp0Esjjw" incoming="_5uPu8KIUEeOQIJJp0Esjjw" outgoing="_7Ti40KIUEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>

+      </nodes>

+      <edges xmi:id="_zfQfI6H-EeObOe_NVdEHRg" source="_DkM-4KH-EeObOe_NVdEHRg" target="_zfQfIKH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+      <edges xmi:id="_22-o4KH-EeObOe_NVdEHRg" source="_yxWQQKH-EeObOe_NVdEHRg" target="_zfQfIKH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement/type"/>

+      </edges>

+      <edges xmi:id="_5uPu8KIUEeOQIJJp0Esjjw" source="_DkM-4KH-EeObOe_NVdEHRg" target="_5uPH4KIUEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+      <edges xmi:id="_7Ti40KIUEeOQIJJp0Esjjw" source="_5uPH4KIUEeOQIJJp0Esjjw" target="_yxWQQKH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//StructuredClassifier/ownedAttribute"/>

+      </edges>

+    </lhs>

+    <rhs xmi:id="_DkPbIaH-EeObOe_NVdEHRg" name="Rhs">

+      <nodes xmi:id="_DkPbJKH-EeObOe_NVdEHRg" name="context" outgoing="_zfRGMKH-EeObOe_NVdEHRg _5uPu8aIUEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/>

+      </nodes>

+      <nodes xmi:id="_yxWQQaH-EeObOe_NVdEHRg" incoming="_7Ti40aIUEeOQIJJp0Esjjw" outgoing="_22_P8KH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Property"/>

+      </nodes>

+      <nodes xmi:id="_zfQfIaH-EeObOe_NVdEHRg" incoming="_zfRGMKH-EeObOe_NVdEHRg _22_P8KH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>

+      </nodes>

+      <nodes xmi:id="_5uPH4aIUEeOQIJJp0Esjjw" incoming="_5uPu8aIUEeOQIJJp0Esjjw" outgoing="_7Ti40aIUEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>

+      </nodes>

+      <edges xmi:id="_zfRGMKH-EeObOe_NVdEHRg" source="_DkPbJKH-EeObOe_NVdEHRg" target="_zfQfIaH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+      <edges xmi:id="_22_P8KH-EeObOe_NVdEHRg" source="_yxWQQaH-EeObOe_NVdEHRg" target="_zfQfIaH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement/type"/>

+      </edges>

+      <edges xmi:id="_5uPu8aIUEeOQIJJp0Esjjw" source="_DkPbJKH-EeObOe_NVdEHRg" target="_5uPH4aIUEeOQIJJp0Esjjw">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+      <edges xmi:id="_7Ti40aIUEeOQIJJp0Esjjw" source="_5uPH4aIUEeOQIJJp0Esjjw" target="_yxWQQaH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//StructuredClassifier/ownedAttribute"/>

+      </edges>

+    </rhs>

+    <mappings xmi:id="_DkQCMaH-EeObOe_NVdEHRg" origin="_DkM-4KH-EeObOe_NVdEHRg" image="_DkPbJKH-EeObOe_NVdEHRg"/>

+    <mappings xmi:id="_yxW3UKH-EeObOe_NVdEHRg" origin="_yxWQQKH-EeObOe_NVdEHRg" image="_yxWQQaH-EeObOe_NVdEHRg"/>

+    <mappings xmi:id="_zfQfIqH-EeObOe_NVdEHRg" origin="_zfQfIKH-EeObOe_NVdEHRg" image="_zfQfIaH-EeObOe_NVdEHRg"/>

+    <mappings xmi:id="_5uPH4qIUEeOQIJJp0Esjjw" origin="_5uPH4KIUEeOQIJJp0Esjjw" image="_5uPH4aIUEeOQIJJp0Esjjw"/>

+  </units>

+</henshin:Module>

diff --git a/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NETAP.henshin_diagram b/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NETAP.henshin_diagram
new file mode 100644
index 0000000..dcbf956
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NETAP.henshin_diagram
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_lrl48KIUEeOQIJJp0Esjjw" type="Henshin" measurementUnit="Pixel">

+  <children xmi:type="notation:Shape" xmi:id="_ltG74KIUEeOQIJJp0Esjjw" type="2001" fontName="Segoe UI" italic="true" lineColor="0">

+    <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5uPu8qIUEeOQIJJp0Esjjw" source="defaultAction">

+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5uPu86IUEeOQIJJp0Esjjw" key="value" value="preserve"/>

+    </eAnnotations>

+    <children xmi:type="notation:DecorationNode" xmi:id="_ltG74qIUEeOQIJJp0Esjjw" type="5001"/>

+    <children xmi:type="notation:DecorationNode" xmi:id="_ltG746IUEeOQIJJp0Esjjw" type="7001">

+      <children xmi:type="notation:Shape" xmi:id="_ltIxEKIUEeOQIJJp0Esjjw" type="3001" fontName="Segoe UI">

+        <children xmi:type="notation:DecorationNode" xmi:id="_ltJYIKIUEeOQIJJp0Esjjw" type="5002"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_ltJYIaIUEeOQIJJp0Esjjw" type="5003"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_ltJYIqIUEeOQIJJp0Esjjw" type="7002">

+          <styles xmi:type="notation:SortingStyle" xmi:id="_ltJYI6IUEeOQIJJp0Esjjw"/>

+          <styles xmi:type="notation:FilteringStyle" xmi:id="_ltJYJKIUEeOQIJJp0Esjjw"/>

+        </children>

+        <element xmi:type="henshin:Node" href="NETAP.henshin#_DkM-4KH-EeObOe_NVdEHRg"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ltIxEaIUEeOQIJJp0Esjjw" x="29" y="22"/>

+      </children>

+      <children xmi:type="notation:Shape" xmi:id="_ltJ_MKIUEeOQIJJp0Esjjw" type="3001" fontName="Segoe UI">

+        <children xmi:type="notation:DecorationNode" xmi:id="_ltJ_MqIUEeOQIJJp0Esjjw" type="5002"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_ltJ_M6IUEeOQIJJp0Esjjw" type="5003"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_ltJ_NKIUEeOQIJJp0Esjjw" type="7002">

+          <styles xmi:type="notation:SortingStyle" xmi:id="_ltJ_NaIUEeOQIJJp0Esjjw"/>

+          <styles xmi:type="notation:FilteringStyle" xmi:id="_ltJ_NqIUEeOQIJJp0Esjjw"/>

+        </children>

+        <element xmi:type="henshin:Node" href="NETAP.henshin#_yxWQQKH-EeObOe_NVdEHRg"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ltJ_MaIUEeOQIJJp0Esjjw" x="324" y="183"/>

+      </children>

+      <children xmi:type="notation:Shape" xmi:id="_ltJ_N6IUEeOQIJJp0Esjjw" type="3001" fontName="Segoe UI">

+        <children xmi:type="notation:DecorationNode" xmi:id="_ltL0YKIUEeOQIJJp0Esjjw" type="5002"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_ltL0YaIUEeOQIJJp0Esjjw" type="5003"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_ltL0YqIUEeOQIJJp0Esjjw" type="7002">

+          <styles xmi:type="notation:SortingStyle" xmi:id="_ltL0Y6IUEeOQIJJp0Esjjw"/>

+          <styles xmi:type="notation:FilteringStyle" xmi:id="_ltL0ZKIUEeOQIJJp0Esjjw"/>

+        </children>

+        <element xmi:type="henshin:Node" href="NETAP.henshin#_zfQfIKH-EeObOe_NVdEHRg"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ltJ_OKIUEeOQIJJp0Esjjw" x="324" y="22"/>

+      </children>

+      <children xmi:type="notation:Shape" xmi:id="_5uRkIKIUEeOQIJJp0Esjjw" type="3001" fontName="Segoe UI">

+        <children xmi:type="notation:DecorationNode" xmi:id="_5uRkIqIUEeOQIJJp0Esjjw" type="5002"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_5uRkI6IUEeOQIJJp0Esjjw" type="5003"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_5uRkJKIUEeOQIJJp0Esjjw" type="7002">

+          <styles xmi:type="notation:SortingStyle" xmi:id="_5uRkJaIUEeOQIJJp0Esjjw"/>

+          <styles xmi:type="notation:FilteringStyle" xmi:id="_5uRkJqIUEeOQIJJp0Esjjw"/>

+        </children>

+        <element xmi:type="henshin:Node" href="NETAP.henshin#_5uPH4KIUEeOQIJJp0Esjjw"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5uRkIaIUEeOQIJJp0Esjjw" x="47" y="183"/>

+      </children>

+    </children>

+    <element xmi:type="henshin:Rule" href="NETAP.henshin#_DkHfUKH-EeObOe_NVdEHRg"/>

+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ltG74aIUEeOQIJJp0Esjjw" x="61" y="39" width="469" height="317"/>

+  </children>

+  <styles xmi:type="notation:DiagramStyle" xmi:id="_lrl48aIUEeOQIJJp0Esjjw"/>

+  <element xmi:type="henshin:Module" href="NETAP.henshin#_DkD08KH-EeObOe_NVdEHRg"/>

+  <edges xmi:type="notation:Connector" xmi:id="_ltbE8KIUEeOQIJJp0Esjjw" type="4001" source="_ltIxEKIUEeOQIJJp0Esjjw" target="_ltJ_N6IUEeOQIJJp0Esjjw">

+    <children xmi:type="notation:DecorationNode" xmi:id="_ltbE86IUEeOQIJJp0Esjjw" type="6001">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_ltbE9KIUEeOQIJJp0Esjjw" x="6" y="-16"/>

+    </children>

+    <children xmi:type="notation:DecorationNode" xmi:id="_ltbE9aIUEeOQIJJp0Esjjw" type="6002">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_ltbsAKIUEeOQIJJp0Esjjw" x="2" y="16"/>

+    </children>

+    <styles xmi:type="notation:FontStyle" xmi:id="_ltbE8aIUEeOQIJJp0Esjjw" fontName="Segoe UI"/>

+    <element xmi:type="henshin:Edge" href="NETAP.henshin#_zfQfI6H-EeObOe_NVdEHRg"/>

+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ltbE8qIUEeOQIJJp0Esjjw" points="[11, 26, -2, -4]$[2, 4, -11, -26]"/>

+  </edges>

+  <edges xmi:type="notation:Connector" xmi:id="_ltc6IKIUEeOQIJJp0Esjjw" type="4001" source="_ltJ_MKIUEeOQIJJp0Esjjw" target="_ltJ_N6IUEeOQIJJp0Esjjw">

+    <children xmi:type="notation:DecorationNode" xmi:id="_ltc6I6IUEeOQIJJp0Esjjw" type="6001">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_ltc6JKIUEeOQIJJp0Esjjw" x="-7" y="23"/>

+    </children>

+    <children xmi:type="notation:DecorationNode" xmi:id="_ltc6JaIUEeOQIJJp0Esjjw" type="6002">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_ltc6JqIUEeOQIJJp0Esjjw" x="5" y="-48"/>

+    </children>

+    <styles xmi:type="notation:FontStyle" xmi:id="_ltc6IaIUEeOQIJJp0Esjjw" fontName="Segoe UI"/>

+    <element xmi:type="henshin:Edge" href="NETAP.henshin#_22-o4KH-EeObOe_NVdEHRg"/>

+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ltc6IqIUEeOQIJJp0Esjjw" points="[26, 26, 16, 16]$[-16, -16, -26, -26]"/>

+  </edges>

+  <edges xmi:type="notation:Connector" xmi:id="_5uVOgKIUEeOQIJJp0Esjjw" type="4001" source="_ltIxEKIUEeOQIJJp0Esjjw" target="_5uRkIKIUEeOQIJJp0Esjjw">

+    <children xmi:type="notation:DecorationNode" xmi:id="_5uVOg6IUEeOQIJJp0Esjjw" type="6001">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_5uV1kKIUEeOQIJJp0Esjjw" x="11" y="-76"/>

+    </children>

+    <children xmi:type="notation:DecorationNode" xmi:id="_5uV1kaIUEeOQIJJp0Esjjw" type="6002">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_5uV1kqIUEeOQIJJp0Esjjw" x="-15" y="-47"/>

+    </children>

+    <styles xmi:type="notation:FontStyle" xmi:id="_5uVOgaIUEeOQIJJp0Esjjw" fontName="Segoe UI"/>

+    <element xmi:type="henshin:Edge" href="NETAP.henshin#_5uPu8KIUEeOQIJJp0Esjjw"/>

+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5uVOgqIUEeOQIJJp0Esjjw" points="[-45, -26, 71, 42]$[-116, -68, 0, 0]"/>

+  </edges>

+  <edges xmi:type="notation:Connector" xmi:id="_7TkG8KIUEeOQIJJp0Esjjw" type="4001" source="_5uRkIKIUEeOQIJJp0Esjjw" target="_ltJ_MKIUEeOQIJJp0Esjjw">

+    <children xmi:type="notation:DecorationNode" xmi:id="_7TkuAKIUEeOQIJJp0Esjjw" type="6001">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_7TkuAaIUEeOQIJJp0Esjjw" x="9" y="-16"/>

+    </children>

+    <children xmi:type="notation:DecorationNode" xmi:id="_7TkuAqIUEeOQIJJp0Esjjw" type="6002">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_7TkuA6IUEeOQIJJp0Esjjw" x="4" y="16"/>

+    </children>

+    <styles xmi:type="notation:FontStyle" xmi:id="_7TkG8aIUEeOQIJJp0Esjjw" fontName="Segoe UI"/>

+    <element xmi:type="henshin:Edge" href="NETAP.henshin#_7Ti40KIUEeOQIJJp0Esjjw"/>

+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7TkG8qIUEeOQIJJp0Esjjw" points="[38, -4, -192, 9]$[234, 13, 4, 26]"/>

+  </edges>

+</notation:Diagram>

diff --git a/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NIAEP.henshin b/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NIAEP.henshin
new file mode 100644
index 0000000..bcd90a7
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NIAEP.henshin
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<henshin:Module xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmi:id="_DkD08KH-EeObOe_NVdEHRg">

+  <imports href="http://www.eclipse.org/uml2/4.0.0/UML#/"/>

+  <units xsi:type="henshin:Rule" xmi:id="_DkHfUKH-EeObOe_NVdEHRg" name="mainRule">

+    <parameters xmi:id="_DkIGYKH-EeObOe_NVdEHRg" name="context"/>

+    <lhs xmi:id="_DkItcKH-EeObOe_NVdEHRg" name="Lhs">

+      <nodes xmi:id="_DkM-4KH-EeObOe_NVdEHRg" name="context" outgoing="_yU5k0qH-EeObOe_NVdEHRg _zfQfI6H-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/>

+      </nodes>

+      <nodes xmi:id="_yU3voKH-EeObOe_NVdEHRg" incoming="_yU5k0qH-EeObOe_NVdEHRg" outgoing="_1r7yEKH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Association"/>

+      </nodes>

+      <nodes xmi:id="_yxWQQKH-EeObOe_NVdEHRg" incoming="_1r7yEKH-EeObOe_NVdEHRg" outgoing="_22-o4KH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Property"/>

+      </nodes>

+      <nodes xmi:id="_zfQfIKH-EeObOe_NVdEHRg" incoming="_zfQfI6H-EeObOe_NVdEHRg _22-o4KH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>

+      </nodes>

+      <edges xmi:id="_yU5k0qH-EeObOe_NVdEHRg" source="_DkM-4KH-EeObOe_NVdEHRg" target="_yU3voKH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+      <edges xmi:id="_zfQfI6H-EeObOe_NVdEHRg" source="_DkM-4KH-EeObOe_NVdEHRg" target="_zfQfIKH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+      <edges xmi:id="_1r7yEKH-EeObOe_NVdEHRg" source="_yU3voKH-EeObOe_NVdEHRg" target="_yxWQQKH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Association/navigableOwnedEnd"/>

+      </edges>

+      <edges xmi:id="_22-o4KH-EeObOe_NVdEHRg" source="_yxWQQKH-EeObOe_NVdEHRg" target="_zfQfIKH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement/type"/>

+      </edges>

+    </lhs>

+    <rhs xmi:id="_DkPbIaH-EeObOe_NVdEHRg" name="Rhs">

+      <nodes xmi:id="_DkPbJKH-EeObOe_NVdEHRg" name="context" outgoing="_yU5k06H-EeObOe_NVdEHRg _zfRGMKH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/>

+      </nodes>

+      <nodes xmi:id="_yU5k0KH-EeObOe_NVdEHRg" incoming="_yU5k06H-EeObOe_NVdEHRg" outgoing="_1r7yEaH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Association"/>

+      </nodes>

+      <nodes xmi:id="_yxWQQaH-EeObOe_NVdEHRg" incoming="_1r7yEaH-EeObOe_NVdEHRg" outgoing="_22_P8KH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Property"/>

+      </nodes>

+      <nodes xmi:id="_zfQfIaH-EeObOe_NVdEHRg" incoming="_zfRGMKH-EeObOe_NVdEHRg _22_P8KH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>

+      </nodes>

+      <edges xmi:id="_yU5k06H-EeObOe_NVdEHRg" source="_DkPbJKH-EeObOe_NVdEHRg" target="_yU5k0KH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+      <edges xmi:id="_zfRGMKH-EeObOe_NVdEHRg" source="_DkPbJKH-EeObOe_NVdEHRg" target="_zfQfIaH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+      <edges xmi:id="_1r7yEaH-EeObOe_NVdEHRg" source="_yU5k0KH-EeObOe_NVdEHRg" target="_yxWQQaH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Association/navigableOwnedEnd"/>

+      </edges>

+      <edges xmi:id="_22_P8KH-EeObOe_NVdEHRg" source="_yxWQQaH-EeObOe_NVdEHRg" target="_zfQfIaH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement/type"/>

+      </edges>

+    </rhs>

+    <mappings xmi:id="_DkQCMaH-EeObOe_NVdEHRg" origin="_DkM-4KH-EeObOe_NVdEHRg" image="_DkPbJKH-EeObOe_NVdEHRg"/>

+    <mappings xmi:id="_yU5k0aH-EeObOe_NVdEHRg" origin="_yU3voKH-EeObOe_NVdEHRg" image="_yU5k0KH-EeObOe_NVdEHRg"/>

+    <mappings xmi:id="_yxW3UKH-EeObOe_NVdEHRg" origin="_yxWQQKH-EeObOe_NVdEHRg" image="_yxWQQaH-EeObOe_NVdEHRg"/>

+    <mappings xmi:id="_zfQfIqH-EeObOe_NVdEHRg" origin="_zfQfIKH-EeObOe_NVdEHRg" image="_zfQfIaH-EeObOe_NVdEHRg"/>

+  </units>

+</henshin:Module>

diff --git a/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NIAEP.henshin_diagram b/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NIAEP.henshin_diagram
new file mode 100644
index 0000000..20373cf
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NIAEP.henshin_diagram
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_wH8lEKH-EeObOe_NVdEHRg" type="Henshin" measurementUnit="Pixel">

+  <children xmi:type="notation:Shape" xmi:id="_wJzmQKH-EeObOe_NVdEHRg" type="2001" fontName="Segoe UI" italic="true" lineColor="0">

+    <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yU5k1KH-EeObOe_NVdEHRg" source="defaultAction">

+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yU6L4KH-EeObOe_NVdEHRg" key="value" value="preserve"/>

+    </eAnnotations>

+    <children xmi:type="notation:DecorationNode" xmi:id="_wJzmQqH-EeObOe_NVdEHRg" type="5001"/>

+    <children xmi:type="notation:DecorationNode" xmi:id="_wJzmQ6H-EeObOe_NVdEHRg" type="7001">

+      <children xmi:type="notation:Shape" xmi:id="_wJ2CgKH-EeObOe_NVdEHRg" type="3001" fontName="Segoe UI">

+        <children xmi:type="notation:DecorationNode" xmi:id="_wJ2CgqH-EeObOe_NVdEHRg" type="5002"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_wJ2Cg6H-EeObOe_NVdEHRg" type="5003"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_wJ2ChKH-EeObOe_NVdEHRg" type="7002">

+          <styles xmi:type="notation:SortingStyle" xmi:id="_wJ2ChaH-EeObOe_NVdEHRg"/>

+          <styles xmi:type="notation:FilteringStyle" xmi:id="_wJ2ChqH-EeObOe_NVdEHRg"/>

+        </children>

+        <element xmi:type="henshin:Node" href="NIAEP.henshin#_DkM-4KH-EeObOe_NVdEHRg"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wJ2CgaH-EeObOe_NVdEHRg" x="24" y="19"/>

+      </children>

+      <children xmi:type="notation:Shape" xmi:id="_yU8oIKH-EeObOe_NVdEHRg" type="3001" fontName="Segoe UI">

+        <children xmi:type="notation:DecorationNode" xmi:id="_yU8oIqH-EeObOe_NVdEHRg" type="5002"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_yU8oI6H-EeObOe_NVdEHRg" type="5003"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_yU8oJKH-EeObOe_NVdEHRg" type="7002">

+          <styles xmi:type="notation:SortingStyle" xmi:id="_yU8oJaH-EeObOe_NVdEHRg"/>

+          <styles xmi:type="notation:FilteringStyle" xmi:id="_yU8oJqH-EeObOe_NVdEHRg"/>

+        </children>

+        <element xmi:type="henshin:Node" href="NIAEP.henshin#_yU3voKH-EeObOe_NVdEHRg"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yU8oIaH-EeObOe_NVdEHRg" x="31" y="186"/>

+      </children>

+      <children xmi:type="notation:Shape" xmi:id="_yxYsgKH-EeObOe_NVdEHRg" type="3001" fontName="Segoe UI">

+        <children xmi:type="notation:DecorationNode" xmi:id="_yxYsgqH-EeObOe_NVdEHRg" type="5002"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_yxYsg6H-EeObOe_NVdEHRg" type="5003"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_yxYshKH-EeObOe_NVdEHRg" type="7002">

+          <styles xmi:type="notation:SortingStyle" xmi:id="_yxYshaH-EeObOe_NVdEHRg"/>

+          <styles xmi:type="notation:FilteringStyle" xmi:id="_yxYshqH-EeObOe_NVdEHRg"/>

+        </children>

+        <element xmi:type="henshin:Node" href="NIAEP.henshin#_yxWQQKH-EeObOe_NVdEHRg"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yxYsgaH-EeObOe_NVdEHRg" x="298" y="186"/>

+      </children>

+      <children xmi:type="notation:Shape" xmi:id="_zfSUUKH-EeObOe_NVdEHRg" type="3001" fontName="Segoe UI">

+        <children xmi:type="notation:DecorationNode" xmi:id="_zfS7YKH-EeObOe_NVdEHRg" type="5002"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_zfS7YaH-EeObOe_NVdEHRg" type="5003"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_zfS7YqH-EeObOe_NVdEHRg" type="7002">

+          <styles xmi:type="notation:SortingStyle" xmi:id="_zfS7Y6H-EeObOe_NVdEHRg"/>

+          <styles xmi:type="notation:FilteringStyle" xmi:id="_zfS7ZKH-EeObOe_NVdEHRg"/>

+        </children>

+        <element xmi:type="henshin:Node" href="NIAEP.henshin#_zfQfIKH-EeObOe_NVdEHRg"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zfSUUaH-EeObOe_NVdEHRg" x="298" y="19"/>

+      </children>

+    </children>

+    <element xmi:type="henshin:Rule" href="NIAEP.henshin#_DkHfUKH-EeObOe_NVdEHRg"/>

+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wJzmQaH-EeObOe_NVdEHRg" x="32" y="33" width="418" height="320"/>

+  </children>

+  <styles xmi:type="notation:DiagramStyle" xmi:id="_wH8lEaH-EeObOe_NVdEHRg"/>

+  <element xmi:type="henshin:Module" href="NIAEP.henshin#_DkD08KH-EeObOe_NVdEHRg"/>

+  <edges xmi:type="notation:Connector" xmi:id="_yVBgoKH-EeObOe_NVdEHRg" type="4001" source="_wJ2CgKH-EeObOe_NVdEHRg" target="_yU8oIKH-EeObOe_NVdEHRg">

+    <children xmi:type="notation:DecorationNode" xmi:id="_yVCHsKH-EeObOe_NVdEHRg" type="6001">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_yVCHsaH-EeObOe_NVdEHRg" x="-7" y="-73"/>

+    </children>

+    <children xmi:type="notation:DecorationNode" xmi:id="_yVCHsqH-EeObOe_NVdEHRg" type="6002">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_yVCHs6H-EeObOe_NVdEHRg" x="18" y="-53"/>

+    </children>

+    <styles xmi:type="notation:FontStyle" xmi:id="_yVBgoaH-EeObOe_NVdEHRg" fontName="Segoe UI"/>

+    <element xmi:type="henshin:Edge" href="NIAEP.henshin#_yU5k0qH-EeObOe_NVdEHRg"/>

+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_yVBgoqH-EeObOe_NVdEHRg" points="[-38, -26, 66, 46]$[-104, -72, 0, 0]"/>

+  </edges>

+  <edges xmi:type="notation:Connector" xmi:id="_zfXz4KH-EeObOe_NVdEHRg" type="4001" source="_wJ2CgKH-EeObOe_NVdEHRg" target="_zfSUUKH-EeObOe_NVdEHRg">

+    <children xmi:type="notation:DecorationNode" xmi:id="_zfXz46H-EeObOe_NVdEHRg" type="6001">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_zfXz5KH-EeObOe_NVdEHRg" x="3" y="-16"/>

+    </children>

+    <children xmi:type="notation:DecorationNode" xmi:id="_zfXz5aH-EeObOe_NVdEHRg" type="6002">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_zfXz5qH-EeObOe_NVdEHRg" y="16"/>

+    </children>

+    <styles xmi:type="notation:FontStyle" xmi:id="_zfXz4aH-EeObOe_NVdEHRg" fontName="Segoe UI"/>

+    <element xmi:type="henshin:Edge" href="NIAEP.henshin#_zfQfI6H-EeObOe_NVdEHRg"/>

+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_zfXz4qH-EeObOe_NVdEHRg" points="[-38, -26, 66, 46]$[-104, -72, 0, 0]"/>

+  </edges>

+  <edges xmi:type="notation:Connector" xmi:id="_1r9AMKH-EeObOe_NVdEHRg" type="4001" source="_yU8oIKH-EeObOe_NVdEHRg" target="_yxYsgKH-EeObOe_NVdEHRg">

+    <children xmi:type="notation:DecorationNode" xmi:id="_1r9nQKH-EeObOe_NVdEHRg" type="6001">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_1r9nQaH-EeObOe_NVdEHRg" y="-16"/>

+    </children>

+    <children xmi:type="notation:DecorationNode" xmi:id="_1r9nQqH-EeObOe_NVdEHRg" type="6002">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_1r9nQ6H-EeObOe_NVdEHRg" x="-1" y="16"/>

+    </children>

+    <styles xmi:type="notation:FontStyle" xmi:id="_1r9AMaH-EeObOe_NVdEHRg" fontName="Segoe UI"/>

+    <element xmi:type="henshin:Edge" href="NIAEP.henshin#_1r7yEKH-EeObOe_NVdEHRg"/>

+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_1r9AMqH-EeObOe_NVdEHRg" points="[14, 0, -164, -9]$[180, -17, 2, -26]"/>

+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1sAqkKH-EeObOe_NVdEHRg" id="(0.8333333333333334,0.5)"/>

+  </edges>

+  <edges xmi:type="notation:Connector" xmi:id="_23AeEKH-EeObOe_NVdEHRg" type="4001" source="_yxYsgKH-EeObOe_NVdEHRg" target="_zfSUUKH-EeObOe_NVdEHRg">

+    <children xmi:type="notation:DecorationNode" xmi:id="_23AeE6H-EeObOe_NVdEHRg" type="6001">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_23BFIKH-EeObOe_NVdEHRg" x="-5" y="23"/>

+    </children>

+    <children xmi:type="notation:DecorationNode" xmi:id="_23BFIaH-EeObOe_NVdEHRg" type="6002">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_23BFIqH-EeObOe_NVdEHRg" x="17" y="-51"/>

+    </children>

+    <styles xmi:type="notation:FontStyle" xmi:id="_23AeEaH-EeObOe_NVdEHRg" fontName="Segoe UI"/>

+    <element xmi:type="henshin:Edge" href="NIAEP.henshin#_22-o4KH-EeObOe_NVdEHRg"/>

+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_23AeEqH-EeObOe_NVdEHRg" points="[7, -26, -51, 164]$[56, -216, -2, -26]"/>

+  </edges>

+</notation:Diagram>

diff --git a/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NIGP.henshin b/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NIGP.henshin
new file mode 100644
index 0000000..4e52ab4
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NIGP.henshin
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<henshin:Module xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmi:id="_DkD08KH-EeObOe_NVdEHRg">

+  <imports href="http://www.eclipse.org/uml2/4.0.0/UML#/"/>

+  <units xsi:type="henshin:Rule" xmi:id="_DkHfUKH-EeObOe_NVdEHRg" name="mainRule">

+    <parameters xmi:id="_DkIGYKH-EeObOe_NVdEHRg" name="context"/>

+    <lhs xmi:id="_DkItcKH-EeObOe_NVdEHRg" name="Lhs">

+      <nodes xmi:id="_DkM-4KH-EeObOe_NVdEHRg" name="context" outgoing="_NArgYqH-EeObOe_NVdEHRg _NjTsU6H-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/>

+      </nodes>

+      <nodes xmi:id="_NAprMKH-EeObOe_NVdEHRg" incoming="_NArgYqH-EeObOe_NVdEHRg" outgoing="_OT74AKH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>

+      </nodes>

+      <nodes xmi:id="_NjTsUKH-EeObOe_NVdEHRg" incoming="_NjTsU6H-EeObOe_NVdEHRg _QDZDcKH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>

+      </nodes>

+      <nodes xmi:id="_OT7Q8KH-EeObOe_NVdEHRg" incoming="_OT74AKH-EeObOe_NVdEHRg" outgoing="_QDZDcKH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Generalization"/>

+      </nodes>

+      <edges xmi:id="_NArgYqH-EeObOe_NVdEHRg" source="_DkM-4KH-EeObOe_NVdEHRg" target="_NAprMKH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+      <edges xmi:id="_NjTsU6H-EeObOe_NVdEHRg" source="_DkM-4KH-EeObOe_NVdEHRg" target="_NjTsUKH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+      <edges xmi:id="_OT74AKH-EeObOe_NVdEHRg" source="_NAprMKH-EeObOe_NVdEHRg" target="_OT7Q8KH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier/generalization"/>

+      </edges>

+      <edges xmi:id="_QDZDcKH-EeObOe_NVdEHRg" source="_OT7Q8KH-EeObOe_NVdEHRg" target="_NjTsUKH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Generalization/general"/>

+      </edges>

+    </lhs>

+    <rhs xmi:id="_DkPbIaH-EeObOe_NVdEHRg" name="Rhs">

+      <nodes xmi:id="_DkPbJKH-EeObOe_NVdEHRg" name="context" outgoing="_NAsHcKH-EeObOe_NVdEHRg _NjUTYKH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/>

+      </nodes>

+      <nodes xmi:id="_NArgYKH-EeObOe_NVdEHRg" incoming="_NAsHcKH-EeObOe_NVdEHRg" outgoing="_OT74AaH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>

+      </nodes>

+      <nodes xmi:id="_NjTsUaH-EeObOe_NVdEHRg" incoming="_NjUTYKH-EeObOe_NVdEHRg _QDZqgKH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>

+      </nodes>

+      <nodes xmi:id="_OT7Q8aH-EeObOe_NVdEHRg" incoming="_OT74AaH-EeObOe_NVdEHRg" outgoing="_QDZqgKH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Generalization"/>

+      </nodes>

+      <edges xmi:id="_NAsHcKH-EeObOe_NVdEHRg" source="_DkPbJKH-EeObOe_NVdEHRg" target="_NArgYKH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+      <edges xmi:id="_NjUTYKH-EeObOe_NVdEHRg" source="_DkPbJKH-EeObOe_NVdEHRg" target="_NjTsUaH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>

+      </edges>

+      <edges xmi:id="_OT74AaH-EeObOe_NVdEHRg" source="_NArgYKH-EeObOe_NVdEHRg" target="_OT7Q8aH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier/generalization"/>

+      </edges>

+      <edges xmi:id="_QDZqgKH-EeObOe_NVdEHRg" source="_OT7Q8aH-EeObOe_NVdEHRg" target="_NjTsUaH-EeObOe_NVdEHRg">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Generalization/general"/>

+      </edges>

+    </rhs>

+    <mappings xmi:id="_DkQCMaH-EeObOe_NVdEHRg" origin="_DkM-4KH-EeObOe_NVdEHRg" image="_DkPbJKH-EeObOe_NVdEHRg"/>

+    <mappings xmi:id="_NArgYaH-EeObOe_NVdEHRg" origin="_NAprMKH-EeObOe_NVdEHRg" image="_NArgYKH-EeObOe_NVdEHRg"/>

+    <mappings xmi:id="_NjTsUqH-EeObOe_NVdEHRg" origin="_NjTsUKH-EeObOe_NVdEHRg" image="_NjTsUaH-EeObOe_NVdEHRg"/>

+    <mappings xmi:id="_OT7Q8qH-EeObOe_NVdEHRg" origin="_OT7Q8KH-EeObOe_NVdEHRg" image="_OT7Q8aH-EeObOe_NVdEHRg"/>

+  </units>

+</henshin:Module>

diff --git a/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NIGP.henshin_diagram b/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NIGP.henshin_diagram
new file mode 100644
index 0000000..0a430ba
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/NIGP.henshin_diagram
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_JUil0KH-EeObOe_NVdEHRg" type="Henshin" measurementUnit="Pixel">

+  <children xmi:type="notation:Shape" xmi:id="_JkwMEKH-EeObOe_NVdEHRg" type="2001" fontName="Segoe UI" italic="true" lineColor="0">

+    <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NAsHcaH-EeObOe_NVdEHRg" source="defaultAction">

+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NAsHcqH-EeObOe_NVdEHRg" key="value" value="preserve"/>

+    </eAnnotations>

+    <children xmi:type="notation:DecorationNode" xmi:id="_JkyoUKH-EeObOe_NVdEHRg" type="5001"/>

+    <children xmi:type="notation:DecorationNode" xmi:id="_JkyoUaH-EeObOe_NVdEHRg" type="7001">

+      <children xmi:type="notation:Shape" xmi:id="_Jn600KH-EeObOe_NVdEHRg" type="3001" fontName="Segoe UI">

+        <children xmi:type="notation:DecorationNode" xmi:id="_Jn600qH-EeObOe_NVdEHRg" type="5002"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_Jn6006H-EeObOe_NVdEHRg" type="5003"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_Jn8qAKH-EeObOe_NVdEHRg" type="7002">

+          <styles xmi:type="notation:SortingStyle" xmi:id="_Jn8qAaH-EeObOe_NVdEHRg"/>

+          <styles xmi:type="notation:FilteringStyle" xmi:id="_Jn8qAqH-EeObOe_NVdEHRg"/>

+        </children>

+        <element xmi:type="henshin:Node" href="NIGP.henshin#_DkM-4KH-EeObOe_NVdEHRg"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Jn600aH-EeObOe_NVdEHRg" x="24" y="26"/>

+      </children>

+      <children xmi:type="notation:Shape" xmi:id="_NAy1IKH-EeObOe_NVdEHRg" type="3001" fontName="Segoe UI">

+        <children xmi:type="notation:DecorationNode" xmi:id="_NAzcMKH-EeObOe_NVdEHRg" type="5002"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_NAzcMaH-EeObOe_NVdEHRg" type="5003"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_NAzcMqH-EeObOe_NVdEHRg" type="7002">

+          <styles xmi:type="notation:SortingStyle" xmi:id="_NAzcM6H-EeObOe_NVdEHRg"/>

+          <styles xmi:type="notation:FilteringStyle" xmi:id="_NAzcNKH-EeObOe_NVdEHRg"/>

+        </children>

+        <element xmi:type="henshin:Node" href="NIGP.henshin#_NAprMKH-EeObOe_NVdEHRg"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NAy1IaH-EeObOe_NVdEHRg" x="42" y="174"/>

+      </children>

+      <children xmi:type="notation:Shape" xmi:id="_NjWIkKH-EeObOe_NVdEHRg" type="3001" fontName="Segoe UI">

+        <children xmi:type="notation:DecorationNode" xmi:id="_NjWvoKH-EeObOe_NVdEHRg" type="5002"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_NjWvoaH-EeObOe_NVdEHRg" type="5003"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_NjWvoqH-EeObOe_NVdEHRg" type="7002">

+          <styles xmi:type="notation:SortingStyle" xmi:id="_NjWvo6H-EeObOe_NVdEHRg"/>

+          <styles xmi:type="notation:FilteringStyle" xmi:id="_NjWvpKH-EeObOe_NVdEHRg"/>

+        </children>

+        <element xmi:type="henshin:Node" href="NIGP.henshin#_NjTsUKH-EeObOe_NVdEHRg"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NjWIkaH-EeObOe_NVdEHRg" x="288" y="26"/>

+      </children>

+      <children xmi:type="notation:Shape" xmi:id="_OT9tMKH-EeObOe_NVdEHRg" type="3001" fontName="Segoe UI">

+        <children xmi:type="notation:DecorationNode" xmi:id="_OT-UQaH-EeObOe_NVdEHRg" type="5002"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_OT-UQqH-EeObOe_NVdEHRg" type="5003"/>

+        <children xmi:type="notation:DecorationNode" xmi:id="_OT-UQ6H-EeObOe_NVdEHRg" type="7002">

+          <styles xmi:type="notation:SortingStyle" xmi:id="_OT-URKH-EeObOe_NVdEHRg"/>

+          <styles xmi:type="notation:FilteringStyle" xmi:id="_OT-URaH-EeObOe_NVdEHRg"/>

+        </children>

+        <element xmi:type="henshin:Node" href="NIGP.henshin#_OT7Q8KH-EeObOe_NVdEHRg"/>

+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OT-UQKH-EeObOe_NVdEHRg" x="274" y="174"/>

+      </children>

+    </children>

+    <element xmi:type="henshin:Rule" href="NIGP.henshin#_DkHfUKH-EeObOe_NVdEHRg"/>

+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JkwMEaH-EeObOe_NVdEHRg" x="53" y="33" width="434" height="293"/>

+  </children>

+  <styles xmi:type="notation:DiagramStyle" xmi:id="_JUil0aH-EeObOe_NVdEHRg"/>

+  <element xmi:type="henshin:Module" href="NIGP.henshin#_DkD08KH-EeObOe_NVdEHRg"/>

+  <edges xmi:type="notation:Connector" xmi:id="_NBpwwKH-EeObOe_NVdEHRg" type="4001" source="_Jn600KH-EeObOe_NVdEHRg" target="_NAy1IKH-EeObOe_NVdEHRg">

+    <children xmi:type="notation:DecorationNode" xmi:id="_NBqX0KH-EeObOe_NVdEHRg" type="6001">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_NBqX0aH-EeObOe_NVdEHRg" x="13" y="-76"/>

+    </children>

+    <children xmi:type="notation:DecorationNode" xmi:id="_NBqX0qH-EeObOe_NVdEHRg" type="6002">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_NBqX06H-EeObOe_NVdEHRg" x="-15" y="-46"/>

+    </children>

+    <styles xmi:type="notation:FontStyle" xmi:id="_NBpwwaH-EeObOe_NVdEHRg" fontName="Segoe UI"/>

+    <element xmi:type="henshin:Edge" href="NIGP.henshin#_NArgYqH-EeObOe_NVdEHRg"/>

+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NBpwwqH-EeObOe_NVdEHRg" points="[-43, -26, 105, 63]$[-148, -89, 0, 0]"/>

+  </edges>

+  <edges xmi:type="notation:Connector" xmi:id="_NjiV0KH-EeObOe_NVdEHRg" type="4001" source="_Jn600KH-EeObOe_NVdEHRg" target="_NjWIkKH-EeObOe_NVdEHRg">

+    <children xmi:type="notation:DecorationNode" xmi:id="_Nji84KH-EeObOe_NVdEHRg" type="6001">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_Nji84aH-EeObOe_NVdEHRg" x="3" y="-16"/>

+    </children>

+    <children xmi:type="notation:DecorationNode" xmi:id="_Nji84qH-EeObOe_NVdEHRg" type="6002">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_Nji846H-EeObOe_NVdEHRg" y="60"/>

+    </children>

+    <styles xmi:type="notation:FontStyle" xmi:id="_NjiV0aH-EeObOe_NVdEHRg" fontName="Segoe UI"/>

+    <element xmi:type="henshin:Edge" href="NIGP.henshin#_NjTsU6H-EeObOe_NVdEHRg"/>

+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NjiV0qH-EeObOe_NVdEHRg" points="[-43, -26, 105, 63]$[-148, -89, 0, 0]"/>

+  </edges>

+  <edges xmi:type="notation:Connector" xmi:id="_OUEa4KH-EeObOe_NVdEHRg" type="4001" source="_NAy1IKH-EeObOe_NVdEHRg" target="_OT9tMKH-EeObOe_NVdEHRg">

+    <children xmi:type="notation:DecorationNode" xmi:id="_OUEa46H-EeObOe_NVdEHRg" type="6001">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_OUEa5KH-EeObOe_NVdEHRg" x="2" y="-16"/>

+    </children>

+    <children xmi:type="notation:DecorationNode" xmi:id="_OUFB8KH-EeObOe_NVdEHRg" type="6002">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_OUFB8aH-EeObOe_NVdEHRg" x="2" y="16"/>

+    </children>

+    <styles xmi:type="notation:FontStyle" xmi:id="_OUEa4aH-EeObOe_NVdEHRg" fontName="Segoe UI"/>

+    <element xmi:type="henshin:Edge" href="NIGP.henshin#_OT74AKH-EeObOe_NVdEHRg"/>

+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_OUEa4qH-EeObOe_NVdEHRg" points="[-15, -26, 128, 227]$[-143, -253, 0, 0]"/>

+  </edges>

+  <edges xmi:type="notation:Connector" xmi:id="_QDa4oKH-EeObOe_NVdEHRg" type="4001" source="_OT9tMKH-EeObOe_NVdEHRg" target="_NjWIkKH-EeObOe_NVdEHRg">

+    <children xmi:type="notation:DecorationNode" xmi:id="_QDbfsKH-EeObOe_NVdEHRg" type="6001">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_QDbfsaH-EeObOe_NVdEHRg" x="-13" y="39"/>

+    </children>

+    <children xmi:type="notation:DecorationNode" xmi:id="_QDbfsqH-EeObOe_NVdEHRg" type="6002">

+      <layoutConstraint xmi:type="notation:Location" xmi:id="_QDbfs6H-EeObOe_NVdEHRg" x="9" y="46"/>

+    </children>

+    <styles xmi:type="notation:FontStyle" xmi:id="_QDa4oaH-EeObOe_NVdEHRg" fontName="Segoe UI"/>

+    <element xmi:type="henshin:Edge" href="NIGP.henshin#_QDZDcKH-EeObOe_NVdEHRg"/>

+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QDa4oqH-EeObOe_NVdEHRg" points="[11, -26, -74, 171]$[95, -205, 10, -8]"/>

+  </edges>

+</notation:Diagram>

diff --git a/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/P.henshin b/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/P.henshin
new file mode 100644
index 0000000..c8a33e2
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.henshin/transformations/P.henshin
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<henshin:Module xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmi:id="_DkD08KH-EeObOe_NVdEHRg">

+  <imports href="http://www.eclipse.org/uml2/4.0.0/UML#/"/>

+  <units xsi:type="henshin:Rule" xmi:id="_DkHfUKH-EeObOe_NVdEHRg" name="mainRule">

+    <parameters xmi:id="_DkIGYKH-EeObOe_NVdEHRg" name="context"/>

+    <lhs xmi:id="_DkItcKH-EeObOe_NVdEHRg" name="Lhs">

+      <nodes xmi:id="_DkM-4KH-EeObOe_NVdEHRg" name="context">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/>

+      </nodes>

+    </lhs>

+    <rhs xmi:id="_DkPbIaH-EeObOe_NVdEHRg" name="Rhs">

+      <nodes xmi:id="_DkPbJKH-EeObOe_NVdEHRg" name="context">

+        <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/>

+      </nodes>

+    </rhs>

+    <mappings xmi:id="_DkQCMaH-EeObOe_NVdEHRg" origin="_DkM-4KH-EeObOe_NVdEHRg" image="_DkPbJKH-EeObOe_NVdEHRg"/>

+  </units>

+</henshin:Module>

diff --git a/org.eclipse.emf.refactor.metrics.uml24.ocl/bin/org/eclipse/emf/refactor/metrics/uml24/umlpack/NATP.class b/org.eclipse.emf.refactor.metrics.uml24.ocl/bin/org/eclipse/emf/refactor/metrics/uml24/umlpack/NATP.class
index 102c84a..8518888 100644
--- a/org.eclipse.emf.refactor.metrics.uml24.ocl/bin/org/eclipse/emf/refactor/metrics/uml24/umlpack/NATP.class
+++ b/org.eclipse.emf.refactor.metrics.uml24.ocl/bin/org/eclipse/emf/refactor/metrics/uml24/umlpack/NATP.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.metrics.uml24.ocl/bin/org/eclipse/emf/refactor/metrics/uml24/umlpack/NOPP.class b/org.eclipse.emf.refactor.metrics.uml24.ocl/bin/org/eclipse/emf/refactor/metrics/uml24/umlpack/NOPP.class
index ecdfeb2..2112134 100644
--- a/org.eclipse.emf.refactor.metrics.uml24.ocl/bin/org/eclipse/emf/refactor/metrics/uml24/umlpack/NOPP.class
+++ b/org.eclipse.emf.refactor.metrics.uml24.ocl/bin/org/eclipse/emf/refactor/metrics/uml24/umlpack/NOPP.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.metrics.uml24.ocl/plugin.xml b/org.eclipse.emf.refactor.metrics.uml24.ocl/plugin.xml
index cc11cee..5ee45f4 100644
--- a/org.eclipse.emf.refactor.metrics.uml24.ocl/plugin.xml
+++ b/org.eclipse.emf.refactor.metrics.uml24.ocl/plugin.xml
@@ -98,11 +98,103 @@
 <metric id="org.eclipse.emf.refactor.metrics.uml24.nopp" 

 	metric_calculate_class="org.eclipse.emf.refactor.metrics.uml24.umlpack.NOPP" 

 	metric_context="Package" 

-	metric_description="Number of operations in classes and Interfaces within the package" 

+	metric_description="Number of owned operations in classes within the package" 

 	metric_metamodel="http://www.eclipse.org/uml2/4.0.0/UML" 

 	metric_name="NOPP">

 </metric>

+<metric id="org.eclipse.emf.refactor.metrics.uml24.tnopp" 

+	metric_calculate_class="org.eclipse.emf.refactor.metrics.uml24.umlpack.TNOPP" 

+	metric_context="Package" 

+	metric_description="Total number of owned and inherited operations in classes within the package" 

+	metric_metamodel="http://www.eclipse.org/uml2/4.0.0/UML" 

+	metric_name="TNOPP">

+</metric>

+<metric id="org.eclipse.emf.refactor.metrics.uml24.tnatp" 

+	metric_calculate_class="org.eclipse.emf.refactor.metrics.uml24.umlpack.TNATP" 

+	metric_context="Package" 

+	metric_description="Total number of owned and inherited attributes in classes within the package" 

+	metric_metamodel="http://www.eclipse.org/uml2/4.0.0/UML" 

+	metric_name="TNATP">

+</metric>

+<metric id="org.eclipse.emf.refactor.metrics.uml24.nopmp" 

+	metric_calculate_class="org.eclipse.emf.refactor.metrics.uml24.umlpack.NOPMP" 

+	metric_context="Package" 

+	metric_description="Number of other packages in the model" 

+	metric_metamodel="http://www.eclipse.org/uml2/4.0.0/UML" 

+	metric_name="NOPMP">

+</metric>

+<metric id="org.eclipse.emf.refactor.metrics.uml24.npp" 

+	metric_calculate_class="org.eclipse.emf.refactor.metrics.uml24.umlpack.NPP" 

+	metric_context="Package" 

+	metric_description="Number of directly nested packages inside the package" 

+	metric_metamodel="http://www.eclipse.org/uml2/4.0.0/UML" 

+	metric_name="NPP">

+</metric>

+<metric id="org.eclipse.emf.refactor.metrics.uml24.nasp" 

+	metric_calculate_class="org.eclipse.emf.refactor.metrics.uml24.umlpack.NASP" 

+	metric_context="Package" 

+	metric_description="Number of associations within the package" 

+	metric_metamodel="http://www.eclipse.org/uml2/4.0.0/UML" 

+	metric_name="NASP">

+</metric>

+<metric id="org.eclipse.emf.refactor.metrics.uml24.naggr" 

+	metric_calculate_class="org.eclipse.emf.refactor.metrics.uml24.umlpack.NAGGR" 

+	metric_context="Package" 

+	metric_description="Number of aggregation relationships within the package" 

+	metric_metamodel="http://www.eclipse.org/uml2/4.0.0/UML" 

+	metric_name="NAGGR">

+</metric>

+<metric id="org.eclipse.emf.refactor.metrics.uml24.nirp" 

+	metric_calculate_class="org.eclipse.emf.refactor.metrics.uml24.umlpack.NIRP" 

+	metric_context="Package" 

+	metric_description="Number of interface realizations within the package" 

+	metric_metamodel="http://www.eclipse.org/uml2/4.0.0/UML" 

+	metric_name="NIRP">

+</metric>

+<metric id="org.eclipse.emf.refactor.metrics.uml24.niup" 

+	metric_calculate_class="org.eclipse.emf.refactor.metrics.uml24.umlpack.NIUP" 

+	metric_context="Package" 

+	metric_description="Number of interface usages within the package" 

+	metric_metamodel="http://www.eclipse.org/uml2/4.0.0/UML" 

+	metric_name="NIUP">

+</metric>

+<metric id="org.eclipse.emf.refactor.metrics.uml24.nnpatp" 

+	metric_calculate_class="org.eclipse.emf.refactor.metrics.uml24.umlpack.NNPATP" 

+	metric_context="Package" 

+	metric_description="Number of non-public owned attributes within the package" 

+	metric_metamodel="http://www.eclipse.org/uml2/4.0.0/UML" 

+	metric_name="NNPATP">

+</metric>

+<metric id="org.eclipse.emf.refactor.metrics.uml24.nnpopp" 

+	metric_calculate_class="org.eclipse.emf.refactor.metrics.uml24.umlpack.NNPOPP" 

+	metric_context="Package" 

+	metric_description="Number of non-public owned operations within the package" 

+	metric_metamodel="http://www.eclipse.org/uml2/4.0.0/UML" 

+	metric_name="NNPOPP">

+</metric>

+<metric id="org.eclipse.emf.refactor.metrics.uml24.niatp" 

+	metric_calculate_class="org.eclipse.emf.refactor.metrics.uml24.umlpack.NIATP" 

+	metric_context="Package" 

+	metric_description="Number of owned attributes in classes which have a class within the package as type" 

+	metric_metamodel="http://www.eclipse.org/uml2/4.0.0/UML" 

+	metric_name="NIATP">

+</metric>

+<metric id="org.eclipse.emf.refactor.metrics.uml24.natip" 

+	metric_calculate_class="org.eclipse.emf.refactor.metrics.uml24.umlpack.NATIP" 

+	metric_context="Package" 

+	metric_description="Number of inherited attributes in classes within the package" 

+	metric_metamodel="http://www.eclipse.org/uml2/4.0.0/UML" 

+	metric_name="NATIP">

+</metric>

+<metric id="org.eclipse.emf.refactor.metrics.uml24.nopip" 

+	metric_calculate_class="org.eclipse.emf.refactor.metrics.uml24.umlpack.NOPIP" 

+	metric_context="Package" 

+	metric_description="Number of inherited operations in classes within the package" 

+	metric_metamodel="http://www.eclipse.org/uml2/4.0.0/UML" 

+	metric_name="NOPIP">

+</metric>

 </extension>

+

 <extension point="org.eclipse.emf.refactor.metrics">

 <metric id="org.eclipse.emf.refactor.metrics.uml24.natc" 

 	metric_calculate_class="org.eclipse.emf.refactor.metrics.uml24.umlcl.NATC" 

diff --git a/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NAGGR.java b/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NAGGR.java
new file mode 100644
index 0000000..a5e5095
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NAGGR.java
@@ -0,0 +1,30 @@
+package org.eclipse.emf.refactor.metrics.uml24.umlpack;

+

+import java.util.List;

+

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.refactor.metrics.interfaces.IMetricCalculator;

+import org.eclipse.emf.refactor.metrics.ocl.managers.OCLManager;

+

+public class NAGGR implements IMetricCalculator {

+

+	private final String expression = 

+			"self.packagedElement "

+			+ "-> select(oclIsTypeOf(Class)) "

+			+ "-> collect(oclAsType(Class).ownedAttribute) "

+			+ "-> select(aggregation=AggregationKind::shared) "

+			+ "-> size()";	

+	private List<EObject> context; 

+			

+	@Override

+	public void setContext(List<EObject> context) {

+		this.context = context;

+	}	

+			

+	@Override

+	public double calculate() {	

+		EObject contextObject = context.get(0);

+		return OCLManager.evaluateOCLOnContextObject(contextObject, expression);

+	}

+

+}

diff --git a/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NASP.java b/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NASP.java
new file mode 100644
index 0000000..e2e9a2c
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NASP.java
@@ -0,0 +1,25 @@
+package org.eclipse.emf.refactor.metrics.uml24.umlpack;

+

+import java.util.List;

+

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.refactor.metrics.interfaces.IMetricCalculator;

+import org.eclipse.emf.refactor.metrics.ocl.managers.OCLManager;

+

+public class NASP implements IMetricCalculator {

+

+	private final String expression = "self.packagedElement -> select(oclIsTypeOf(Association)) -> size()";	

+	private List<EObject> context; 

+			

+	@Override

+	public void setContext(List<EObject> context) {

+		this.context = context;

+	}	

+			

+	@Override

+	public double calculate() {	

+		EObject contextObject = context.get(0);

+		return OCLManager.evaluateOCLOnContextObject(contextObject, expression);

+	}

+

+}

diff --git a/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NATIP.java b/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NATIP.java
new file mode 100644
index 0000000..234c74b
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NATIP.java
@@ -0,0 +1,30 @@
+package org.eclipse.emf.refactor.metrics.uml24.umlpack;

+

+import java.util.List;

+

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.refactor.metrics.interfaces.IMetricCalculator;

+import org.eclipse.emf.refactor.metrics.ocl.managers.OCLManager;

+

+public class NATIP implements IMetricCalculator {

+

+	private final String expression = 

+			"self.packagedElement "

+			+ "-> select(oclIsTypeOf(Class)) "

+			+ "-> collect(oclAsType(Class).inheritedMember) "

+			+ "-> select(oclIsTypeOf(Property)) "

+			+ "-> size()";	

+	private List<EObject> context; 

+			

+	@Override

+	public void setContext(List<EObject> context) {

+		this.context = context;

+	}	

+			

+	@Override

+	public double calculate() {	

+		EObject contextObject = context.get(0);

+		return OCLManager.evaluateOCLOnContextObject(contextObject, expression);

+	}

+

+}

diff --git a/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NATP.java b/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NATP.java
index fa834e6..4ab7128 100644
--- a/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NATP.java
+++ b/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NATP.java
@@ -1,6 +1,7 @@
 package org.eclipse.emf.refactor.metrics.uml24.umlpack;

 

 import java.util.List;

+

 import org.eclipse.emf.ecore.EObject;

 import org.eclipse.emf.refactor.metrics.interfaces.IMetricCalculator;

 import org.eclipse.emf.refactor.metrics.ocl.managers.OCLManager;

@@ -9,7 +10,10 @@
 public final class NATP implements IMetricCalculator {

 

 	private final String expression = 

-		"self.packagedElement -> select(oclIsTypeOf(Class)) -> collect(oclAsType(Class).ownedAttribute) -> size()";	

+			"self.packagedElement "

+			+ "-> select(oclIsTypeOf(Class)) "

+			+ "-> collect(oclAsType(Class).ownedAttribute) "

+			+ "-> size()";	

 	private List<EObject> context; 

 		

 	@Override

diff --git a/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NIATP.java b/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NIATP.java
new file mode 100644
index 0000000..0681023
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NIATP.java
@@ -0,0 +1,30 @@
+package org.eclipse.emf.refactor.metrics.uml24.umlpack;

+

+import java.util.List;

+

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.refactor.metrics.interfaces.IMetricCalculator;

+import org.eclipse.emf.refactor.metrics.ocl.managers.OCLManager;

+

+public class NIATP implements IMetricCalculator {

+

+	private final String expression = 

+			"self.packagedElement "

+			+ "-> select(oclIsTypeOf(Class)) "

+			+ "-> collect(oclAsType(Class).ownedAttribute) "

+			+ "-> select(self.packagedElement -> includes(type)) "

+			+ "-> size()";	

+	private List<EObject> context; 

+			

+	@Override

+	public void setContext(List<EObject> context) {

+		this.context = context;

+	}	

+			

+	@Override

+	public double calculate() {	

+		EObject contextObject = context.get(0);

+		return OCLManager.evaluateOCLOnContextObject(contextObject, expression);

+	}

+

+}

diff --git a/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NIRP.java b/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NIRP.java
new file mode 100644
index 0000000..5526ea4
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NIRP.java
@@ -0,0 +1,30 @@
+package org.eclipse.emf.refactor.metrics.uml24.umlpack;

+

+import java.util.List;

+

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.refactor.metrics.interfaces.IMetricCalculator;

+import org.eclipse.emf.refactor.metrics.ocl.managers.OCLManager;

+

+public class NIRP implements IMetricCalculator {

+

+	private final String expression = 

+			"self.packagedElement "

+			+ "-> select(oclIsTypeOf(Class)) "

+			+ "-> collect(oclAsType(Class).ownedElement) "

+			+ "-> select(oclIsTypeOf(InterfaceRealization)) "

+			+ "-> size()";	

+	private List<EObject> context; 

+			

+	@Override

+	public void setContext(List<EObject> context) {

+		this.context = context;

+	}	

+			

+	@Override

+	public double calculate() {	

+		EObject contextObject = context.get(0);

+		return OCLManager.evaluateOCLOnContextObject(contextObject, expression);

+	}

+

+}

diff --git a/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NIUP.java b/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NIUP.java
new file mode 100644
index 0000000..dbab7cc
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NIUP.java
@@ -0,0 +1,25 @@
+package org.eclipse.emf.refactor.metrics.uml24.umlpack;

+

+import java.util.List;

+

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.refactor.metrics.interfaces.IMetricCalculator;

+import org.eclipse.emf.refactor.metrics.ocl.managers.OCLManager;

+

+public class NIUP implements IMetricCalculator {

+

+	private final String expression = "self.packagedElement -> select(oclIsTypeOf(Usage)) -> size()";	

+	private List<EObject> context; 

+			

+	@Override

+	public void setContext(List<EObject> context) {

+		this.context = context;

+	}	

+			

+	@Override

+	public double calculate() {	

+		EObject contextObject = context.get(0);

+		return OCLManager.evaluateOCLOnContextObject(contextObject, expression);

+	}

+

+}

diff --git a/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NNPATP.java b/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NNPATP.java
new file mode 100644
index 0000000..468ff79
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NNPATP.java
@@ -0,0 +1,30 @@
+package org.eclipse.emf.refactor.metrics.uml24.umlpack;

+

+import java.util.List;

+

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.refactor.metrics.interfaces.IMetricCalculator;

+import org.eclipse.emf.refactor.metrics.ocl.managers.OCLManager;

+

+public class NNPATP implements IMetricCalculator {

+

+	private final String expression = 

+			"self.packagedElement "

+			+ "-> select(oclIsTypeOf(Class)) "

+			+ "-> collect(oclAsType(Class).ownedAttribute) "

+			+ "-> select(visibility<>VisibilityKind::public)"

+			+ "-> size()";	

+	private List<EObject> context; 

+			

+	@Override

+	public void setContext(List<EObject> context) {

+		this.context = context;

+	}	

+			

+	@Override

+	public double calculate() {	

+		EObject contextObject = context.get(0);

+		return OCLManager.evaluateOCLOnContextObject(contextObject, expression);

+	}

+

+}

diff --git a/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NNPOPP.java b/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NNPOPP.java
new file mode 100644
index 0000000..14579de
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NNPOPP.java
@@ -0,0 +1,30 @@
+package org.eclipse.emf.refactor.metrics.uml24.umlpack;

+

+import java.util.List;

+

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.refactor.metrics.interfaces.IMetricCalculator;

+import org.eclipse.emf.refactor.metrics.ocl.managers.OCLManager;

+

+public class NNPOPP implements IMetricCalculator {

+

+	private final String expression = 

+			"self.packagedElement "

+			+ "-> select(oclIsTypeOf(Class)) "

+			+ "-> collect(oclAsType(Class).ownedOperation) "

+			+ "-> select(visibility<>VisibilityKind::public)"

+			+ "-> size()";	

+	private List<EObject> context; 

+			

+	@Override

+	public void setContext(List<EObject> context) {

+		this.context = context;

+	}	

+			

+	@Override

+	public double calculate() {	

+		EObject contextObject = context.get(0);

+		return OCLManager.evaluateOCLOnContextObject(contextObject, expression);

+	}

+

+}

diff --git a/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NOPIP.java b/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NOPIP.java
new file mode 100644
index 0000000..7cb7423
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NOPIP.java
@@ -0,0 +1,30 @@
+package org.eclipse.emf.refactor.metrics.uml24.umlpack;

+

+import java.util.List;

+

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.refactor.metrics.interfaces.IMetricCalculator;

+import org.eclipse.emf.refactor.metrics.ocl.managers.OCLManager;

+

+public class NOPIP implements IMetricCalculator {

+

+	private final String expression = 

+			"self.packagedElement "

+			+ "-> select(oclIsTypeOf(Class)) "

+			+ "-> collect(oclAsType(Class).inheritedMember) "

+			+ "-> select(oclIsTypeOf(Operation)) "

+			+ "-> size()";	

+	private List<EObject> context; 

+			

+	@Override

+	public void setContext(List<EObject> context) {

+		this.context = context;

+	}	

+			

+	@Override

+	public double calculate() {	

+		EObject contextObject = context.get(0);

+		return OCLManager.evaluateOCLOnContextObject(contextObject, expression);

+	}

+

+}

diff --git a/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NOPMP.java b/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NOPMP.java
new file mode 100644
index 0000000..c6c4077
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NOPMP.java
@@ -0,0 +1,25 @@
+package org.eclipse.emf.refactor.metrics.uml24.umlpack;

+

+import java.util.List;

+

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.refactor.metrics.interfaces.IMetricCalculator;

+import org.eclipse.emf.refactor.metrics.ocl.managers.OCLManager;

+

+public class NOPMP implements IMetricCalculator {

+

+	private final String expression = "Package.allInstances() -> reject(p|p.oclIsTypeOf(Model) or p=self) -> size()";	

+	private List<EObject> context; 

+			

+	@Override

+	public void setContext(List<EObject> context) {

+		this.context = context;

+	}	

+			

+	@Override

+	public double calculate() {	

+		EObject contextObject = context.get(0);

+		return OCLManager.evaluateOCLOnContextObject(contextObject, expression);

+	}

+

+}

diff --git a/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NOPP.java b/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NOPP.java
index fc6c076..dc93956 100644
--- a/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NOPP.java
+++ b/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NOPP.java
@@ -9,8 +9,8 @@
 public final class NOPP implements IMetricCalculator {

 

 	private final String expression = 

-		"self.packagedElement -> select(oclIsTypeOf(Class)) -> collect(oclAsType(Class).ownedOperation) -> size() + " +

-		"self.packagedElement -> select(oclIsTypeOf(Interface)) -> collect(oclAsType(Interface).ownedOperation) -> size()";	

+		"self.packagedElement -> select(oclIsTypeOf(Class)) -> collect(oclAsType(Class).ownedOperation) -> size()";// + " +

+		//"self.packagedElement -> select(oclIsTypeOf(Interface)) -> collect(oclAsType(Interface).ownedOperation) -> size()";	

 	private List<EObject> context; 

 		

 	@Override

diff --git a/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NPP.java b/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NPP.java
new file mode 100644
index 0000000..6b7b647
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/NPP.java
@@ -0,0 +1,25 @@
+package org.eclipse.emf.refactor.metrics.uml24.umlpack;

+

+import java.util.List;

+

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.refactor.metrics.interfaces.IMetricCalculator;

+import org.eclipse.emf.refactor.metrics.ocl.managers.OCLManager;

+

+public class NPP implements IMetricCalculator {

+

+	private final String expression = "self.packagedElement -> select(oclIsTypeOf(Package)) -> size()";	

+	private List<EObject> context; 

+			

+	@Override

+	public void setContext(List<EObject> context) {

+		this.context = context;

+	}	

+			

+	@Override

+	public double calculate() {	

+		EObject contextObject = context.get(0);

+		return OCLManager.evaluateOCLOnContextObject(contextObject, expression);

+	}

+

+}

diff --git a/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/TNATP.java b/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/TNATP.java
new file mode 100644
index 0000000..ae54ba4
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/TNATP.java
@@ -0,0 +1,35 @@
+package org.eclipse.emf.refactor.metrics.uml24.umlpack;

+

+import java.util.List;

+

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.refactor.metrics.interfaces.IMetricCalculator;

+import org.eclipse.emf.refactor.metrics.ocl.managers.OCLManager;

+

+public class TNATP implements IMetricCalculator {

+

+		private final String expression = 

+			"self.packagedElement "

+			+ "-> select(oclIsTypeOf(Class)) "

+			+ "-> collect(oclAsType(Class).ownedAttribute) "

+			+ "-> size() + "

+			

+			+ "self.packagedElement "

+			+ "-> select(oclIsTypeOf(Class)) "

+			+ "-> collect(oclAsType(Class).inheritedMember) "

+			+ "-> select(oclIsTypeOf(Property)) "

+			+ "-> size()";	

+	private List<EObject> context; 

+			

+	@Override

+	public void setContext(List<EObject> context) {

+		this.context = context;

+	}	

+			

+	@Override

+	public double calculate() {	

+		EObject contextObject = context.get(0);

+		return OCLManager.evaluateOCLOnContextObject(contextObject, expression);

+	}

+

+}

diff --git a/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/TNOPP.java b/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/TNOPP.java
new file mode 100644
index 0000000..9850187
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24.ocl/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/TNOPP.java
@@ -0,0 +1,34 @@
+package org.eclipse.emf.refactor.metrics.uml24.umlpack;

+

+import java.util.List;

+

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.refactor.metrics.interfaces.IMetricCalculator;

+import org.eclipse.emf.refactor.metrics.ocl.managers.OCLManager;

+

+public class TNOPP implements IMetricCalculator {

+

+	private final String expression = 

+			"self.packagedElement "

+			+ "-> select(oclIsTypeOf(Class)) "

+			+ "-> collect(oclAsType(Class).ownedOperation) "

+			+ "-> size() + "

+			

+			+ "self.packagedElement "

+			+ "-> select(oclIsTypeOf(Class)) "

+			+ "-> collect(oclAsType(Class).inheritedMember) "

+			+ "-> select(oclIsTypeOf(Operation)) "

+			+ "-> size()";	

+	private List<EObject> context; 

+			

+	@Override

+	public void setContext(List<EObject> context) {

+		this.context = context;

+	}	

+			

+	@Override

+	public double calculate() {	

+		EObject contextObject = context.get(0);

+		return OCLManager.evaluateOCLOnContextObject(contextObject, expression);

+	}

+}

diff --git a/org.eclipse.emf.refactor.metrics.uml24/plugin.xml b/org.eclipse.emf.refactor.metrics.uml24/plugin.xml
index ef2a3c8..50e9c5b 100644
--- a/org.eclipse.emf.refactor.metrics.uml24/plugin.xml
+++ b/org.eclipse.emf.refactor.metrics.uml24/plugin.xml
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>

 <plugin>

+

 <extension point="org.eclipse.emf.refactor.metrics">

 <metric 

 	id="org.eclipse.emf.refactor.metrics.uml24.nacp" 

@@ -16,7 +17,29 @@
 	metric_metamodel="http://www.eclipse.org/uml2/4.0.0/UML" 

 	metric_name="TNCP">

 </metric>

+<metric id="org.eclipse.emf.refactor.metrics.uml24.ca" 

+	metric_calculate_class="org.eclipse.emf.refactor.metrics.uml24.umlpack.Ca" 

+	metric_context="Package" 

+	metric_description="Afferent coupling: Number of classes in other packages which depend on classes within the package" 

+	metric_metamodel="http://www.eclipse.org/uml2/4.0.0/UML" 

+	metric_name="Ca">

+</metric>

+<metric id="org.eclipse.emf.refactor.metrics.uml24.ce" 

+	metric_calculate_class="org.eclipse.emf.refactor.metrics.uml24.umlpack.Ce" 

+	metric_context="Package" 

+	metric_description="Efferent coupling: Number of classes within the package which depend on classes in other packages" 

+	metric_metamodel="http://www.eclipse.org/uml2/4.0.0/UML" 

+	metric_name="Ce">

+</metric>

+<metric id="org.eclipse.emf.refactor.metrics.uml24.dnh" 

+	metric_calculate_class="org.eclipse.emf.refactor.metrics.uml24.umlpack.DNH" 

+	metric_context="Package" 

+	metric_description="Depth in the nesting hierarchy" 

+	metric_metamodel="http://www.eclipse.org/uml2/4.0.0/UML" 

+	metric_name="DNH">

+</metric>

 </extension>

+

 <extension point="org.eclipse.emf.refactor.metrics">

 <metric id="org.eclipse.emf.refactor.metrics.uml24.neatc" 

 	metric_calculate_class="org.eclipse.emf.refactor.metrics.uml24.umlcl.NEATC" 

diff --git a/org.eclipse.emf.refactor.metrics.uml24/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/Ca.java b/org.eclipse.emf.refactor.metrics.uml24/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/Ca.java
new file mode 100644
index 0000000..e7f99af
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/Ca.java
@@ -0,0 +1,91 @@
+package org.eclipse.emf.refactor.metrics.uml24.umlpack;

+

+import java.util.List;

+

+import org.eclipse.emf.common.util.BasicEList;

+import org.eclipse.emf.common.util.EList;

+import org.eclipse.emf.common.util.TreeIterator;

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.refactor.metrics.interfaces.IMetricCalculator;

+import org.eclipse.uml2.uml.Class;

+import org.eclipse.uml2.uml.Operation;

+import org.eclipse.uml2.uml.Package;

+import org.eclipse.uml2.uml.PackageableElement;

+import org.eclipse.uml2.uml.Parameter;

+import org.eclipse.uml2.uml.Property;

+import org.eclipse.uml2.uml.TypedElement;

+

+public class Ca implements IMetricCalculator {

+

+private List<EObject> context; 

+	

+	@Override

+	public void setContext(List<EObject> context) {

+		this.context=context;

+	}	

+		

+	@Override

+	public double calculate() {

+		double ret = 0.0;

+		// custom code - begin

+		for (Class otherclass : getOtherClasses()) {

+			if (dependsOn(otherclass, getOwnedClasses())) {

+				ret++;

+			}

+		}

+		// custom code - end

+		return ret;

+	}

+	

+	private boolean dependsOn(Class otherClass, EList<Class> ownedClasses) {

+		boolean depends = false;

+		for (Property attribute : otherClass.getOwnedAttributes()) {

+			depends |= hasType(attribute, ownedClasses);

+		}

+		for (Operation operation : otherClass.getOwnedOperations()) {

+			for (Parameter parameter : operation.getOwnedParameters()) {

+				depends |= hasType(parameter, ownedClasses);

+			}

+		}

+		for (Class superclass : otherClass.getSuperClasses()) {

+			depends |= ownedClasses.contains(superclass);

+		}

+		return depends;

+	}

+

+	private boolean hasType(TypedElement te, EList<Class> classes) {

+		if (te.getType() != null && te.getType() instanceof Class) {

+			return (classes.contains(te.getType()));

+		}

+		return false;

+	}

+

+	private EList<Class> getAllClasses() {

+		EList<Class> classes = new BasicEList<Class>();

+		TreeIterator<EObject> iter = context.get(0).eResource().getAllContents();

+		while (iter.hasNext()) {

+			EObject eObject = iter.next();

+			if (eObject instanceof Class) {

+				classes.add((Class) eObject);

+			}

+		}

+		return classes;

+	}

+	

+	private EList<Class> getOwnedClasses() {

+		EList<Class> classes = new BasicEList<Class>();

+		for (PackageableElement pe : ((Package) context.get(0)).getPackagedElements()) {

+			if (pe instanceof Class) {

+				classes.add((Class) pe);

+			}

+		}

+		return classes;

+	}

+	

+	private EList<Class> getOtherClasses() {

+		EList<Class> classes = getAllClasses();

+		classes.removeAll(getOwnedClasses());

+		return classes;

+	}

+

+}

diff --git a/org.eclipse.emf.refactor.metrics.uml24/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/Ce.java b/org.eclipse.emf.refactor.metrics.uml24/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/Ce.java
new file mode 100644
index 0000000..76ccfc4
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/Ce.java
@@ -0,0 +1,91 @@
+package org.eclipse.emf.refactor.metrics.uml24.umlpack;

+

+import java.util.List;

+

+import org.eclipse.emf.common.util.BasicEList;

+import org.eclipse.emf.common.util.EList;

+import org.eclipse.emf.common.util.TreeIterator;

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.refactor.metrics.interfaces.IMetricCalculator;

+import org.eclipse.uml2.uml.Class;

+import org.eclipse.uml2.uml.Operation;

+import org.eclipse.uml2.uml.Package;

+import org.eclipse.uml2.uml.PackageableElement;

+import org.eclipse.uml2.uml.Parameter;

+import org.eclipse.uml2.uml.Property;

+import org.eclipse.uml2.uml.TypedElement;

+

+public class Ce implements IMetricCalculator {

+

+private List<EObject> context; 

+	

+	@Override

+	public void setContext(List<EObject> context) {

+		this.context=context;

+	}	

+		

+	@Override

+	public double calculate() {

+		double ret = 0.0;

+		// custom code - begin

+		for (Class ownedclass : getOwnedClasses()) {

+			if (dependsOn(ownedclass, getOtherClasses())) {

+				ret++;

+			}

+		}

+		// custom code - end

+		return ret;

+	}

+	

+	private boolean dependsOn(Class ownedclass, EList<Class> otherClasses) {

+		boolean depends = false;

+		for (Property attribute : ownedclass.getOwnedAttributes()) {

+			depends |= hasType(attribute, otherClasses);

+		}

+		for (Operation operation : ownedclass.getOwnedOperations()) {

+			for (Parameter parameter : operation.getOwnedParameters()) {

+				depends |= hasType(parameter, otherClasses);

+			}

+		}

+		for (Class superclass : ownedclass.getSuperClasses()) {

+			depends |= otherClasses.contains(superclass);

+		}

+		return depends;

+	}

+

+	private boolean hasType(TypedElement te, EList<Class> otherClasses) {

+		if (te.getType() != null && te.getType() instanceof Class) {

+			return (otherClasses.contains(te.getType()));

+		}

+		return false;

+	}

+

+	private EList<Class> getAllClasses() {

+		EList<Class> classes = new BasicEList<Class>();

+		TreeIterator<EObject> iter = context.get(0).eResource().getAllContents();

+		while (iter.hasNext()) {

+			EObject eObject = iter.next();

+			if (eObject instanceof Class) {

+				classes.add((Class) eObject);

+			}

+		}

+		return classes;

+	}

+	

+	private EList<Class> getOwnedClasses() {

+		EList<Class> classes = new BasicEList<Class>();

+		for (PackageableElement pe : ((Package) context.get(0)).getPackagedElements()) {

+			if (pe instanceof Class) {

+				classes.add((Class) pe);

+			}

+		}

+		return classes;

+	}

+	

+	private EList<Class> getOtherClasses() {

+		EList<Class> classes = getAllClasses();

+		classes.removeAll(getOwnedClasses());

+		return classes;

+	}

+

+}

diff --git a/org.eclipse.emf.refactor.metrics.uml24/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/DNH.java b/org.eclipse.emf.refactor.metrics.uml24/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/DNH.java
new file mode 100644
index 0000000..6a582b4
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.uml24/src/org/eclipse/emf/refactor/metrics/uml24/umlpack/DNH.java
@@ -0,0 +1,31 @@
+package org.eclipse.emf.refactor.metrics.uml24.umlpack;

+

+import java.util.List;

+

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.refactor.metrics.interfaces.IMetricCalculator;

+import org.eclipse.uml2.uml.Package;

+

+public class DNH implements IMetricCalculator {

+

+	private List<EObject> context; 

+	

+	@Override

+	public void setContext(List<EObject> context) {

+		this.context=context;

+	}	

+		

+	@Override

+	public double calculate() {	

+		Package p = (Package) context.get(0);

+		return getNestingDepth(p);

+	}

+

+	private int getNestingDepth(Package p) {

+		if (p.getNestingPackage() == null) {

+			return 0;

+		}

+		return 1 + getNestingDepth(p.getNestingPackage());

+	}

+

+}