From fec258f01e64ae0a176c2e85a8b6a0c5227fb578 Mon Sep 17 00:00:00 2001
From: Anders Nilsson <anders.nilsson@cs.lth.se>
Date: Tue, 12 Dec 2006 23:02:01 +0100
Subject: [PATCH] Fixing ClassUses

---
 CompilerGeneration.jrag | 29 +++++++++++++++++------------
 1 file changed, 17 insertions(+), 12 deletions(-)

diff --git a/CompilerGeneration.jrag b/CompilerGeneration.jrag
index 3575e97..eeb8bc7 100644
--- a/CompilerGeneration.jrag
+++ b/CompilerGeneration.jrag
@@ -220,18 +220,20 @@ aspect GenRewrites {
 		pStream.println(ind(1)+"}");
 
 		// TEMPORARY!!!!!
-		// Rewrite isSkillOf to ClassUse
-// 		pStream.println(ind(1)+"rewrite ComplexElement {");
-// 		pStream.println(ind(2)+"when ("+name()+")");
-// 		pStream.println(ind(2)+"to ClassUse {");
-// 		pStream.println(ind(3)+"ClassUse use = new ClassUse();");
-// 		pStream.println(ind(3)+"use.setOwlIdentifier(new OwlIdentifier(\""+name()+"\"));");
-// 		pStream.println(ind(3)+"use.setAttributeList(new List().add(new RdfResource(getAttribute(0).getValue())));");
-// 		pStream.println(ind(3)+"use.setElementList(new List());");
-// 		pStream.println(ind(3)+"getStart().addElement(this);");
-// 		pStream.println(ind(3)+"return use;");
-// 		pStream.println(ind(2)+"}");
-// 		pStream.println(ind(1)+"}");
+		// Rewrite isSkillOf/hasSkill/hasProperty/isPropertyOf to ClassUse
+		pStream.println(ind(1)+"rewrite ComplexElement {");
+		pStream.println(ind(2)+"when ((name().equals(\"hasSkill\")");
+		pStream.println(ind(2)+"|| name().equals(\"isSkillOf\"))");
+		pStream.println("&& getNumAttribute() > 0 && getAttribute(0) instanceof RdfResource)");
+		pStream.println(ind(2)+"to ClassUse {");
+		pStream.println(ind(3)+"ClassUse use = new ClassUse();");
+		pStream.println(ind(3)+"String att = getAttribute(0).name();");
+		pStream.println(ind(3)+"use.setOwlIdentifier(new OwlIdentifier(att.substring(att.indexOf('#')+1,att.indexOf('_'))));");
+		pStream.println(ind(3)+"use.setAttributeList(getAttributeList());");
+		pStream.println(ind(3)+"use.setElementList(new List());");
+		pStream.println(ind(3)+"return use;");
+		pStream.println(ind(2)+"}");
+		pStream.println(ind(1)+"}");
 	  
 
 		super.genRewrites(pStream);
@@ -337,6 +339,9 @@ aspect GenMisc {
 		pStream.println(ind(1)+"String ComplexElement.name() {");
 		pStream.println(ind(2)+"return getOwlIdentifier().getIDENTIFIER();");
 		pStream.println(ind(1)+"}");
+		pStream.println(ind(1)+"String Attribute.name() {");
+		pStream.println(ind(2)+"return getValue().getSTRING_LITERAL();");
+		pStream.println(ind(1)+"}");
 
 
 		super.genMisc(pStream);
-- 
GitLab