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