[Mulgara-svn] r2021 - in trunk: . src/jar src/jar/content-mbox/java/org/mulgara/content/mbox/parser src/jar/krule/java/org/mulgara/krule src/jar/query/java/org/jrdf/graph src/jar/query/java/org/mulgara/query src/jar/query/java/org/mulgara/query/filter src/jar/query/java/org/mulgara/query/filter/value src/jar/resolver/java/org/mulgara/resolver src/jar/resolver-filesystem/java/org/mulgara/resolver/filesystem src/jar/resolver-gis/java/org/mulgara/resolver/gis/tools src/jar/resolver-lucene/java/org/mulgara/resolver/lucene src/jar/resolver-memory/java/org/mulgara/resolver/memory src/jar/resolver-relational/java/org/mulgara/resolver/relational src/jar/resolver-spi/java/org/mulgara/resolver/spi src/jar/resolver-xsd/java/org/mulgara/resolver/xsd src/jar/server-rmi/java/org/mulgara/server/rmi src/jar/store-stringpool/java/org/mulgara/store/stringpool src/jar/store-stringpool/java/org/mulgara/store/stringpool/xa src/jar/tuples/java/org/mulgara/store/tuples
pag at mulgara.org
pag at mulgara.org
Fri Sep 9 03:49:39 UTC 2011
Author: pag
Date: 2011-09-09 03:49:39 +0000 (Fri, 09 Sep 2011)
New Revision: 2021
Added:
trunk/src/jar/query/java/org/mulgara/query/AbstractAnswer.java
Removed:
trunk/src/jar/rdql/
Modified:
trunk/.classpath
trunk/build.xml
trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/parser/MboxMessage.java
trunk/src/jar/krule/java/org/mulgara/krule/KruleLoader.java
trunk/src/jar/query/java/org/jrdf/graph/AbstractLiteral.java
trunk/src/jar/query/java/org/jrdf/graph/AbstractTriple.java
trunk/src/jar/query/java/org/mulgara/query/AnswerImpl.java
trunk/src/jar/query/java/org/mulgara/query/ArrayAnswer.java
trunk/src/jar/query/java/org/mulgara/query/BooleanAnswer.java
trunk/src/jar/query/java/org/mulgara/query/ConstraintAssignment.java
trunk/src/jar/query/java/org/mulgara/query/ConstraintFalse.java
trunk/src/jar/query/java/org/mulgara/query/ConstraintFilter.java
trunk/src/jar/query/java/org/mulgara/query/ConstraintHaving.java
trunk/src/jar/query/java/org/mulgara/query/ConstraintImpl.java
trunk/src/jar/query/java/org/mulgara/query/ConstraintIn.java
trunk/src/jar/query/java/org/mulgara/query/ConstraintIs.java
trunk/src/jar/query/java/org/mulgara/query/ConstraintOperation.java
trunk/src/jar/query/java/org/mulgara/query/ConstraintTrue.java
trunk/src/jar/query/java/org/mulgara/query/GraphAnswer.java
trunk/src/jar/query/java/org/mulgara/query/SingleTransitiveConstraint.java
trunk/src/jar/query/java/org/mulgara/query/TransitiveConstraint.java
trunk/src/jar/query/java/org/mulgara/query/UnconstrainedAnswer.java
trunk/src/jar/query/java/org/mulgara/query/Variable.java
trunk/src/jar/query/java/org/mulgara/query/filter/TestContext.java
trunk/src/jar/query/java/org/mulgara/query/filter/value/Var.java
trunk/src/jar/resolver-filesystem/java/org/mulgara/resolver/filesystem/FileSystemResolution.java
trunk/src/jar/resolver-gis/java/org/mulgara/resolver/gis/tools/AbstractAngle.java
trunk/src/jar/resolver-gis/java/org/mulgara/resolver/gis/tools/DistanceCalculatorFactory.java
trunk/src/jar/resolver-gis/java/org/mulgara/resolver/gis/tools/LatitudeImpl.java
trunk/src/jar/resolver-gis/java/org/mulgara/resolver/gis/tools/LongitudeImpl.java
trunk/src/jar/resolver-gis/java/org/mulgara/resolver/gis/tools/SphericalDistanceEstimator.java
trunk/src/jar/resolver-lucene/java/org/mulgara/resolver/lucene/LuceneConstraint.java
trunk/src/jar/resolver-memory/java/org/mulgara/resolver/memory/Stating.java
trunk/src/jar/resolver-relational/java/org/mulgara/resolver/relational/RelationalAnswer.java
trunk/src/jar/resolver-relational/java/org/mulgara/resolver/relational/RelationalConstraint.java
trunk/src/jar/resolver-spi/java/org/mulgara/resolver/spi/ConjunctiveTransformerUnitTest.java
trunk/src/jar/resolver-spi/java/org/mulgara/resolver/spi/TuplesContext.java
trunk/src/jar/resolver-xsd/java/org/mulgara/resolver/xsd/IntervalConstraint.java
trunk/src/jar/resolver-xsd/java/org/mulgara/resolver/xsd/IntervalConstraintDescriptor.java
trunk/src/jar/resolver/java/org/mulgara/resolver/Database.java
trunk/src/jar/resolver/java/org/mulgara/resolver/GlobalizedAnswer.java
trunk/src/jar/resolver/java/org/mulgara/resolver/TransactionalAnswer.java
trunk/src/jar/server-rmi/java/org/mulgara/server/rmi/BlankNodeWrapperAnswer.java
trunk/src/jar/server-rmi/java/org/mulgara/server/rmi/RemoteAnswerWrapperAnswer.java
trunk/src/jar/store-stringpool/java/org/mulgara/store/stringpool/AbstractSPObject.java
trunk/src/jar/store-stringpool/java/org/mulgara/store/stringpool/xa/SPBase64BinaryImpl.java
trunk/src/jar/tuples/java/org/mulgara/store/tuples/AbstractTuples.java
trunk/src/jar/tuples/java/org/mulgara/store/tuples/LeftJoin.java
trunk/src/jar/tuples/java/org/mulgara/store/tuples/WrappedTuples.java
Log:
Further updates for Fortify compliance
Modified: trunk/.classpath
===================================================================
--- trunk/.classpath 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/.classpath 2011-09-09 03:49:39 UTC (rev 2021)
@@ -95,17 +95,17 @@
<classpathentry kind="lib" path="lib/jenatest-2.5.6.jar"/>
<classpathentry kind="lib" path="lib/interruptiblermi-1.1.jar"/>
<classpathentry kind="lib" path="lib/iri-0.5.jar"/>
- <classpathentry kind="lib" path="lib/jetty-continuation-7.1.6.v20100715.jar"/>
- <classpathentry kind="lib" path="lib/jetty-deploy-7.1.6.v20100715.jar"/>
- <classpathentry kind="lib" path="lib/jetty-http-7.1.6.v20100715.jar"/>
- <classpathentry kind="lib" path="lib/jetty-io-7.1.6.v20100715.jar"/>
- <classpathentry kind="lib" path="lib/jetty-security-7.1.6.v20100715.jar"/>
- <classpathentry kind="lib" path="lib/jetty-server-7.1.6.v20100715.jar"/>
- <classpathentry kind="lib" path="lib/jetty-servlet-7.1.6.v20100715.jar"/>
- <classpathentry kind="lib" path="lib/jetty-servlets-7.1.6.v20100715.jar"/>
- <classpathentry kind="lib" path="lib/jetty-util-7.1.6.v20100715.jar"/>
- <classpathentry kind="lib" path="lib/jetty-webapp-7.1.6.v20100715.jar"/>
- <classpathentry kind="lib" path="lib/jetty-xml-7.1.6.v20100715.jar"/>
+ <classpathentry kind="lib" path="lib/jetty-continuation-7.1.6.v20100715.jar"/>
+ <classpathentry kind="lib" path="lib/jetty-deploy-7.1.6.v20100715.jar"/>
+ <classpathentry kind="lib" path="lib/jetty-http-7.1.6.v20100715.jar" sourcepath="/Users/pag/.m2/repository/org/eclipse/jetty/jetty-http/7.1.6.v20100715/jetty-http-7.1.6.v20100715-sources.jar"/>
+ <classpathentry kind="lib" path="lib/jetty-io-7.1.6.v20100715.jar"/>
+ <classpathentry kind="lib" path="lib/jetty-security-7.1.6.v20100715.jar"/>
+ <classpathentry kind="lib" path="lib/jetty-server-7.1.6.v20100715.jar" sourcepath="/Users/pag/oss/jetty/jetty-distribution-7.1.6.v20100715/src"/>
+ <classpathentry kind="lib" path="lib/jetty-servlet-7.1.6.v20100715.jar"/>
+ <classpathentry kind="lib" path="lib/jetty-servlets-7.1.6.v20100715.jar"/>
+ <classpathentry kind="lib" path="lib/jetty-util-7.1.6.v20100715.jar" sourcepath="/Users/pag/oss/jetty/jetty-distribution-7.1.6.v20100715/src"/>
+ <classpathentry kind="lib" path="lib/jetty-webapp-7.1.6.v20100715.jar"/>
+ <classpathentry kind="lib" path="lib/jetty-xml-7.1.6.v20100715.jar"/>
<classpathentry kind="lib" path="lib/jid3-0.34.jar"/>
<classpathentry kind="lib" path="lib/jl1.0.jar"/>
<classpathentry kind="lib" path="lib/jline-0.9.94.jar"/>
@@ -113,14 +113,14 @@
<classpathentry kind="lib" path="lib/jotm-2.0.10.jar"/>
<classpathentry kind="lib" path="lib/jotm_jrmp_stubs-2.0.10.jar"/>
<classpathentry kind="lib" path="lib/js-1.5r3.jar"/>
- <classpathentry kind="lib" path="lib/jsp/com.sun.el_1.0.0.v201004190952.jar"/>
- <classpathentry kind="lib" path="lib/jsp/ecj-3.6.jar"/>
- <classpathentry kind="lib" path="lib/jsp/javax.el_2.1.0.v201004190952.jar"/>
- <classpathentry kind="lib" path="lib/jsp/javax.servlet.jsp.jstl_1.2.0.v201004190952.jar"/>
- <classpathentry kind="lib" path="lib/jsp/javax.servlet.jsp_2.1.0.v201004190952.jar"/>
- <classpathentry kind="lib" path="lib/jsp/jetty-jsp-2.1-7.1.6.v20100715.jar"/>
- <classpathentry kind="lib" path="lib/jsp/org.apache.jasper.glassfish_2.1.0.v201007080150.jar"/>
- <classpathentry kind="lib" path="lib/jsp/org.apache.taglibs.standard.glassfish_1.2.0.v201004190952.jar"/>
+ <classpathentry kind="lib" path="lib/jsp/com.sun.el_1.0.0.v201004190952.jar"/>
+ <classpathentry kind="lib" path="lib/jsp/ecj-3.6.jar"/>
+ <classpathentry kind="lib" path="lib/jsp/javax.el_2.1.0.v201004190952.jar"/>
+ <classpathentry kind="lib" path="lib/jsp/javax.servlet.jsp.jstl_1.2.0.v201004190952.jar"/>
+ <classpathentry kind="lib" path="lib/jsp/javax.servlet.jsp_2.1.0.v201004190952.jar"/>
+ <classpathentry kind="lib" path="lib/jsp/jetty-jsp-2.1-7.1.6.v20100715.jar" sourcepath="/Users/pag/.m2/repository/org/eclipse/jetty/jetty-jsp-2.1/7.1.6.v20100715/jetty-jsp-2.1-7.1.6.v20100715-sources.jar"/>
+ <classpathentry kind="lib" path="lib/jsp/org.apache.jasper.glassfish_2.1.0.v201007080150.jar"/>
+ <classpathentry kind="lib" path="lib/jsp/org.apache.taglibs.standard.glassfish_1.2.0.v201004190952.jar"/>
<classpathentry kind="lib" path="lib/jta-spec1_0_1.jar"/>
<classpathentry kind="lib" path="lib/jtidy-r7-xmlc-2.2.jar"/>
<classpathentry kind="lib" path="lib/junit-3.8.1.jar"/>
@@ -132,7 +132,7 @@
<classpathentry kind="lib" path="lib/Quick4util.jar"/>
<classpathentry kind="lib" path="lib/saaj-1.4.jar"/>
<classpathentry kind="lib" path="lib/sablecc-2.18.2.jar"/>
- <classpathentry kind="lib" path="lib/servlet-api-2.5.jar"/>
+ <classpathentry kind="lib" path="lib/servlet-api-2.5.jar"/>
<classpathentry kind="lib" path="lib/sesame-model-2.2.1.jar"/>
<classpathentry kind="lib" path="lib/trove-2.0.4.jar"/>
<classpathentry kind="lib" path="lib/velocity-1.5.jar"/>
@@ -140,7 +140,7 @@
<classpathentry kind="lib" path="lib/xalan-2.7.0.jar"/>
<classpathentry kind="lib" path="lib/xercesImpl-2.9.1.jar"/>
<classpathentry kind="lib" path="lib/xml-apis-2.9.1.jar"/>
- <classpathentry kind="lib" path="dist/ideSupport.jar" sourcepath="obj/jar/config/java"/>
+ <classpathentry kind="lib" path="dist/ideSupport.jar" sourcepath="/Users/pag/oss/jetty/jetty-distribution-7.1.6.v20100715/src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="lib" path="lib/commons-httpclient-3.1.jar"/>
<classpathentry kind="lib" path="lib/commons-logging-1.1.1.jar"/>
@@ -148,7 +148,7 @@
<classpathentry kind="lib" path="lib/httpclient-4.0-beta2.jar"/>
<classpathentry kind="lib" path="lib/httpcore-4.0-beta3.jar"/>
<classpathentry kind="lib" path="lib/httpmime-4.0-beta2.jar"/>
- <classpathentry kind="lib" path="lib/htmlparser-1.2.1.jar"/>
- <classpathentry kind="lib" path="lib/java-rdfa-0.4.1.jar"/>
+ <classpathentry kind="lib" path="lib/htmlparser-1.2.1.jar"/>
+ <classpathentry kind="lib" path="lib/java-rdfa-0.4.1.jar"/>
<classpathentry kind="output" path="obj/jar"/>
</classpath>
Modified: trunk/build.xml
===================================================================
--- trunk/build.xml 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/build.xml 2011-09-09 03:49:39 UTC (rev 2021)
@@ -857,7 +857,6 @@
<sourcepath path="${jrdf.src.dir}/java"/>
<sourcepath path="${krule.src.dir}/java"/>
<sourcepath path="${query.src.dir}/java"/>
- <!--sourcepath path="${rdql.src.dir}/java"/-->
<sourcepath path="${resolver.src.dir}/java"/>
<sourcepath path="${resolver-null.src.dir}/java"/>
<sourcepath path="${resolver-file.src.dir}/java"/>
@@ -892,7 +891,6 @@
<sourcepath path="${obj.dir}/jar/config/java"/>
<sourcepath path="${obj.dir}/jar/querylang/java"/>
<sourcepath path="${obj.dir}/jar/query/java"/>
- <!--sourcepath path="${obj.dir}/jar/rdql/java"/-->
<sourcepath path="${obj.dir}/jar/util/java"/>
<link href="${j2ee.javadoc}"/>
<link href="${java.javadoc}"/>
@@ -1321,9 +1319,6 @@
<unzip src="data/RDF-Test-Cases-2001-09-12.zip" dest="${test.dir}/RDF-Test-Cases"/>
- <mkdir dir="${test.dir}/RDQL"/>
-
- <unzip src="data/rdql-tests-jena-2.0.zip" dest="${test.dir}/RDQL"/>
</target>
<!-- =================================================================== -->
Modified: trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/parser/MboxMessage.java
===================================================================
--- trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/parser/MboxMessage.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/parser/MboxMessage.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -34,6 +34,7 @@
import javax.mail.internet.*;
import org.apache.log4j.*;
+import org.mulgara.util.ObjectUtil;
/*
* MboxMessage.java
@@ -648,9 +649,7 @@
* @return the folders are equal.
*/
public static boolean foldersEqual(Folder folder1, Folder folder2) {
- return (((folder1 == null) && (folder2 == null)) ||
- (folder1.equals(folder2))
- );
+ return ObjectUtil.eq(folder1, folder2);
}
/**
Modified: trunk/src/jar/krule/java/org/mulgara/krule/KruleLoader.java
===================================================================
--- trunk/src/jar/krule/java/org/mulgara/krule/KruleLoader.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/krule/java/org/mulgara/krule/KruleLoader.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -53,7 +53,7 @@
public class KruleLoader implements RuleLoader {
/** Logger. */
- private static Logger logger = Logger.getLogger(KruleLoader.class.getName());
+ private static final Logger logger = Logger.getLogger(KruleLoader.class.getName());
/** The database session for querying. */
private OperationContext operationContext;
@@ -163,13 +163,13 @@
}
} catch (TuplesException te) {
- logger.error("Exception while accessing rule data.", te);
+ logger.error("Exception while accessing rule data. " + te.getMessage());
throw new InitializerException("Problem accessing rule data", te);
} catch (QueryException qe) {
- logger.error("Exception while reading rules.", qe);
+ logger.error("Exception while reading rules. " + qe.getMessage());
throw new InitializerException("Problem reading rules", qe);
} catch (KruleStructureException ke) {
- logger.error("Error in rule RDF data:" + ke.getMessage(), ke);
+ logger.error("Error in rule RDF data:" + ke.getMessage());
throw new InitializerException("Problem in rules RDF", ke);
} catch (Throwable t) {
logger.error("Unexpected error during loading: " + t.getMessage(), t);
Modified: trunk/src/jar/query/java/org/jrdf/graph/AbstractLiteral.java
===================================================================
--- trunk/src/jar/query/java/org/jrdf/graph/AbstractLiteral.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/query/java/org/jrdf/graph/AbstractLiteral.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -62,6 +62,7 @@
import org.jrdf.util.EscapeUtil;
import org.openrdf.model.impl.LiteralImpl;
import org.openrdf.model.impl.URIImpl;
+import static org.mulgara.util.ObjectUtil.eq;
import java.io.Serializable;
import java.net.URI;
@@ -154,11 +155,6 @@
throw new IllegalArgumentException("Null \"lexicalForm\" parameter");
}
- // Validate "datatype" parameter
- if (null == newDatatypeURI) {
- throw new IllegalArgumentException("Null \"datatype\" parameter");
- }
-
// Initialize fields
datatypeURI = newDatatypeURI;
}
@@ -252,6 +248,13 @@
return appendString;
}
+ public boolean equals(Object o) {
+ if (!(o instanceof Literal)) return false;
+ Literal l = (Literal)o;
+ return eq(getLexicalForm(), l.getLexicalForm()) &&
+ eq(getDatatypeURI(), l.getDatatypeURI()) &&
+ eq(getLanguage(), l.getLanguage());
+ }
public boolean isLiteral() { return true; }
Modified: trunk/src/jar/query/java/org/jrdf/graph/AbstractTriple.java
===================================================================
--- trunk/src/jar/query/java/org/jrdf/graph/AbstractTriple.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/query/java/org/jrdf/graph/AbstractTriple.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -133,16 +133,12 @@
// Check for null and ensure exactly the same class - not subclass.
if (null != obj) {
- try {
-
+ if (obj instanceof Triple) {
Triple tmpTriple = (Triple) obj;
returnValue = getSubject().equals(tmpTriple.getSubject()) &&
getPredicate().equals(tmpTriple.getPredicate()) &&
getObject().equals(tmpTriple.getObject());
}
- catch (ClassCastException cce) {
- // Leave return value to be false.
- }
}
return returnValue;
}
Added: trunk/src/jar/query/java/org/mulgara/query/AbstractAnswer.java
===================================================================
--- trunk/src/jar/query/java/org/mulgara/query/AbstractAnswer.java (rev 0)
+++ trunk/src/jar/query/java/org/mulgara/query/AbstractAnswer.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2011 Revelytix, Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.mulgara.query;
+
+import org.apache.log4j.Logger;
+
+/**
+ * Basic functionality for an Answer.
+ */
+public abstract class AbstractAnswer implements Answer {
+
+ private static final Logger logger = Logger.getLogger(AbstractAnswer.class.getName());
+
+ /**
+ * Clone method so that subtypes are able to call super.
+ */
+ public Object clone() {
+ try {
+ return super.clone();
+ } catch (CloneNotSupportedException e) {
+ throw new RuntimeException("Unable to clone a " + getClass().toString(), e);
+ }
+ }
+
+ public boolean equals(Object object) {
+ if ((object != null) && (object instanceof Answer)) {
+ try {
+ return AnswerOperations.equal(this, (Answer) object);
+ } catch (TuplesException e) {
+ logger.fatal("Couldn't test equality of answers", e);
+ }
+ }
+ return false;
+ }
+
+}
Modified: trunk/src/jar/query/java/org/mulgara/query/AnswerImpl.java
===================================================================
--- trunk/src/jar/query/java/org/mulgara/query/AnswerImpl.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/query/java/org/mulgara/query/AnswerImpl.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -58,7 +58,7 @@
*
* @licence <a href="{@docRoot}/../../LICENCE">Mozilla Public License v1.1</a>
*/
-public class AnswerImpl implements Answer, Serializable {
+public class AnswerImpl extends AbstractAnswer implements Answer, Serializable {
/**
* Allow newer compiled version of the stub to operate when changes
Modified: trunk/src/jar/query/java/org/mulgara/query/ArrayAnswer.java
===================================================================
--- trunk/src/jar/query/java/org/mulgara/query/ArrayAnswer.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/query/java/org/mulgara/query/ArrayAnswer.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -56,7 +56,7 @@
*
* @licence <a href="{@docRoot}/../../LICENCE">Mozilla Public License v1.1</a>
*/
-public class ArrayAnswer implements Answer, Cloneable, Serializable {
+public class ArrayAnswer extends AbstractAnswer implements Answer, Cloneable, Serializable {
/**
* Allow newer compiled version of the stub to operate when changes
@@ -339,12 +339,7 @@
// Clone all subclass fields
ArrayAnswer cloned;
- try {
- cloned = (ArrayAnswer)super.clone();
- }
- catch (CloneNotSupportedException e) {
- throw new Error(getClass() + " is not Cloneable");
- }
+ cloned = (ArrayAnswer)super.clone();
assert cloned != null;
/*
Modified: trunk/src/jar/query/java/org/mulgara/query/BooleanAnswer.java
===================================================================
--- trunk/src/jar/query/java/org/mulgara/query/BooleanAnswer.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/query/java/org/mulgara/query/BooleanAnswer.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -14,6 +14,7 @@
import java.io.Serializable;
+import org.apache.log4j.Logger;
import org.mulgara.query.rdf.LiteralImpl;
import org.mulgara.query.rdf.XSD;
@@ -25,11 +26,15 @@
* @copyright © 2008 <a href="http://www.topazproject.org/">The Topaz Project</a>
* @licence <a href="{@docRoot}/../../LICENCE.txt">Open Software License v3.0</a>
*/
-public class BooleanAnswer implements Answer, Serializable {
+public class BooleanAnswer extends AbstractAnswer implements Answer, Serializable {
/** Required ID for serialization */
private static final long serialVersionUID = -4548465246790083233L;
+ /** Logger */
+ @SuppressWarnings("unused")
+ private static final Logger logger = Logger.getLogger(BooleanAnswer.class.getName());
+
/** A default variable name. This matches the default names used elsewhere. */
private static final String KONSTANT_VAR_NAME = "k0";
Modified: trunk/src/jar/query/java/org/mulgara/query/ConstraintAssignment.java
===================================================================
--- trunk/src/jar/query/java/org/mulgara/query/ConstraintAssignment.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/query/java/org/mulgara/query/ConstraintAssignment.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -104,7 +104,7 @@
if (object == this) return true;
// Check that the given object is the correct class
- if (!object.getClass().equals(this.getClass())) return false;
+ if (object.getClass() != this.getClass()) return false;
// Check each element.
ConstraintAssignment tmpConstraint = (ConstraintAssignment)object;
Modified: trunk/src/jar/query/java/org/mulgara/query/ConstraintFalse.java
===================================================================
--- trunk/src/jar/query/java/org/mulgara/query/ConstraintFalse.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/query/java/org/mulgara/query/ConstraintFalse.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -151,4 +151,7 @@
return false;
}
+ public boolean equals(Object o) {
+ return o == INSTANCE;
+ }
}
Modified: trunk/src/jar/query/java/org/mulgara/query/ConstraintFilter.java
===================================================================
--- trunk/src/jar/query/java/org/mulgara/query/ConstraintFilter.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/query/java/org/mulgara/query/ConstraintFilter.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -98,7 +98,7 @@
if (object == this) return true;
// Check that the given object is the correct class.
- if (!ConstraintFilter.class.equals(object.getClass())) return false;
+ if (ConstraintFilter.class != object.getClass()) return false;
// check each element.
ConstraintFilter other = (ConstraintFilter)object;
// can't do an equals() on filter, as this evaluates the filter in context
Modified: trunk/src/jar/query/java/org/mulgara/query/ConstraintHaving.java
===================================================================
--- trunk/src/jar/query/java/org/mulgara/query/ConstraintHaving.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/query/java/org/mulgara/query/ConstraintHaving.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -173,7 +173,7 @@
if (object == this) return true;
// Check that the given object is the correct class
- if (!object.getClass().equals(this.getClass())) return false;
+ if (object.getClass() != this.getClass()) return false;
// Check each element.
ConstraintHaving tmpConstraint = (ConstraintHaving) object;
Modified: trunk/src/jar/query/java/org/mulgara/query/ConstraintImpl.java
===================================================================
--- trunk/src/jar/query/java/org/mulgara/query/ConstraintImpl.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/query/java/org/mulgara/query/ConstraintImpl.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -200,7 +200,7 @@
boolean returnValue = false;
// Check that the given object is the correct class if so check each element.
- if (object.getClass().equals(this.getClass())) {
+ if (object.getClass() == this.getClass()) {
Constraint tmpConstraint = (Constraint) object;
Modified: trunk/src/jar/query/java/org/mulgara/query/ConstraintIn.java
===================================================================
--- trunk/src/jar/query/java/org/mulgara/query/ConstraintIn.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/query/java/org/mulgara/query/ConstraintIn.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -121,7 +121,7 @@
if (object == this) return true;
// Check that the given object is the correct class.
- if (!ConstraintIn.class.equals(object.getClass())) return false;
+ if (ConstraintIn.class != object.getClass()) return false;
// check each element.
ConstraintIn other = (ConstraintIn)object;
// can't do an equals() on filter, as this evaluates the filter in context
Modified: trunk/src/jar/query/java/org/mulgara/query/ConstraintIs.java
===================================================================
--- trunk/src/jar/query/java/org/mulgara/query/ConstraintIs.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/query/java/org/mulgara/query/ConstraintIs.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -200,7 +200,7 @@
if (object == this) return true;
// Check that the given object is the correct class
- if (!object.getClass().equals(this.getClass())) return false;
+ if (object.getClass() != this.getClass()) return false;
// Check each element.
ConstraintIs tmpConstraint = (ConstraintIs) object;
Modified: trunk/src/jar/query/java/org/mulgara/query/ConstraintOperation.java
===================================================================
--- trunk/src/jar/query/java/org/mulgara/query/ConstraintOperation.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/query/java/org/mulgara/query/ConstraintOperation.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -90,14 +90,14 @@
elements = new ArrayList<ConstraintExpression>(2);
// Add the LHS
- if (isAssociative() && lhs.getClass().equals(getClass())) {
+ if (isAssociative() && lhs.getClass() == getClass()) {
elements.addAll(((ConstraintOperation)lhs).getElements());
} else {
elements.add(lhs);
}
// Add the RHS
- if (isAssociative() && rhs.getClass().equals(getClass())) {
+ if (isAssociative() && rhs.getClass() == getClass()) {
elements.addAll( ( (ConstraintOperation) rhs).getElements());
} else {
elements.add(rhs);
@@ -119,7 +119,7 @@
// add all the elements, flattening if needed
for (ConstraintExpression op: elements) {
- if (op.isAssociative() && op.getClass().equals(getClass())) {
+ if (op.isAssociative() && op.getClass() == getClass()) {
this.elements.addAll(((ConstraintOperation)op).getElements());
} else {
this.elements.add(op);
Modified: trunk/src/jar/query/java/org/mulgara/query/ConstraintTrue.java
===================================================================
--- trunk/src/jar/query/java/org/mulgara/query/ConstraintTrue.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/query/java/org/mulgara/query/ConstraintTrue.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -149,4 +149,7 @@
return false;
}
+ public boolean equals(Object o) {
+ return o == INSTANCE;
+ }
}
Modified: trunk/src/jar/query/java/org/mulgara/query/GraphAnswer.java
===================================================================
--- trunk/src/jar/query/java/org/mulgara/query/GraphAnswer.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/query/java/org/mulgara/query/GraphAnswer.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -18,6 +18,7 @@
import java.util.Map;
import java.util.List;
+import org.apache.log4j.Logger;
import org.jrdf.graph.BlankNode;
import org.jrdf.graph.Literal;
import org.mulgara.query.rdf.BlankNodeImpl;
@@ -30,11 +31,14 @@
* @copyright © 2008 <a href="http://www.topazproject.org/">The Topaz Project</a>
* @licence <a href="{@docRoot}/../../LICENCE.txt">Open Software License v3.0</a>
*/
-public class GraphAnswer implements Answer, Serializable {
+public class GraphAnswer extends AbstractAnswer implements Answer, Serializable {
/** The serialization ID. */
private static final long serialVersionUID = -5499236950928116988L;
+ /** Logger */
+ private static final Logger logger = Logger.getLogger(GraphAnswer.class.getName());
+
/** The variable name for the first column. */
private static final String CONSTANT_VAR_SUBJECT = "subject";
@@ -267,6 +271,17 @@
}
+ public boolean equals(Object object) {
+ if ((object != null) && (object instanceof Answer)) {
+ try {
+ return AnswerOperations.equal(this, (Answer) object);
+ } catch (TuplesException e) {
+ logger.fatal("Couldn't test equality of answers", e);
+ }
+ }
+ return false;
+ }
+
/**
* An internal method for moving on to the next row, without testing validity.
* @return <code>true</code> if this call has not exhausted the rows.
Modified: trunk/src/jar/query/java/org/mulgara/query/SingleTransitiveConstraint.java
===================================================================
--- trunk/src/jar/query/java/org/mulgara/query/SingleTransitiveConstraint.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/query/java/org/mulgara/query/SingleTransitiveConstraint.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -162,7 +162,7 @@
// Check that the given object is the correct class if so check each
// element.
- if (object.getClass().equals(SingleTransitiveConstraint.class)) {
+ if (object.getClass() == SingleTransitiveConstraint.class) {
returnValue = transConstraint.equals(((SingleTransitiveConstraint)object).transConstraint);
}
Modified: trunk/src/jar/query/java/org/mulgara/query/TransitiveConstraint.java
===================================================================
--- trunk/src/jar/query/java/org/mulgara/query/TransitiveConstraint.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/query/java/org/mulgara/query/TransitiveConstraint.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -144,7 +144,7 @@
// Check that the given object is the correct class if so check each
// element.
- if (object.getClass().equals(TransitiveConstraint.class)) {
+ if (object.getClass() == TransitiveConstraint.class) {
TransitiveConstraint tmpConstraint = (TransitiveConstraint) object;
Modified: trunk/src/jar/query/java/org/mulgara/query/UnconstrainedAnswer.java
===================================================================
--- trunk/src/jar/query/java/org/mulgara/query/UnconstrainedAnswer.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/query/java/org/mulgara/query/UnconstrainedAnswer.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -53,7 +53,7 @@
*
* @licence <a href="{@docRoot}/../../LICENCE">Mozilla Public License v1.1</a>
*/
-public class UnconstrainedAnswer implements Answer, Serializable {
+public class UnconstrainedAnswer extends AbstractAnswer implements Answer, Serializable {
/**
* Allow newer compiled version of the stub to operate when changes
@@ -93,18 +93,6 @@
// null implementation
}
- /**
- * Generate an unconstrained {@link Answer}.
- *
- * @param row the cursor position of the constructed instance
- */
- private UnconstrainedAnswer(int row) {
- assert row >= -1;
- assert row <= +1;
-
- this.row = row;
- }
-
//
// Methods implementing Answer
//
@@ -234,7 +222,9 @@
* @return {@inheritDoc}
*/
public Object clone() {
- return new UnconstrainedAnswer(row);
+ UnconstrainedAnswer ans = (UnconstrainedAnswer)super.clone();
+ ans.row = row;
+ return ans;
}
/**
Modified: trunk/src/jar/query/java/org/mulgara/query/Variable.java
===================================================================
--- trunk/src/jar/query/java/org/mulgara/query/Variable.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/query/java/org/mulgara/query/Variable.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -118,7 +118,7 @@
* @return <code>true</code> if object is a Variable, and has the same name.
*/
public boolean equals(Object object) {
- if ((object == null) || !Variable.class.equals(object.getClass())) return false;
+ if ((object == null) || Variable.class != object.getClass()) return false;
return (object == this) || name.equals(((Variable)object).name);
}
Modified: trunk/src/jar/query/java/org/mulgara/query/filter/TestContext.java
===================================================================
--- trunk/src/jar/query/java/org/mulgara/query/filter/TestContext.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/query/java/org/mulgara/query/filter/TestContext.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -19,6 +19,7 @@
import org.jrdf.graph.Node;
import org.mulgara.query.QueryException;
+import static org.mulgara.util.ObjectUtil.eq;
/**
@@ -125,6 +126,15 @@
return 0;
}
+ public boolean equals(Object o) {
+ if (!(o instanceof TestContext)) return false;
+ TestContext c = (TestContext)o;
+ return c == this ||
+ eq(columnNames, c.columnNames) &&
+ Arrays.deepEquals(rows, c.rows) &&
+ eq(globalizer, c.globalizer);
+ }
+
/**
* Gets a previously unused node ID.
* @return a new Node ID.
Modified: trunk/src/jar/query/java/org/mulgara/query/filter/value/Var.java
===================================================================
--- trunk/src/jar/query/java/org/mulgara/query/filter/value/Var.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/query/java/org/mulgara/query/filter/value/Var.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -190,7 +190,7 @@
/** {@inheritDoc} */
public boolean sameTerm(RDFTerm v) throws QueryException {
- if (Var.class.equals(v.getClass())) return resolveLocal() == ((Var)v).resolveLocal();
+ if (Var.class == v.getClass()) return resolveLocal() == ((Var)v).resolveLocal();
return resolve().sameTerm(v);
}
Modified: trunk/src/jar/resolver/java/org/mulgara/resolver/Database.java
===================================================================
--- trunk/src/jar/resolver/java/org/mulgara/resolver/Database.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/resolver/java/org/mulgara/resolver/Database.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -1271,7 +1271,7 @@
if (internalResolverFactoryMap.containsKey(modelTypeURI)) {
// check if the other resolver factory is actually the current one
InternalResolverFactory rf = internalResolverFactoryMap.get(modelTypeURI);
- if (!rf.resolverFactory.getClass().equals(resolverFactory.getClass())) {
+ if (rf.resolverFactory.getClass() != resolverFactory.getClass()) {
throw new InitializerException("Graph type " + modelTypeURI + " is already registered to " + rf.resolverFactory);
} else {
// already registered
Modified: trunk/src/jar/resolver/java/org/mulgara/resolver/GlobalizedAnswer.java
===================================================================
--- trunk/src/jar/resolver/java/org/mulgara/resolver/GlobalizedAnswer.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/resolver/java/org/mulgara/resolver/GlobalizedAnswer.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -34,7 +34,9 @@
import org.apache.log4j.Logger;
// Locally written packages
+import org.mulgara.query.AbstractAnswer;
import org.mulgara.query.Answer;
+import org.mulgara.query.AnswerOperations;
import org.mulgara.query.TuplesException;
import org.mulgara.query.Variable;
import org.mulgara.resolver.spi.GlobalizeException;
@@ -62,7 +64,7 @@
*
* @licence <a href="{@docRoot}/../../LICENCE">Mozilla Public License v1.1</a>
*/
-class GlobalizedAnswer implements Answer, Cloneable {
+class GlobalizedAnswer extends AbstractAnswer implements Answer, Cloneable {
/** Logger. */
private final static Logger logger =
Logger.getLogger(GlobalizedAnswer.class.getName());
@@ -200,12 +202,7 @@
public Object clone() {
// Copy immutable fields by reference
- GlobalizedAnswer cloned;
- try {
- cloned = (GlobalizedAnswer)super.clone();
- } catch (CloneNotSupportedException e) {
- throw new Error(getClass() + " must support cloning", e);
- }
+ GlobalizedAnswer cloned = (GlobalizedAnswer)super.clone();
assert cloned != null;
// Copy mutable fields by value
@@ -213,4 +210,15 @@
return cloned;
}
+
+ public boolean equals(Object object) {
+ if ((object != null) && (object instanceof Answer)) {
+ try {
+ return AnswerOperations.equal(this, (Answer) object);
+ } catch (TuplesException e) {
+ logger.fatal("Couldn't test equality of answers", e);
+ }
+ }
+ return false;
+ }
}
Modified: trunk/src/jar/resolver/java/org/mulgara/resolver/TransactionalAnswer.java
===================================================================
--- trunk/src/jar/resolver/java/org/mulgara/resolver/TransactionalAnswer.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/resolver/java/org/mulgara/resolver/TransactionalAnswer.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -21,6 +21,7 @@
import org.apache.log4j.Logger;
// Local packages
+import org.mulgara.query.AbstractAnswer;
import org.mulgara.query.Answer;
import org.mulgara.query.MulgaraTransactionException;
import org.mulgara.query.TuplesException;
@@ -49,7 +50,7 @@
* @licence Open Software License v3.0</a>
*/
-public class TransactionalAnswer implements Answer {
+public class TransactionalAnswer extends AbstractAnswer implements Answer {
/** Logger. */
private static final Logger logger =
Logger.getLogger(TransactionalAnswer.class.getName());
@@ -242,8 +243,6 @@
report("Cloned Answer, clone=" + System.identityHashCode(c));
return c;
- } catch (CloneNotSupportedException ec) {
- throw new IllegalStateException("Clone failed on Cloneable");
} catch (MulgaraTransactionException em) {
throw new IllegalStateException("Failed to associate with transaction", em);
}
Modified: trunk/src/jar/resolver-filesystem/java/org/mulgara/resolver/filesystem/FileSystemResolution.java
===================================================================
--- trunk/src/jar/resolver-filesystem/java/org/mulgara/resolver/filesystem/FileSystemResolution.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/resolver-filesystem/java/org/mulgara/resolver/filesystem/FileSystemResolution.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -27,8 +27,6 @@
package org.mulgara.resolver.filesystem;
-// Java 2 standard packages
-import java.util.*;
// Third party packages
import org.apache.log4j.Logger; // Apache Log4J
@@ -36,7 +34,6 @@
// Locally written packages
import org.mulgara.query.*;
import org.mulgara.resolver.spi.Resolution;
-import org.mulgara.resolver.spi.Resolver;
import org.mulgara.store.tuples.Tuples;
import org.mulgara.store.tuples.WrappedTuples;
@@ -61,7 +58,8 @@
public class FileSystemResolution extends WrappedTuples implements Resolution {
/** Logger */
- private static Logger logger = Logger.getLogger(FileSystemResolution.class);
+ @SuppressWarnings("unused")
+ private static final Logger logger = Logger.getLogger(FileSystemResolution.class);
/** The constraint this instance resolves */
private final Constraint constraint;
Modified: trunk/src/jar/resolver-gis/java/org/mulgara/resolver/gis/tools/AbstractAngle.java
===================================================================
--- trunk/src/jar/resolver-gis/java/org/mulgara/resolver/gis/tools/AbstractAngle.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/resolver-gis/java/org/mulgara/resolver/gis/tools/AbstractAngle.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -57,6 +57,7 @@
/**
* Logger. This is named after the class.
*/
+ @SuppressWarnings("unused")
private final static Logger log = Logger.getLogger(AbstractAngle.class.
getName());
Modified: trunk/src/jar/resolver-gis/java/org/mulgara/resolver/gis/tools/DistanceCalculatorFactory.java
===================================================================
--- trunk/src/jar/resolver-gis/java/org/mulgara/resolver/gis/tools/DistanceCalculatorFactory.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/resolver-gis/java/org/mulgara/resolver/gis/tools/DistanceCalculatorFactory.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -57,6 +57,7 @@
/**
* Logger. This is named after the class.
*/
+ @SuppressWarnings("unused")
private final static Logger log = Logger.getLogger(DistanceCalculatorFactory.class.
getName());
Modified: trunk/src/jar/resolver-gis/java/org/mulgara/resolver/gis/tools/LatitudeImpl.java
===================================================================
--- trunk/src/jar/resolver-gis/java/org/mulgara/resolver/gis/tools/LatitudeImpl.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/resolver-gis/java/org/mulgara/resolver/gis/tools/LatitudeImpl.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -55,6 +55,7 @@
/**
* Logger. This is named after the class.
*/
+ @SuppressWarnings("unused")
private final static Logger log = Logger.getLogger(LatitudeImpl.class.getName());
/**
Modified: trunk/src/jar/resolver-gis/java/org/mulgara/resolver/gis/tools/LongitudeImpl.java
===================================================================
--- trunk/src/jar/resolver-gis/java/org/mulgara/resolver/gis/tools/LongitudeImpl.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/resolver-gis/java/org/mulgara/resolver/gis/tools/LongitudeImpl.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -55,6 +55,7 @@
/**
* Logger. This is named after the class.
*/
+ @SuppressWarnings("unused")
private final static Logger log = Logger.getLogger(LongitudeImpl.class.getName());
/**
Modified: trunk/src/jar/resolver-gis/java/org/mulgara/resolver/gis/tools/SphericalDistanceEstimator.java
===================================================================
--- trunk/src/jar/resolver-gis/java/org/mulgara/resolver/gis/tools/SphericalDistanceEstimator.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/resolver-gis/java/org/mulgara/resolver/gis/tools/SphericalDistanceEstimator.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -56,6 +56,7 @@
/**
* Logger. This is named after the class.
*/
+ @SuppressWarnings("unused")
private final static Logger log = Logger.getLogger(SphericalDistanceEstimator.class.getName());
/** Size of the sphere (in metres). */
Modified: trunk/src/jar/resolver-lucene/java/org/mulgara/resolver/lucene/LuceneConstraint.java
===================================================================
--- trunk/src/jar/resolver-lucene/java/org/mulgara/resolver/lucene/LuceneConstraint.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/resolver-lucene/java/org/mulgara/resolver/lucene/LuceneConstraint.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -31,6 +31,7 @@
import org.mulgara.query.Variable;
import org.mulgara.resolver.spi.QueryEvaluationContext;
import org.mulgara.resolver.spi.SymbolicTransformationException;
+import static org.mulgara.util.ObjectUtil.eq;
/**
* A constraint representing a lucene query and a score.
@@ -260,6 +261,13 @@
", binder=" + binder + "}";
}
+ public boolean equals(Object o) {
+ if (!(o instanceof LuceneConstraint)) return false;
+ LuceneConstraint l = (LuceneConstraint)o;
+ return eq(model, l.model) && eq(subject, l.subject) && eq(predicate, l.predicate) &&
+ eq(object, l.object) && eq(binder, l.binder) && eq(score, l.score);
+ }
+
/**
* Not a binary operation, so not associative
* @return <code>false</code>
Modified: trunk/src/jar/resolver-memory/java/org/mulgara/resolver/memory/Stating.java
===================================================================
--- trunk/src/jar/resolver-memory/java/org/mulgara/resolver/memory/Stating.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/resolver-memory/java/org/mulgara/resolver/memory/Stating.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -66,7 +66,7 @@
public boolean equals(Object object)
{
- if (getClass().equals(object.getClass())) {
+ if (getClass() == object.getClass()) {
return Arrays.equals(x, ((Stating) object).x);
}
else {
Modified: trunk/src/jar/resolver-relational/java/org/mulgara/resolver/relational/RelationalAnswer.java
===================================================================
--- trunk/src/jar/resolver-relational/java/org/mulgara/resolver/relational/RelationalAnswer.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/resolver-relational/java/org/mulgara/resolver/relational/RelationalAnswer.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -52,12 +52,13 @@
import java.sql.SQLException;
// Local packages
+import org.mulgara.query.AbstractAnswer;
import org.mulgara.query.Answer;
import org.mulgara.query.Cursor;
import org.mulgara.query.TuplesException;
import org.mulgara.query.Variable;
-public class RelationalAnswer implements Answer {
+public class RelationalAnswer extends AbstractAnswer implements Answer {
private static Logger logger = Logger.getLogger(RelationalAnswer.class.getName());
private Connection conn;
@@ -79,14 +80,10 @@
public Object clone() {
- try {
- RelationalAnswer cloned = (RelationalAnswer)super.clone();
- cloned.result = null;
+ RelationalAnswer cloned = (RelationalAnswer)super.clone();
+ cloned.result = null;
- return cloned;
- } catch (CloneNotSupportedException ec) {
- throw new IllegalStateException("CloneNotSupportedException thrown");
- }
+ return cloned;
}
public Object getObject(int column) throws TuplesException {
Modified: trunk/src/jar/resolver-relational/java/org/mulgara/resolver/relational/RelationalConstraint.java
===================================================================
--- trunk/src/jar/resolver-relational/java/org/mulgara/resolver/relational/RelationalConstraint.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/resolver-relational/java/org/mulgara/resolver/relational/RelationalConstraint.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -42,6 +42,8 @@
package org.mulgara.resolver.relational;
// Java 2 standard packages
+import static org.mulgara.util.ObjectUtil.eq;
+
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;
@@ -253,4 +255,12 @@
public String toString() {
return "RC{" + variables + "} | " + rdfTypeConstraints + " # " + predConstraints;
}
+
+ public boolean equals(Object o) {
+ if (!(o instanceof RelationalConstraint)) return false;
+ RelationalConstraint r = (RelationalConstraint)o;
+ return eq(model, r.model) && eq(variables, r.variables) &&
+ eq(rdfTypeConstraints, r.rdfTypeConstraints) && eq(predConstraints, r.predConstraints);
+ }
+
}
Modified: trunk/src/jar/resolver-spi/java/org/mulgara/resolver/spi/ConjunctiveTransformerUnitTest.java
===================================================================
--- trunk/src/jar/resolver-spi/java/org/mulgara/resolver/spi/ConjunctiveTransformerUnitTest.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/resolver-spi/java/org/mulgara/resolver/spi/ConjunctiveTransformerUnitTest.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -584,8 +584,8 @@
@SuppressWarnings("unchecked")
SortedMap<ConstraintElement,?> createSortedMap(Map<ConstraintElement,?> m) {
- SortedMap<ConstraintElement,?> sm = new TreeMap(m);
- for (Map.Entry entry: sm.entrySet()) {
+ SortedMap<ConstraintElement,Object> sm = new TreeMap<ConstraintElement,Object>(m);
+ for (Map.Entry<ConstraintElement,Object> entry: sm.entrySet()) {
Object v = entry.getValue();
if (v instanceof Map) {
entry.setValue(createSortedMap((Map<ConstraintElement,?>)v));
Modified: trunk/src/jar/resolver-spi/java/org/mulgara/resolver/spi/TuplesContext.java
===================================================================
--- trunk/src/jar/resolver-spi/java/org/mulgara/resolver/spi/TuplesContext.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/resolver-spi/java/org/mulgara/resolver/spi/TuplesContext.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -141,5 +141,9 @@
public long getUnboundVal() {
return Tuples.UNBOUND;
}
-
+
+ public boolean equals(Object o) {
+ return this == o;
+ }
+
}
Modified: trunk/src/jar/resolver-xsd/java/org/mulgara/resolver/xsd/IntervalConstraint.java
===================================================================
--- trunk/src/jar/resolver-xsd/java/org/mulgara/resolver/xsd/IntervalConstraint.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/resolver-xsd/java/org/mulgara/resolver/xsd/IntervalConstraint.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -305,7 +305,7 @@
public boolean equals(Object object) {
if (object == null) return false;
- if (!object.getClass().equals(IntervalConstraint.class)) return false;
+ if (object.getClass() != IntervalConstraint.class) return false;
assert object instanceof IntervalConstraint;
IntervalConstraint intervalConstraint = (IntervalConstraint) object;
Modified: trunk/src/jar/resolver-xsd/java/org/mulgara/resolver/xsd/IntervalConstraintDescriptor.java
===================================================================
--- trunk/src/jar/resolver-xsd/java/org/mulgara/resolver/xsd/IntervalConstraintDescriptor.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/resolver-xsd/java/org/mulgara/resolver/xsd/IntervalConstraintDescriptor.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -88,7 +88,7 @@
throws Exception {
// Validate "constraintExpression" parameter
- if (!constraintExpression.getClass().equals(IntervalConstraint.class)) {
+ if (constraintExpression.getClass() != IntervalConstraint.class) {
throw new IllegalArgumentException("Bad \"constraintExpression\" type: " + constraintExpression + " of class " + constraintExpression.getClass());
}
Modified: trunk/src/jar/server-rmi/java/org/mulgara/server/rmi/BlankNodeWrapperAnswer.java
===================================================================
--- trunk/src/jar/server-rmi/java/org/mulgara/server/rmi/BlankNodeWrapperAnswer.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/server-rmi/java/org/mulgara/server/rmi/BlankNodeWrapperAnswer.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -36,6 +36,7 @@
import org.jrdf.graph.*;
// Third party packages
+import org.mulgara.query.AbstractAnswer;
import org.mulgara.query.Answer;
import org.mulgara.query.TuplesException;
import org.mulgara.query.Variable;
@@ -58,11 +59,11 @@
*
* @licence <a href="{@docRoot}/../../LICENCE">Mozilla Public License v1.1</a>
*/
-public class BlankNodeWrapperAnswer implements Answer {
+public class BlankNodeWrapperAnswer extends AbstractAnswer implements Answer {
/** Logger */
@SuppressWarnings("unused")
- private static Logger logger = Logger.getLogger(BlankNodeWrapperAnswer.class.getName());
+ private static final Logger logger = Logger.getLogger(BlankNodeWrapperAnswer.class.getName());
/**
* The wrapped instance.
@@ -89,14 +90,9 @@
}
public Object clone() {
- try {
- BlankNodeWrapperAnswer cloned = (BlankNodeWrapperAnswer) super.clone();
- cloned.answer = (Answer)this.answer.clone();
- return cloned;
- }
- catch (CloneNotSupportedException e) {
- throw new RuntimeException("BlankNodeWrapperAnswer not cloneable");
- }
+ BlankNodeWrapperAnswer cloned = (BlankNodeWrapperAnswer) super.clone();
+ cloned.answer = (Answer)this.answer.clone();
+ return cloned;
}
public Object getObject(int column) throws TuplesException {
@@ -193,4 +189,5 @@
public boolean next() throws TuplesException {
return answer.next();
}
+
}
Modified: trunk/src/jar/server-rmi/java/org/mulgara/server/rmi/RemoteAnswerWrapperAnswer.java
===================================================================
--- trunk/src/jar/server-rmi/java/org/mulgara/server/rmi/RemoteAnswerWrapperAnswer.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/server-rmi/java/org/mulgara/server/rmi/RemoteAnswerWrapperAnswer.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -34,6 +34,7 @@
import org.apache.log4j.*;
// Local packages
+import org.mulgara.query.AbstractAnswer;
import org.mulgara.query.Answer;
import org.mulgara.query.TuplesException;
import org.mulgara.query.Variable;
@@ -52,7 +53,7 @@
* Software Pty Ltd</a>
* @licence <a href="{@docRoot}/../../LICENCE">Mozilla Public License v1.1</a>
*/
-class RemoteAnswerWrapperAnswer implements Answer, Cloneable {
+class RemoteAnswerWrapperAnswer extends AbstractAnswer implements Answer, Cloneable {
/** logger */
private static Logger logger =
Logger.getLogger(AnswerWrapperRemoteAnswer.class.getName());
Modified: trunk/src/jar/store-stringpool/java/org/mulgara/store/stringpool/AbstractSPObject.java
===================================================================
--- trunk/src/jar/store-stringpool/java/org/mulgara/store/stringpool/AbstractSPObject.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/store-stringpool/java/org/mulgara/store/stringpool/AbstractSPObject.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -215,4 +215,10 @@
return a == b ? 0 : (a < b ? -1 : 1);
}
+ /**
+ * Default equality test. Based on the data type and the raw buffer.
+ */
+ public boolean equals(Object o) {
+ return o.getClass() == getClass() && ((SPObject)o).getData().equals(getData());
+ }
}
Modified: trunk/src/jar/store-stringpool/java/org/mulgara/store/stringpool/xa/SPBase64BinaryImpl.java
===================================================================
--- trunk/src/jar/store-stringpool/java/org/mulgara/store/stringpool/xa/SPBase64BinaryImpl.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/store-stringpool/java/org/mulgara/store/stringpool/xa/SPBase64BinaryImpl.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -298,4 +298,10 @@
public SPComparator getSPComparator() {
return SPBinaryComparator.getInstance();
}
+
+ public boolean equals(Object o) {
+ if (!(o instanceof SPBase64BinaryImpl)) return false;
+ SPBase64BinaryImpl b = (SPBase64BinaryImpl)o;
+ return data.equals(b.data);
+ }
}
Modified: trunk/src/jar/tuples/java/org/mulgara/store/tuples/AbstractTuples.java
===================================================================
--- trunk/src/jar/tuples/java/org/mulgara/store/tuples/AbstractTuples.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/tuples/java/org/mulgara/store/tuples/AbstractTuples.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -488,66 +488,72 @@
* @return if the object is equal by row number, variables and row.
*/
public boolean equals(Object o) {
+ return (o instanceof Tuples) && equals(this, (Tuples)o);
+ }
+
+ /**
+ * Tests if two tuples are identical
+ * @param first The first tuples to test.
+ * @param second The second tuples to test.
+ * @return true if both tuples compare equal by row number, variables and by row.
+ */
+ public static boolean equals(Tuples first, Tuples second) {
boolean isEqual = false;
- // Make sure it's not null
- if (o != null) {
- try {
- // Try and cast the passed object - if not then they aren't equal.
- Tuples testTuples = (Tuples) o;
+ if (first == second) return true;
- // Ensure that the row count is the same
- if (getRowCount() == testTuples.getRowCount()) {
- // Ensure that the variable lists are equal
- if (Arrays.asList(getVariables()).equals(
- Arrays.asList(testTuples.getVariables()))) {
- // Clone tuples to be compared
- Tuples t1 = (Tuples) clone();
- Tuples t2 = (Tuples) testTuples.clone();
+ if (first == null || second == null) return false;
- try {
- // Put them at the start.
- t1.beforeFirst();
- t2.beforeFirst();
+ try {
+ // Ensure that the row count is the same
+ if (first.getRowCount() == second.getRowCount()) {
+ // Ensure that the variable lists are equal
+ if (Arrays.asList(first.getVariables()).equals(
+ Arrays.asList(second.getVariables()))) {
+ // Clone tuples to be compared
+ Tuples t1 = (Tuples) first.clone();
+ Tuples t2 = (Tuples) second.clone();
- boolean finished = false;
- boolean tuplesEqual = true;
+ try {
+ // Put them at the start.
+ t1.beforeFirst();
+ t2.beforeFirst();
- // Repeat until there are no more rows or we find an unequal row.
- while (!finished) {
- // Assume that if t1 has next so does t2.
- finished = !t1.next();
- t2.next();
+ boolean finished = false;
+ boolean tuplesEqual = true;
- // If we're not finished compare the row.
- if (!finished) {
- // Check if the elements in both rows are equal.
- for (int variableIndex = 0;
- variableIndex < t1.getNumberOfVariables();
- variableIndex++) {
- // If they're not equal quit the loop and set tuplesEqual to
- // false.
- if (t1.getColumnValue(variableIndex) !=
- t2.getColumnValue(variableIndex)) {
- tuplesEqual = false;
- finished = true;
- }
+ // Repeat until there are no more rows or we find an unequal row.
+ while (!finished) {
+ // Assume that if t1 has next so does t2.
+ finished = !t1.next();
+ t2.next();
+
+ // If we're not finished compare the row.
+ if (!finished) {
+ // Check if the elements in both rows are equal.
+ for (int variableIndex = 0;
+ variableIndex < t1.getNumberOfVariables();
+ variableIndex++) {
+ // If they're not equal quit the loop and set tuplesEqual to
+ // false.
+ if (t1.getColumnValue(variableIndex) !=
+ t2.getColumnValue(variableIndex)) {
+ tuplesEqual = false;
+ finished = true;
}
}
}
+ }
- isEqual = tuplesEqual;
- } finally {
- t1.close();
- t2.close();
- }
+ isEqual = tuplesEqual;
+ } finally {
+ t1.close();
+ t2.close();
}
}
- } catch (ClassCastException cce) {
- // Not of the correct type return false.
- } catch (TuplesException ex) {
- throw new RuntimeException(ex.toString(), ex);
}
+ } catch (TuplesException ex) {
+ throw new RuntimeException(ex.toString(), ex);
}
return isEqual;
Modified: trunk/src/jar/tuples/java/org/mulgara/store/tuples/LeftJoin.java
===================================================================
--- trunk/src/jar/tuples/java/org/mulgara/store/tuples/LeftJoin.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/tuples/java/org/mulgara/store/tuples/LeftJoin.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -736,6 +736,13 @@
public long getRowExpectedCount() throws TuplesException {
return wrapped.getRowExpectedCount();
}
-
+
+ /**
+ * Required by Tuples.
+ */
+ public boolean equals(Object o) {
+ return (o instanceof Tuples) && AbstractTuples.equals(this, (Tuples)o);
+ }
+
}
}
Modified: trunk/src/jar/tuples/java/org/mulgara/store/tuples/WrappedTuples.java
===================================================================
--- trunk/src/jar/tuples/java/org/mulgara/store/tuples/WrappedTuples.java 2011-09-08 15:32:38 UTC (rev 2020)
+++ trunk/src/jar/tuples/java/org/mulgara/store/tuples/WrappedTuples.java 2011-09-09 03:49:39 UTC (rev 2021)
@@ -328,6 +328,13 @@
}
/**
+ * Required by Tuples.
+ */
+ public boolean equals(Object o) {
+ return (o instanceof Tuples) && AbstractTuples.equals(this, (Tuples)o);
+ }
+
+ /**
* Copied from AbstractTuples.
*/
public Annotation getAnnotation(Class<? extends Annotation> annotationClass) throws TuplesException {
More information about the Mulgara-svn
mailing list