From 2d110e9fd14afdc8f46b784a870b82605bee99d2 Mon Sep 17 00:00:00 2001
From: Sebastian Krings <sebastian@krin.gs>
Date: Wed, 16 Jan 2013 16:08:47 +0100
Subject: [PATCH] grep constants identifier from attributes, update SCConstant
 with unit attribute

---
 .../de/prob/units/sc/ContextAttributeProcessor.java    | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/de.prob.units/src/de/prob/units/sc/ContextAttributeProcessor.java b/de.prob.units/src/de/prob/units/sc/ContextAttributeProcessor.java
index 9ce02dab..9b04eb12 100644
--- a/de.prob.units/src/de/prob/units/sc/ContextAttributeProcessor.java
+++ b/de.prob.units/src/de/prob/units/sc/ContextAttributeProcessor.java
@@ -10,9 +10,11 @@ import org.eventb.core.sc.SCCore;
 import org.eventb.core.sc.SCProcessorModule;
 import org.eventb.core.sc.state.ISCStateRepository;
 import org.eventb.core.tool.IModuleType;
+import org.rodinp.core.IAttributeType;
 import org.rodinp.core.IInternalElement;
 import org.rodinp.core.IRodinElement;
 import org.rodinp.core.IRodinFile;
+import org.rodinp.core.RodinCore;
 
 import de.prob.units.Activator;
 import de.prob.units.pragmas.UnitPragmaAttribute;
@@ -37,11 +39,15 @@ public class ContextAttributeProcessor extends SCProcessorModule {
 		IConstant[] constants = contextRoot.getConstants();
 		ISCConstant[] scconstants = scContextRoot.getSCConstants();
 
-		if (constants.length == 0)
+		if (constants.length == 0 || scconstants.length == 0)
 			return;
 
 		for (IConstant constant : constants) {
-			String identifier = constant.getElementName();
+			final IAttributeType.String IDENTIFIER_ATTRIBUTE = RodinCore
+					.getStringAttrType("org.eventb.core.identifier");
+
+			String identifier = constant
+					.getAttributeValue(IDENTIFIER_ATTRIBUTE);
 			ISCConstant scConstant = scContextRoot.getSCConstant(identifier);
 
 			// might have been filtered out by previous modules
-- 
GitLab