From b9459a200f9cb81885a13043ce3cbbb71611d557 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Euzenat?= <Jerome.Euzenat@inria.fr>
Date: Sun, 16 Aug 2009 21:13:19 +0000
Subject: [PATCH] - adapted to the new Visitable interface - use better Java
 1.5 for-each - couple of clean up for some renderers

---
 .../renderer/COWLMappingRendererVisitor.java  | 10 ++++++++--
 .../renderer/HTMLMetadataRendererVisitor.java | 19 +++++--------------
 .../impl/renderer/HTMLRendererVisitor.java    | 14 ++++++++++----
 .../renderer/OWLAxiomsRendererVisitor.java    | 10 ++++++++--
 .../renderer/SEKTMappingRendererVisitor.java  | 12 +++++++++---
 .../impl/renderer/SKOSRendererVisitor.java    | 12 +++++++++---
 .../impl/renderer/SWRLRendererVisitor.java    | 10 ++++++++--
 .../renderer/XMLMetadataRendererVisitor.java  | 11 ++++++-----
 .../impl/renderer/XSLTRendererVisitor.java    | 11 +++++++++--
 9 files changed, 72 insertions(+), 37 deletions(-)

diff --git a/src/fr/inrialpes/exmo/align/impl/renderer/COWLMappingRendererVisitor.java b/src/fr/inrialpes/exmo/align/impl/renderer/COWLMappingRendererVisitor.java
index 63481deb..d03b4994 100644
--- a/src/fr/inrialpes/exmo/align/impl/renderer/COWLMappingRendererVisitor.java
+++ b/src/fr/inrialpes/exmo/align/impl/renderer/COWLMappingRendererVisitor.java
@@ -26,6 +26,7 @@ import java.io.PrintWriter;
 import java.lang.reflect.Method;
 import java.lang.reflect.InvocationTargetException;
 
+import org.semanticweb.owl.align.Visitable;
 import org.semanticweb.owl.align.Alignment;
 import org.semanticweb.owl.align.AlignmentVisitor;
 import org.semanticweb.owl.align.AlignmentException;
@@ -60,6 +61,12 @@ public class COWLMappingRendererVisitor implements AlignmentVisitor
 
     public void init( Parameters p ) {}
 
+    public void visit( Visitable o ) throws AlignmentException {
+	if ( o instanceof Alignment ) visit( (Alignment)o );
+	else if ( o instanceof Cell ) visit( (Cell)o );
+	else if ( o instanceof Relation ) visit( (Relation)o );
+    }
+
     public void visit( Alignment align ) throws AlignmentException {
 	if ( !(align instanceof ObjectAlignment) )
 	    throw new AlignmentException("COWLMappingRenderer: cannot render simple alignment. Turn them into ObjectAlignment, by toObjectAlignement()");
@@ -87,8 +94,7 @@ public class COWLMappingRendererVisitor implements AlignmentVisitor
 	writer.print("    <cowl:targetOntology>\n");
 	writer.print("      <owl:Ontology rdf:about=\""+onto2.getURI()+"\"/>\n");
 	writer.print("    </cowl:targetOntology>\n");
-	for( Enumeration e = align.getElements() ; e.hasMoreElements(); ){
-	    Cell c = (Cell)e.nextElement();
+	for( Cell c : align ){
 	    c.accept( this );
 	} //end for
 	writer.print("  </cowl:Mapping>\n");
diff --git a/src/fr/inrialpes/exmo/align/impl/renderer/HTMLMetadataRendererVisitor.java b/src/fr/inrialpes/exmo/align/impl/renderer/HTMLMetadataRendererVisitor.java
index e6f54066..6a99e673 100644
--- a/src/fr/inrialpes/exmo/align/impl/renderer/HTMLMetadataRendererVisitor.java
+++ b/src/fr/inrialpes/exmo/align/impl/renderer/HTMLMetadataRendererVisitor.java
@@ -25,17 +25,15 @@ import java.util.Hashtable;
 import java.io.PrintWriter;
 import java.net.URI;
 
+import org.semanticweb.owl.align.Visitable;
 import org.semanticweb.owl.align.Alignment;
 import org.semanticweb.owl.align.AlignmentVisitor;
 import org.semanticweb.owl.align.AlignmentException;
 import org.semanticweb.owl.align.Parameters;
-import org.semanticweb.owl.align.Cell;
-import org.semanticweb.owl.align.Relation;
 
 import fr.inrialpes.exmo.align.impl.Annotations;
 import fr.inrialpes.exmo.align.impl.BasicParameters;
 import fr.inrialpes.exmo.align.impl.BasicAlignment;
-import fr.inrialpes.exmo.align.impl.ObjectCell;
 import fr.inrialpes.exmo.align.onto.LoadedOntology;
 
 /**
@@ -54,7 +52,6 @@ public class HTMLMetadataRendererVisitor implements AlignmentVisitor
     
     PrintWriter writer = null;
     Alignment alignment = null;
-    Cell cell = null;
     Hashtable<String,String> nslist = null;
     boolean embedded = false; // if the output is XML embeded in a structure
 
@@ -67,6 +64,10 @@ public class HTMLMetadataRendererVisitor implements AlignmentVisitor
 	     && !p.getParameter( "embedded" ).equals("") ) embedded = true;
     };
 
+    public void visit( Visitable o ) throws AlignmentException {
+	if ( o instanceof Alignment ) visit( (Alignment)o );
+    }
+
     public void visit( Alignment align ) throws AlignmentException {
 	alignment = align;
 	nslist = new Hashtable<String,String>();
@@ -126,17 +127,7 @@ public class HTMLMetadataRendererVisitor implements AlignmentVisitor
 	}
 	writer.print("</table>\n");
 	writer.print("</div>\n");
-	//writer.print("<h2>Correspondences</h2>\n");
-	//writer.print("<div rel=\"align:map\"><table><tr><td>object1</td><td>relation</td><td>strength</td><td>object2</td><td>Id</td></tr>\n");
-	//for( Enumeration e = align.getElements() ; e.hasMoreElements(); ){
-	//    Cell c = (Cell)e.nextElement();
-	//    c.accept( this );
-	//} //end for
-	//writer.print("</table>\n");
-	//writer.print("</div></div>\n");
 	writer.print("</body>\n</html>\n");
     }
 
-    public void visit( Cell cell ) {}
-    public void visit( Relation rel ) {}
 }
diff --git a/src/fr/inrialpes/exmo/align/impl/renderer/HTMLRendererVisitor.java b/src/fr/inrialpes/exmo/align/impl/renderer/HTMLRendererVisitor.java
index d6d5946f..8261c3c2 100644
--- a/src/fr/inrialpes/exmo/align/impl/renderer/HTMLRendererVisitor.java
+++ b/src/fr/inrialpes/exmo/align/impl/renderer/HTMLRendererVisitor.java
@@ -25,6 +25,7 @@ import java.util.Hashtable;
 import java.io.PrintWriter;
 import java.net.URI;
 
+import org.semanticweb.owl.align.Visitable;
 import org.semanticweb.owl.align.Alignment;
 import org.semanticweb.owl.align.AlignmentVisitor;
 import org.semanticweb.owl.align.AlignmentException;
@@ -49,8 +50,7 @@ import fr.inrialpes.exmo.align.onto.LoadedOntology;
  * @version $Id$ 
  */
 
-public class HTMLRendererVisitor implements AlignmentVisitor
-{
+public class HTMLRendererVisitor implements AlignmentVisitor {
     
     PrintWriter writer = null;
     Alignment alignment = null;
@@ -67,6 +67,12 @@ public class HTMLRendererVisitor implements AlignmentVisitor
 	     && !p.getParameter( "embedded" ).equals("") ) embedded = true;
     };
 
+    public void visit( Visitable o ) throws AlignmentException {
+	if ( o instanceof Alignment ) visit( (Alignment)o );
+	else if ( o instanceof Cell ) visit( (Cell)o );
+	else if ( o instanceof Relation ) visit( (Relation)o );
+    }
+
     public void visit( Alignment align ) throws AlignmentException {
 	alignment = align;
 	nslist = new Hashtable<String,String>();
@@ -100,6 +106,7 @@ public class HTMLRendererVisitor implements AlignmentVisitor
 	writer.print(">\n<head><title>Alignment</title></head>\n<body>\n");
 	String id = align.getExtension( Annotations.ALIGNNS, Annotations.ID );
 	String pid = align.getExtension( Annotations.ALIGNNS, Annotations.PRETTY );
+	if ( id == null ) id = "Anonymous alignment";
 	if ( pid == null ) {
 	    writer.print("<h1>"+id+"</h1>\n");
 	} else {
@@ -133,8 +140,7 @@ public class HTMLRendererVisitor implements AlignmentVisitor
 	writer.print("</table>\n");
 	writer.print("<h2>Correspondences</h2>\n");
 	writer.print("<div rel=\"align:map\"><table><tr><td>object1</td><td>relation</td><td>strength</td><td>object2</td><td>Id</td></tr>\n");
-	for( Enumeration e = align.getElements() ; e.hasMoreElements(); ){
-	    Cell c = (Cell)e.nextElement();
+	for( Cell c : align ){
 	    c.accept( this );
 	} //end for
 	writer.print("</table>\n");
diff --git a/src/fr/inrialpes/exmo/align/impl/renderer/OWLAxiomsRendererVisitor.java b/src/fr/inrialpes/exmo/align/impl/renderer/OWLAxiomsRendererVisitor.java
index f9b95da4..2ef977b0 100644
--- a/src/fr/inrialpes/exmo/align/impl/renderer/OWLAxiomsRendererVisitor.java
+++ b/src/fr/inrialpes/exmo/align/impl/renderer/OWLAxiomsRendererVisitor.java
@@ -26,6 +26,7 @@ import java.net.URI;
 import java.lang.reflect.Method;
 import java.lang.reflect.InvocationTargetException;
 
+import org.semanticweb.owl.align.Visitable;
 import org.semanticweb.owl.align.Alignment;
 import org.semanticweb.owl.align.AlignmentVisitor;
 import org.semanticweb.owl.align.AlignmentException;
@@ -62,6 +63,12 @@ public class OWLAxiomsRendererVisitor implements AlignmentVisitor {
 	if ( p.getParameter("heterogeneous") != null ) heterogeneous = true;
     };
 
+    public void visit( Visitable o ) throws AlignmentException {
+	if ( o instanceof Alignment ) visit( (Alignment)o );
+	else if ( o instanceof Cell ) visit( (Cell)o );
+	else if ( o instanceof Relation ) visit( (Relation)o );
+    }
+
     public void visit( Alignment align ) throws AlignmentException {
 	if ( !( align instanceof ObjectAlignment ))  {
 	    throw new AlignmentException("OWLAxiomsRenderer: cannot render simple alignment. Turn them into ObjectAlignment, by toObjectAlignement()");
@@ -87,8 +94,7 @@ public class OWLAxiomsRendererVisitor implements AlignmentVisitor {
 	writer.print("    <owl:imports rdf:resource=\""+align.getOntology2URI().toString()+"\"/>\n");
 	writer.print("  </owl:Ontology>\n\n");
 	
-	for( Enumeration e = align.getElements() ; e.hasMoreElements(); ){
-	    Cell c = (Cell)e.nextElement();
+	for( Cell c : align ){
 	    Object ob1 = c.getObject1();
 	    Object ob2 = c.getObject2();
 
diff --git a/src/fr/inrialpes/exmo/align/impl/renderer/SEKTMappingRendererVisitor.java b/src/fr/inrialpes/exmo/align/impl/renderer/SEKTMappingRendererVisitor.java
index 1db9d435..fb4519b6 100644
--- a/src/fr/inrialpes/exmo/align/impl/renderer/SEKTMappingRendererVisitor.java
+++ b/src/fr/inrialpes/exmo/align/impl/renderer/SEKTMappingRendererVisitor.java
@@ -1,7 +1,7 @@
 /*
  * $Id$
  *
- * Copyright (C) INRIA, 2003-2005, 2007-2008
+ * Copyright (C) INRIA, 2003-2005, 2007-2009
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -27,6 +27,7 @@ import java.net.URI;
 import java.lang.reflect.Method;
 import java.lang.reflect.InvocationTargetException;
 
+import org.semanticweb.owl.align.Visitable;
 import org.semanticweb.owl.align.Alignment;
 import org.semanticweb.owl.align.AlignmentVisitor;
 import org.semanticweb.owl.align.AlignmentException;
@@ -61,6 +62,12 @@ public class SEKTMappingRendererVisitor implements AlignmentVisitor {
 
     public void init( Parameters p ) {};
 
+    public void visit( Visitable o ) throws AlignmentException {
+	if ( o instanceof Alignment ) visit( (Alignment)o );
+	else if ( o instanceof Cell ) visit( (Cell)o );
+	else if ( o instanceof Relation ) visit( (Relation)o );
+    }
+
     public void visit( Alignment align ) throws AlignmentException {
 	if ( !(align instanceof ObjectAlignment) )
 	    throw new AlignmentException("SEKTMappingRenderer: cannot render simple alignment. Turn them into ObjectAlignment, by toObjectAlignement()");
@@ -71,8 +78,7 @@ public class SEKTMappingRendererVisitor implements AlignmentVisitor {
 	writer.print("  source(<\""+onto1.getURI()+"\">)\n");
 	writer.print("  target(<\""+onto2.getURI()+"\">)\n");
 
-	for( Enumeration e = align.getElements() ; e.hasMoreElements(); ){
-	    Cell c = (Cell)e.nextElement();
+	for( Cell c : align ){
 	    c.accept( this );
 	} //end for
 	writer.print(")\n");
diff --git a/src/fr/inrialpes/exmo/align/impl/renderer/SKOSRendererVisitor.java b/src/fr/inrialpes/exmo/align/impl/renderer/SKOSRendererVisitor.java
index 8893437f..633ca914 100644
--- a/src/fr/inrialpes/exmo/align/impl/renderer/SKOSRendererVisitor.java
+++ b/src/fr/inrialpes/exmo/align/impl/renderer/SKOSRendererVisitor.java
@@ -1,7 +1,7 @@
 /*
  * $Id$
  *
- * Copyright (C) INRIA, 2003-2004, 2006-2008
+ * Copyright (C) INRIA, 2003-2004, 2006-2009
  * Copyright (C) Quentin Reul, 2008
  *
  * This program is free software; you can redistribute it and/or modify
@@ -27,6 +27,7 @@ import java.net.URI;
 import java.lang.reflect.Method;
 import java.lang.reflect.InvocationTargetException;
 
+import org.semanticweb.owl.align.Visitable;
 import org.semanticweb.owl.align.Alignment;
 import org.semanticweb.owl.align.AlignmentVisitor;
 import org.semanticweb.owl.align.AlignmentException;
@@ -67,6 +68,12 @@ public class SKOSRendererVisitor implements AlignmentVisitor {
     };
 
     // This must be considered
+    public void visit( Visitable o ) throws AlignmentException {
+	if ( o instanceof Alignment ) visit( (Alignment)o );
+	else if ( o instanceof Cell ) visit( (Cell)o );
+	else if ( o instanceof Relation ) visit( (Relation)o );
+    }
+
     public void visit( Alignment align ) throws AlignmentException {
 	alignment = align;
 	if ( align instanceof ObjectAlignment ) {
@@ -91,8 +98,7 @@ public class SKOSRendererVisitor implements AlignmentVisitor {
 	    writer.print("  <!-- "+name+": "+((String[])ext)[2]+" -->\n");
 	}
 	writer.print("\n");
-	for( Enumeration e = align.getElements() ; e.hasMoreElements(); ){
-	    Cell c = (Cell)e.nextElement();
+	for( Cell c : align ){
 	    c.accept( this );
 	} //end for
 	writer.print("</rdf:RDF>\n");
diff --git a/src/fr/inrialpes/exmo/align/impl/renderer/SWRLRendererVisitor.java b/src/fr/inrialpes/exmo/align/impl/renderer/SWRLRendererVisitor.java
index 098c11b4..91f1981d 100644
--- a/src/fr/inrialpes/exmo/align/impl/renderer/SWRLRendererVisitor.java
+++ b/src/fr/inrialpes/exmo/align/impl/renderer/SWRLRendererVisitor.java
@@ -27,6 +27,7 @@ import java.net.URI;
 import java.lang.reflect.Method;
 import java.lang.reflect.InvocationTargetException;
 
+import org.semanticweb.owl.align.Visitable;
 import org.semanticweb.owl.align.Alignment;
 import org.semanticweb.owl.align.AlignmentVisitor;
 import org.semanticweb.owl.align.AlignmentException;
@@ -64,6 +65,12 @@ public class SWRLRendererVisitor implements AlignmentVisitor {
 	     && !p.getParameter( "embedded" ).equals("") ) embedded = true;
    };
 
+    public void visit( Visitable o ) throws AlignmentException {
+	if ( o instanceof Alignment ) visit( (Alignment)o );
+	else if ( o instanceof Cell ) visit( (Cell)o );
+	else if ( o instanceof Relation ) visit( (Relation)o );
+    }
+
     public void visit( Alignment align ) throws AlignmentException {
 	if ( !( align instanceof ObjectAlignment) )
 	    throw new AlignmentException("SWRLRenderer: cannot render simple alignment. Turn them into ObjectAlignment, by toObjectAlignement()");
@@ -84,8 +91,7 @@ public class SWRLRendererVisitor implements AlignmentVisitor {
 	}
 	writer.print("\n");
 	writer.println("  <owlx:Imports rdf:resource=\""+onto1.getURI()+"\"/>\n");
-	for( Enumeration e = align.getElements() ; e.hasMoreElements(); ){
-	    Cell c = (Cell)e.nextElement();
+	for( Cell c : align ){
 	    c.accept( this );
 	}
 	writer.println("</swrlx:Ontology>");
diff --git a/src/fr/inrialpes/exmo/align/impl/renderer/XMLMetadataRendererVisitor.java b/src/fr/inrialpes/exmo/align/impl/renderer/XMLMetadataRendererVisitor.java
index c2be1f34..851cc554 100644
--- a/src/fr/inrialpes/exmo/align/impl/renderer/XMLMetadataRendererVisitor.java
+++ b/src/fr/inrialpes/exmo/align/impl/renderer/XMLMetadataRendererVisitor.java
@@ -1,7 +1,7 @@
 /*
  * $Id$
  *
- * Copyright (C) INRIA Rhône-Alpes, 2007
+ * Copyright (C) INRIA, 2007, 2009
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -24,12 +24,11 @@ import java.util.Enumeration;
 import java.util.Hashtable;
 import java.io.PrintWriter;
 
+import org.semanticweb.owl.align.Visitable;
 import org.semanticweb.owl.align.Alignment;
 import org.semanticweb.owl.align.AlignmentException;
 import org.semanticweb.owl.align.AlignmentVisitor;
 import org.semanticweb.owl.align.Parameters;
-import org.semanticweb.owl.align.Cell;
-import org.semanticweb.owl.align.Relation;
 
 import fr.inrialpes.exmo.align.impl.Annotations;
 import fr.inrialpes.exmo.align.impl.BasicAlignment;
@@ -59,6 +58,10 @@ public class XMLMetadataRendererVisitor implements AlignmentVisitor {
 	     && !p.getParameter( "embedded" ).equals("") ) embedded = true;
     };
 
+    public void visit( Visitable o ) throws AlignmentException {
+	if ( o instanceof Alignment ) visit( (Alignment)o );
+    }
+
     public void visit( Alignment align ) throws AlignmentException {
 	String extensionString = "";
 	alignment = align;
@@ -146,6 +149,4 @@ public class XMLMetadataRendererVisitor implements AlignmentVisitor {
 	writer.print("</rdf:RDF>\n");
     }
 
-    public void visit( Cell c ) {}
-    public void visit( Relation r ) {}
 }
diff --git a/src/fr/inrialpes/exmo/align/impl/renderer/XSLTRendererVisitor.java b/src/fr/inrialpes/exmo/align/impl/renderer/XSLTRendererVisitor.java
index b85323de..c88a87aa 100644
--- a/src/fr/inrialpes/exmo/align/impl/renderer/XSLTRendererVisitor.java
+++ b/src/fr/inrialpes/exmo/align/impl/renderer/XSLTRendererVisitor.java
@@ -27,6 +27,7 @@ import java.io.PrintWriter;
 import java.lang.reflect.Method;
 import java.net.URI;
 
+import org.semanticweb.owl.align.Visitable;
 import org.semanticweb.owl.align.Alignment;
 import org.semanticweb.owl.align.AlignmentVisitor;
 import org.semanticweb.owl.align.AlignmentException;
@@ -71,14 +72,20 @@ public class XSLTRendererVisitor implements AlignmentVisitor {
 	     && !p.getParameter( "embedded" ).equals("") ) embedded = true;
     };
 
+    public void visit( Visitable o ) throws AlignmentException {
+	if ( o instanceof Alignment ) visit( (Alignment)o );
+	else if ( o instanceof Cell ) visit( (Cell)o );
+	else if ( o instanceof Relation ) visit( (Relation)o );
+    }
+
     public void visit( Alignment align ) throws AlignmentException {
 	alignment = align;
 	if ( align instanceof ObjectAlignment ) {
 	    onto1 = (LoadedOntology)((ObjectAlignment)align).getOntologyObject1();
 	    onto2 = (LoadedOntology)((ObjectAlignment)align).getOntologyObject2();
 	}
-	for( Enumeration e = align.getElements(); e.hasMoreElements(); ){
-	    collectURIs( (Cell)e.nextElement() );
+	for( Cell c : align ){
+	    collectURIs( c );
 	}
 	alignment = align;
 	if ( embedded == false )
-- 
GitLab