diff --git a/org.eclipse.emf.refactor.metrics.ecore/plugin.xml b/org.eclipse.emf.refactor.metrics.ecore/plugin.xml
index 39c3682..2ba49b0 100644
--- a/org.eclipse.emf.refactor.metrics.ecore/plugin.xml
+++ b/org.eclipse.emf.refactor.metrics.ecore/plugin.xml
@@ -64,5 +64,13 @@
       metric_metamodel="http://www.eclipse.org/emf/2002/Ecore"
       metric_name="NCEAEC">
 </metric>
+<metric
+      id="org.eclipse.emf.refactor.metrics.ecore.haggec"
+      metric_calculate_class="org.eclipse.emf.refactor.metrics.ecore.eclass.HAGGEC"
+      metric_context="EClass"
+      metric_description="Length of the longest path to the leaves in the aggregation hierarchy."
+      metric_metamodel="http://www.eclipse.org/emf/2002/Ecore"
+      metric_name="HAGGEC">
+</metric>
 </extension>
 </plugin>
diff --git a/org.eclipse.emf.refactor.metrics.ecore/src/org/eclipse/emf/refactor/metrics/ecore/eclass/HAGGEC.java b/org.eclipse.emf.refactor.metrics.ecore/src/org/eclipse/emf/refactor/metrics/ecore/eclass/HAGGEC.java
new file mode 100644
index 0000000..86db29c
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.ecore/src/org/eclipse/emf/refactor/metrics/ecore/eclass/HAGGEC.java
@@ -0,0 +1,50 @@
+package org.eclipse.emf.refactor.metrics.ecore.eclass;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.refactor.metrics.interfaces.IMetricCalculator;
+
+public class HAGGEC implements IMetricCalculator {
+	
+	private List<EObject> context; 
+
+	@Override
+	public void setContext(List<EObject> context) {
+		this.context=context;
+	}
+
+	@Override
+	public double calculate() {
+		EClass c = (EClass) context.get(0);
+		return getHAgg(c);
+	}
+
+	private double getHAgg(EClass c) {
+		if (c.getEReferences() == null || c.getEReferences().isEmpty()) {
+			return 0;
+		}
+		int[] haggs = new int[c.getEReferences().size()];
+		for (int i=0; i < haggs.length; i++) {
+			haggs[i] = 0;
+			EReference ref = c.getEReferences().get(i); 
+			if (ref.isContainment()) {
+				haggs[i] = (int) (1 + getHAgg((EClass) ref.getEReferenceType()));
+			}
+		}
+		return max(haggs);
+	}
+	
+	private int max(int[] intArray) {
+		int result = 0;
+		for (int i=0; i < intArray.length; i++) {
+			if (intArray[i] > result) {
+				result = intArray[i];
+			}
+		}
+		return result;
+	}
+
+}
