|
From: <jom...@us...> - 2010-02-08 11:48:15
|
Revision: 1578
http://jason.svn.sourceforge.net/jason/?rev=1578&view=rev
Author: jomifred
Date: 2010-02-08 11:48:07 +0000 (Mon, 08 Feb 2010)
Log Message:
-----------
improve equals in ObjectTermImpl as proposed by Tim Cleaver
Modified Paths:
--------------
trunk/src/jason/asSyntax/ObjectTermImpl.java
trunk/src/test/TermTest.java
Modified: trunk/src/jason/asSyntax/ObjectTermImpl.java
===================================================================
--- trunk/src/jason/asSyntax/ObjectTermImpl.java 2010-02-05 17:36:33 UTC (rev 1577)
+++ trunk/src/jason/asSyntax/ObjectTermImpl.java 2010-02-08 11:48:07 UTC (rev 1578)
@@ -30,8 +30,18 @@
public boolean equals(Object o) {
if (this.o == null) return false;
if (o == null) return false;
- if (!(o instanceof ObjectTermImpl)) return false;
- return this.o.equals(((ObjectTermImpl) o).o);
+
+ if (o instanceof ObjectTermImpl) {
+ return this.o.equals(((ObjectTermImpl) o).o);
+ }
+
+ if (o instanceof VarTerm) {
+ Term value = ((VarTerm) o).getValue();
+ if (value instanceof ObjectTermImpl) {
+ return this.o.equals(((ObjectTermImpl) value).o);
+ }
+ }
+ return false;
}
@Override
Modified: trunk/src/test/TermTest.java
===================================================================
--- trunk/src/test/TermTest.java 2010-02-05 17:36:33 UTC (rev 1577)
+++ trunk/src/test/TermTest.java 2010-02-08 11:48:07 UTC (rev 1578)
@@ -943,4 +943,13 @@
assertFalse(iterator.hasNext());
}
+
+ public void testVarObTerm() {
+ ObjectTerm term = new ObjectTermImpl("test");
+ VarTerm variable = new VarTerm("Variable");
+ variable.setValue(term);
+ assertTrue(term.equals(variable));
+ assertTrue(variable.equals(term));
+ assertTrue(variable.equals(new ObjectTermImpl("test")));
+ }
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|