From 192acafbffd3f642e1b5192fd03ba81426ad8ed4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Euzenat?= <Jerome.Euzenat@inria.fr>
Date: Wed, 10 Mar 2010 10:54:28 +0000
Subject: [PATCH] - Suppressed all occurence of Parameters (but in
 BasicParameters)

---
 .../webcontent/OntologyAlignmentImpl.java     |  4 +-
 .../align/plugin/webcontent/WSInterface.java  | 37 +++++------
 .../exmo/align/impl/BasicAlignment.java       |  8 +--
 .../exmo/align/impl/BasicParameters.java      | 18 ++---
 .../exmo/align/impl/ObjectAlignment.java      |  1 -
 .../inrialpes/exmo/align/impl/ObjectCell.java |  1 -
 .../exmo/align/impl/URIAlignment.java         |  1 -
 .../exmo/align/impl/edoal/EDOALAlignment.java |  2 -
 .../align/impl/eval/SemPRecEvaluator.java     |  8 +--
 .../renderer/HTMLMetadataRendererVisitor.java |  2 -
 .../service/jade/JadeFIPAAServProfile.java    |  4 +-
 src/org/semanticweb/owl/align/Parameters.java |  8 +--
 test/src/BasicAlignmentTest.java              | 66 ++++++++++++++++++-
 13 files changed, 104 insertions(+), 56 deletions(-)

diff --git a/plugins/webcontent/src/fr/inrialpes/exmo/align/plugin/webcontent/OntologyAlignmentImpl.java b/plugins/webcontent/src/fr/inrialpes/exmo/align/plugin/webcontent/OntologyAlignmentImpl.java
index c00962e2..069f6d18 100644
--- a/plugins/webcontent/src/fr/inrialpes/exmo/align/plugin/webcontent/OntologyAlignmentImpl.java
+++ b/plugins/webcontent/src/fr/inrialpes/exmo/align/plugin/webcontent/OntologyAlignmentImpl.java
@@ -1,7 +1,7 @@
 /*
  * $Id$
  *
- * Copyright (C) INRIA Rh�ne-Alpes, 2007-2009
+ * Copyright (C) INRIA, 2007-2010
  *
  * 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
@@ -58,8 +58,6 @@ import fr.inrialpes.exmo.align.impl.BasicAlignment;
 import fr.inrialpes.exmo.align.impl.URIAlignment;
 import fr.inrialpes.exmo.align.impl.ObjectAlignment;
  
-
-import org.semanticweb.owl.align.Parameters;
 import org.semanticweb.owl.align.Alignment;
 import org.semanticweb.owl.align.AlignmentProcess;
 import org.semanticweb.owl.align.AlignmentVisitor;
diff --git a/plugins/webcontent/src/fr/inrialpes/exmo/align/plugin/webcontent/WSInterface.java b/plugins/webcontent/src/fr/inrialpes/exmo/align/plugin/webcontent/WSInterface.java
index 84fe470f..6e7a393b 100644
--- a/plugins/webcontent/src/fr/inrialpes/exmo/align/plugin/webcontent/WSInterface.java
+++ b/plugins/webcontent/src/fr/inrialpes/exmo/align/plugin/webcontent/WSInterface.java
@@ -1,7 +1,7 @@
 /*
  * $Id$
  *
- * Copyright (C) INRIA Rh�ne-Alpes, 2007-2008, 2010
+ * Copyright (C) INRIA, 2007-2008, 2010
  *
  * 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
@@ -43,7 +43,6 @@ import java.util.zip.ZipInputStream;
 
 import javax.swing.JOptionPane;
  
-import org.semanticweb.owl.align.Parameters;
 import org.w3c.dom.Document;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
@@ -96,7 +95,7 @@ public class WSInterface {
 	    	
 			String answer = null;
 			try {
-				Parameters params = new BasicParameters();
+				BasicParameters params = new BasicParameters();
 				params.setParameter( "host", HOST );
 				//params.setParameter( "http", PORT );
 				//params.setParameter( "wsdl", WSDL );
@@ -144,7 +143,7 @@ public class WSInterface {
 			try {
 				// Read parameters
 				 
-				Parameters params = new BasicParameters();
+				BasicParameters params = new BasicParameters();
 				params.setParameter( "host", HOST );
 				 
 				params.setParameter( "command","trim");
@@ -192,7 +191,7 @@ public class WSInterface {
 			try {
 				// Read parameters
 				 
-				Parameters params = new BasicParameters();
+				BasicParameters params = new BasicParameters();
 				params.setParameter( "host", HOST );
 				 
 				params.setParameter( "command","list");
@@ -233,7 +232,7 @@ public class WSInterface {
 		     
 			try {
 				// Read parameters 
-				Parameters params = new BasicParameters();
+				BasicParameters params = new BasicParameters();
 				params.setParameter( "host", HOST );
 				 
 				params.setParameter( "command","find");
@@ -271,7 +270,7 @@ public class WSInterface {
 			try {
 				// Read parameters
 				 
-				Parameters params = new BasicParameters();
+				BasicParameters params = new BasicParameters();
 				params.setParameter( "host", HOST );
 				//params.setParameter( "http", PORT );
 				//params.setParameter( "wsdl", WSDL );
@@ -321,7 +320,7 @@ public class WSInterface {
 				//System.out.println("Uri 1="+ onto1);
 			    //System.out.println("Uri 2="+ onto2);
 			    
-			    Parameters params = new BasicParameters();
+			    BasicParameters params = new BasicParameters();
 				params.setParameter( "host", HOST );
 				//params.setParameter( "http", PORT );
 				//params.setParameter( "wsdl", WSDL );
@@ -375,7 +374,7 @@ public class WSInterface {
 		//retrieve alignment for storing in OWL file
 		
 		 
-		Parameters params = new BasicParameters();
+		BasicParameters params = new BasicParameters();
 		params.setParameter( "host", HOST );
 		//params.setParameter( "http", PORT );
 		//params.setParameter( "wsdl", WSDL );
@@ -387,7 +386,7 @@ public class WSInterface {
 	     
 		try {
 			// Read parameters
-			//Parameters params = ws.readParameters( aservArgRetrieve );
+			//BasicParameters params = ws.readParameters( aservArgRetrieve );
 			
 			// Create the SOAP message
 			String message = createMessage( params );
@@ -434,7 +433,7 @@ public class WSInterface {
 			//retrieve alignment for storing in OWL file
 			
 			 
-			Parameters params = new BasicParameters();
+			BasicParameters params = new BasicParameters();
 			params.setParameter( "host", HOST );
 			//params.setParameter( "http", PORT );
 			//params.setParameter( "wsdl", WSDL );
@@ -446,7 +445,7 @@ public class WSInterface {
 		     
 			try {
 				// Read parameters
-				//Parameters params = ws.readParameters( aservArgRetrieve );
+				//BasicParameters params = ws.readParameters( aservArgRetrieve );
 				
 				// Create the SOAP message
 				String message = createMessage( params );
@@ -480,7 +479,7 @@ public class WSInterface {
 	    
 	    public String render(String alignId, String method) {
  
-			Parameters params = new BasicParameters();
+			BasicParameters params = new BasicParameters();
 			params.setParameter( "host", HOST );
 			//params.setParameter( "http", PORT );
 			//params.setParameter( "wsdl", WSDL );
@@ -492,7 +491,7 @@ public class WSInterface {
 		     
 			try {
 				// Read parameters
-				//Parameters params = ws.readParameters( aservArgRetrieve );
+				//BasicParameters params = ws.readParameters( aservArgRetrieve );
 				
 				// Create the SOAP message
 				String message = createMessage( params );
@@ -528,7 +527,7 @@ public class WSInterface {
 			
 	    	//retrieve alignment for displaying
 			
-			Parameters params = new BasicParameters();
+			BasicParameters params = new BasicParameters();
 			params.setParameter( "host", HOST );
 			//params.setParameter( "http", PORT );
 			//params.setParameter( "wsdl", WSDL );
@@ -540,7 +539,7 @@ public class WSInterface {
 			try {
 				// Read parameters
 				 
-				//Parameters params = ws.readParameters( aservArgRetrieve );
+				//BasicParameters params = ws.readParameters( aservArgRetrieve );
 				
 				// Create the SOAP message
 				String message = createMessage( params );
@@ -734,7 +733,7 @@ public class WSInterface {
 	    }
 
 	    
-	    public String createMessage( Parameters params ) throws Exception {
+	    public String createMessage( BasicParameters params ) throws Exception {
 	        String messageBegin = "<SOAP-ENV:Envelope xmlns:SOAP-ENV=\'http://schemas.xmlsoap.org/soap/envelope/\' " +
 				                  "xmlns:xsi=\'http://www.w3.org/1999/XMLSchema-instance\' " + 
 				                  "xmlns:xsd=\'http://www.w3.org/1999/XMLSchema\'>" +
@@ -879,7 +878,7 @@ public class WSInterface {
 		return message;
 	    }
 	    
-	    public String sendMessage( String message, Parameters param )   {
+	    public String sendMessage( String message, BasicParameters param )   {
 	    	// Create the connection
 	        	 
 	        byte[] b = message.getBytes();
@@ -935,7 +934,7 @@ public class WSInterface {
 	    	return answer;
 	    }
 	    
-	    public String sendFile( String message, Parameters param )   {
+	    public String sendFile( String message, BasicParameters param )   {
 	    	// Create the connection
 	        	 
 	        //byte[] b = message.getBytes();
diff --git a/src/fr/inrialpes/exmo/align/impl/BasicAlignment.java b/src/fr/inrialpes/exmo/align/impl/BasicAlignment.java
index 46894fba..08a21437 100644
--- a/src/fr/inrialpes/exmo/align/impl/BasicAlignment.java
+++ b/src/fr/inrialpes/exmo/align/impl/BasicAlignment.java
@@ -28,6 +28,7 @@ import java.util.Enumeration;
 import java.util.Iterator;
 import java.util.Collections;
 import java.util.Collection;
+import java.util.Properties;
 import java.util.List;
 import java.util.Set;
 import java.util.ArrayList;
@@ -41,7 +42,6 @@ import org.semanticweb.owl.align.AlignmentVisitor;
 import org.semanticweb.owl.align.AlignmentProcess;
 import org.semanticweb.owl.align.Cell;
 import org.semanticweb.owl.align.Relation;
-import org.semanticweb.owl.align.Parameters;
 
 import fr.inrialpes.exmo.ontowrap.Ontology;
 import fr.inrialpes.exmo.ontowrap.BasicOntology;
@@ -115,8 +115,8 @@ public class BasicAlignment implements Alignment {
 	}
     }
 
-    public static Parameters getParameters() {
-	return (Parameters)null;
+    public static Properties getParameters() {
+	return (Properties)null;
     }
 
     public int nbCells() {
@@ -188,7 +188,7 @@ public class BasicAlignment implements Alignment {
 	return extensions.getExtension( uri, label );
     };
 
-    public Parameters getXNamespaces(){ return namespaces; }
+    public BasicParameters getXNamespaces(){ return namespaces; }
 
     public void setXNamespace( String label, String uri ) {
 	namespaces.setParameter( label, uri );
diff --git a/src/fr/inrialpes/exmo/align/impl/BasicParameters.java b/src/fr/inrialpes/exmo/align/impl/BasicParameters.java
index 84d82275..00a51037 100644
--- a/src/fr/inrialpes/exmo/align/impl/BasicParameters.java
+++ b/src/fr/inrialpes/exmo/align/impl/BasicParameters.java
@@ -54,6 +54,10 @@ import org.semanticweb.owl.align.Parameters;
   * But propertyNames returns Enumeration and not Enumeration<String>
   * Using keySet will not change anything, because it will be Set<Object>
   * Java 6 introduces Set<String> stringPropertyNames() !!
+  *
+  * [JE:2010] This class implements Parameters for compatibility purposes.
+  * Parameters is only "morally" deprecated in the Alignment API, but it is
+  * not used anymore.
   * 
   * @author Jérôme Euzenat
   * @version $Id$ 
@@ -63,9 +67,6 @@ public class BasicParameters extends Properties implements Parameters, Cloneable
  
     static final long serialVersionUID = 400L;
 
-    /** The list of unlinked out  XML_Port */
-    //Hashtable<String,Object> parameters = null;
-    
     public BasicParameters() {}
 
     @SuppressWarnings( "unchecked" )
@@ -77,24 +78,19 @@ public class BasicParameters extends Properties implements Parameters, Cloneable
     }
   
     public void setParameter( String name, String value ){
-	//parameters.put(name,value);
 	setProperty( name, value );
     }
 
     public void unsetParameter( String name ){
-	//parameters.remove(name);
 	setProperty( name, (String)null );
     }
 
-    // JE2009: returns a string...
     public String getParameter( String name ){
-	//return parameters.get(name);
 	return getProperty( name );
     }
     
     @SuppressWarnings( "unchecked" )
     public Enumeration<String> getNames(){
-	//return parameters.keys();
 	return (Enumeration<String>)propertyNames(); //[W:unchecked]
     }
 
@@ -125,11 +121,11 @@ public class BasicParameters extends Properties implements Parameters, Cloneable
 	}
     }
 
-    public static Parameters read( String filename ){
-	return read(new BasicParameters(), filename);
+    public static BasicParameters read( String filename ){
+	return read( new BasicParameters(), filename );
     }
 
-    public static Parameters read( Parameters p, String filename ){
+    public static BasicParameters read( BasicParameters p, String filename ){
 	try {
 	    // open the stream
 	    DocumentBuilderFactory docBuilderFactory =
diff --git a/src/fr/inrialpes/exmo/align/impl/ObjectAlignment.java b/src/fr/inrialpes/exmo/align/impl/ObjectAlignment.java
index 0e9844e2..d9dd9f46 100644
--- a/src/fr/inrialpes/exmo/align/impl/ObjectAlignment.java
+++ b/src/fr/inrialpes/exmo/align/impl/ObjectAlignment.java
@@ -38,7 +38,6 @@ import org.semanticweb.owl.align.AlignmentException;
 import org.semanticweb.owl.align.AlignmentVisitor;
 import org.semanticweb.owl.align.Cell;
 import org.semanticweb.owl.align.Relation;
-import org.semanticweb.owl.align.Parameters;
 
 import fr.inrialpes.exmo.ontowrap.OntologyFactory;
 import fr.inrialpes.exmo.ontowrap.Ontology;
diff --git a/src/fr/inrialpes/exmo/align/impl/ObjectCell.java b/src/fr/inrialpes/exmo/align/impl/ObjectCell.java
index b78e7fe9..42bf209f 100644
--- a/src/fr/inrialpes/exmo/align/impl/ObjectCell.java
+++ b/src/fr/inrialpes/exmo/align/impl/ObjectCell.java
@@ -31,7 +31,6 @@ import org.semanticweb.owl.align.AlignmentException;
 import org.semanticweb.owl.align.AlignmentVisitor;
 import org.semanticweb.owl.align.Cell;
 import org.semanticweb.owl.align.Relation;
-import org.semanticweb.owl.align.Parameters;
 
 import fr.inrialpes.exmo.ontowrap.LoadedOntology;
 import fr.inrialpes.exmo.ontowrap.OntowrapException;
diff --git a/src/fr/inrialpes/exmo/align/impl/URIAlignment.java b/src/fr/inrialpes/exmo/align/impl/URIAlignment.java
index 48f27c3d..7352438a 100644
--- a/src/fr/inrialpes/exmo/align/impl/URIAlignment.java
+++ b/src/fr/inrialpes/exmo/align/impl/URIAlignment.java
@@ -42,7 +42,6 @@ import org.semanticweb.owl.align.AlignmentException;
 import org.semanticweb.owl.align.AlignmentVisitor;
 import org.semanticweb.owl.align.Cell;
 import org.semanticweb.owl.align.Relation;
-import org.semanticweb.owl.align.Parameters;
 
 import fr.inrialpes.exmo.ontowrap.Ontology;
 
diff --git a/src/fr/inrialpes/exmo/align/impl/edoal/EDOALAlignment.java b/src/fr/inrialpes/exmo/align/impl/edoal/EDOALAlignment.java
index 00601408..0c0bb4fb 100644
--- a/src/fr/inrialpes/exmo/align/impl/edoal/EDOALAlignment.java
+++ b/src/fr/inrialpes/exmo/align/impl/edoal/EDOALAlignment.java
@@ -31,13 +31,11 @@ import org.semanticweb.owl.align.AlignmentException;
 import org.semanticweb.owl.align.Alignment;
 import org.semanticweb.owl.align.Cell;
 import org.semanticweb.owl.align.Relation;
-import org.semanticweb.owl.align.Parameters;
 
 import fr.inrialpes.exmo.ontowrap.Ontology;
 import fr.inrialpes.exmo.align.impl.Annotations;
 import fr.inrialpes.exmo.align.impl.Namespace;
 import fr.inrialpes.exmo.align.impl.BasicAlignment;
-import fr.inrialpes.exmo.align.impl.BasicParameters;
 import fr.inrialpes.exmo.align.impl.Extensions;
 
 /**
diff --git a/src/fr/inrialpes/exmo/align/impl/eval/SemPRecEvaluator.java b/src/fr/inrialpes/exmo/align/impl/eval/SemPRecEvaluator.java
index 7123844b..bc7e7c1a 100644
--- a/src/fr/inrialpes/exmo/align/impl/eval/SemPRecEvaluator.java
+++ b/src/fr/inrialpes/exmo/align/impl/eval/SemPRecEvaluator.java
@@ -1,7 +1,7 @@
 /*
  * $Id$
  *
- * Copyright (C) INRIA, 2009
+ * Copyright (C) INRIA, 2009-2010
  *
  * 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
@@ -23,7 +23,6 @@ package fr.inrialpes.exmo.align.impl.eval;
 import org.semanticweb.owl.align.Alignment;
 import org.semanticweb.owl.align.AlignmentException;
 import org.semanticweb.owl.align.Cell;
-import org.semanticweb.owl.align.Parameters;
 import org.semanticweb.owl.align.Evaluator;
 
 import fr.inrialpes.exmo.align.impl.BasicEvaluator;
@@ -35,6 +34,7 @@ import fr.inrialpes.exmo.align.impl.eval.PRecEvaluator;
 import fr.inrialpes.exmo.iddl.IDDLReasoner;
 import fr.inrialpes.exmo.iddl.conf.Semantics;
 
+import java.util.Properties;
 import java.util.Enumeration;
 import java.util.Iterator;
 import java.util.Set;
@@ -94,8 +94,8 @@ public class SemPRecEvaluator //extends BasicEvaluator
      * 
      * This takes semantivs as a parameter which should be a litteral of fr.inrialpes.exmo.iddl.conf.Semantics
      */
-    public double eval( Parameters params, Object cache ) throws AlignmentException {
-	init( params.getParameter( "semantics" ) );
+    public double eval( Properties params, Object cache ) throws AlignmentException {
+	init( params.getProperty( "semantics" ) );
 	nbfound = align2.nbCells();
 	nbexpected = align1.nbCells();
 
diff --git a/src/fr/inrialpes/exmo/align/impl/renderer/HTMLMetadataRendererVisitor.java b/src/fr/inrialpes/exmo/align/impl/renderer/HTMLMetadataRendererVisitor.java
index 474df9cb..f35aae4c 100644
--- a/src/fr/inrialpes/exmo/align/impl/renderer/HTMLMetadataRendererVisitor.java
+++ b/src/fr/inrialpes/exmo/align/impl/renderer/HTMLMetadataRendererVisitor.java
@@ -30,11 +30,9 @@ 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 fr.inrialpes.exmo.align.impl.Annotations;
 import fr.inrialpes.exmo.align.impl.Namespace;
-import fr.inrialpes.exmo.align.impl.BasicParameters;
 import fr.inrialpes.exmo.align.impl.BasicAlignment;
 import fr.inrialpes.exmo.ontowrap.LoadedOntology;
 
diff --git a/src/fr/inrialpes/exmo/align/service/jade/JadeFIPAAServProfile.java b/src/fr/inrialpes/exmo/align/service/jade/JadeFIPAAServProfile.java
index d2c6cad3..9432c97a 100755
--- a/src/fr/inrialpes/exmo/align/service/jade/JadeFIPAAServProfile.java
+++ b/src/fr/inrialpes/exmo/align/service/jade/JadeFIPAAServProfile.java
@@ -2,7 +2,7 @@
  * $Id$
  *
  * Copyright (C) Orange R&D, 2006-2007
- * Copyright (C) INRIA, 2006-2007, 2009
+ * Copyright (C) INRIA, 2006-2007, 2009-2010
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public License
@@ -29,8 +29,6 @@ import jade.wrapper.AgentContainer;
 import jade.wrapper.AgentController;
 import jade.wrapper.ControllerException;
 
-import org.semanticweb.owl.align.Parameters;
-
 import fr.inrialpes.exmo.align.service.AServException;
 import fr.inrialpes.exmo.align.service.AServProtocolManager;
 import fr.inrialpes.exmo.align.service.AlignmentServiceProfile;
diff --git a/src/org/semanticweb/owl/align/Parameters.java b/src/org/semanticweb/owl/align/Parameters.java
index ffd44310..7d12208b 100644
--- a/src/org/semanticweb/owl/align/Parameters.java
+++ b/src/org/semanticweb/owl/align/Parameters.java
@@ -1,7 +1,7 @@
 /*
  * $Id$
  *
- * Copyright (C) INRIA, 2004, 2008, 2009
+ * Copyright (C) INRIA, 2004, 2008, 2009-2010
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public License
@@ -36,17 +36,17 @@ import java.util.Enumeration;
  *
  * @author Jérôme Euzenat
  * @version $Id$ 
+ * 
+ * This interface is morally deprecated in version 4.0 to the advantage of java.util.Properties
+ * //@deprecated
  */
 
 public interface Parameters {
  
-    //public void setParameter(String name, Object value);
     public void setParameter(String name, String value);
     public void unsetParameter(String name);
     public String getParameter(String name);
     public Enumeration<String> getNames();
 
     public void write();
-    //public static Parameters read(String filename);
-    //public static Parameters read(Parameters params, String filename);
 }
diff --git a/test/src/BasicAlignmentTest.java b/test/src/BasicAlignmentTest.java
index 36ae7438..ffece5dc 100644
--- a/test/src/BasicAlignmentTest.java
+++ b/test/src/BasicAlignmentTest.java
@@ -1,7 +1,8 @@
 /*
  * $Id$
  *
- * Copyright (C) INRIA, 2008-2009
+ * Copyright (C) INRIA, 2008-2010
+ * Copyright (C) FZI/Juergen Bock, 2010
  *
  * 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
@@ -25,18 +26,26 @@ import static org.testng.Assert.assertNotNull;
 import static org.testng.Assert.assertTrue;
 import static org.testng.Assert.assertNull;
 import org.testng.annotations.BeforeClass;
+import org.testng.annotations.AfterClass;
 import org.testng.annotations.Configuration;
 import org.testng.annotations.Test;
 //import org.testng.annotations.*;
 
+import java.net.URI;
+
 import fr.inrialpes.exmo.align.impl.BasicAlignment;
+import fr.inrialpes.exmo.align.impl.BasicCell;
+import fr.inrialpes.exmo.align.impl.BasicRelation;
 import fr.inrialpes.exmo.align.impl.URIAlignment;
 import fr.inrialpes.exmo.align.parser.AlignmentParser;
 
 import org.semanticweb.owl.align.Alignment;
+import org.semanticweb.owl.align.Cell;
+import org.semanticweb.owl.align.Relation;
 import org.semanticweb.owl.align.AlignmentException;
 
 public class BasicAlignmentTest {
+
     private Alignment alignment = null;
 
     @BeforeClass(groups = { "full", "raw" })
@@ -62,5 +71,60 @@ public class BasicAlignmentTest {
 	assertEquals( result.nbCells(), 1, "Alignment should contain 1 cell" );
     }
 
+    private static Cell cell1, cell2, cell3, cell4, cell5;
 
+    /**
+     * @throws java.lang.Exception
+     */
+    @BeforeClass(groups = { "full", "raw" })
+	public static void setUpBeforeClass() throws Exception {
+	URI cls1 = URI.create( "http://example.org/test#cls1" );
+	URI cls2 = URI.create( "http://example.org/test#cls2" );
+	URI cls3 = URI.create( "http://example.org/test#cls3" );
+	Relation rel1 = new BasicRelation( "=" );
+	Relation rel2 = new BasicRelation( "<" );
+	cell1 = new BasicCell( "1", cls1, cls2, rel1, 0);
+	cell2 = new BasicCell( "2", cls1, cls2, rel1, 0);
+	cell3 = new BasicCell( "3", cls1, cls3, rel1, 0);
+	cell4 = new BasicCell( "4", cls1, cls2, rel2, 0);
+	cell5 = new BasicCell( "5", cls1, cls2, rel1, .5);
+    }
+    
+    /**
+     * @throws java.lang.Exception
+     */
+    @AfterClass(groups = { "raw", "full" }, alwaysRun = true )
+	public static void tearDownAfterClass() throws Exception {
+	cell1 = cell2 = cell3 = cell4 = cell5 = null;
+    }
+
+    @Test(groups = { "full", "raw" })
+	public void testEquals() {
+	assertTrue( cell1.equals( cell1 ) ); // 1 == 1
+	assertTrue( cell1.equals( cell2 ) ); // 1 == 2
+	assertTrue( cell2.equals( cell1 ) ); // 2 == 1
+	assertTrue( !cell1.equals( null ) ); // 1 != null
+	assertTrue( !cell1.equals( cell3 ) ); // 1 != 3
+	assertTrue( !cell1.equals( cell4 ) ); // 1 != 4
+	assertTrue( !cell1.equals( cell5 ) ); // 1 != 5
+    }
+
+    @Test(groups = { "full", "raw" })
+	public void testEqualsObject() {
+	assertTrue( cell1.equals( (Object) cell1 ) ); // 1 == 1
+	assertTrue( cell1.equals( (Object) cell2 ) ); // 1 == 2
+	assertTrue( cell2.equals( (Object) cell1 ) ); // 2 == 1
+	assertTrue( !cell1.equals( (Object) null ) ); // 1 != null
+	assertTrue( !cell1.equals( (Object) cell3 ) ); // 1 != 3
+	assertTrue( !cell1.equals( (Object) cell4 ) ); // 1 != 4
+	assertTrue( !cell1.equals( (Object) cell5 ) ); // 1 != 5
+    }
+	
+    @Test(groups = { "full", "raw" })
+	public void testHashCodeEquals() {
+	assertTrue( cell1.equals( cell2 ) && cell1.hashCode() == cell2.hashCode() );
+	assertTrue( cell1.equals( cell1 ) && cell1.hashCode() == cell1.hashCode() );
+	assertTrue( cell2.equals( cell1 ) && cell2.hashCode() == cell1.hashCode() );
+    }
+	
 }
-- 
GitLab