You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2023/12/27 17:02:44 UTC
(jena) 07/10: Remove unused NodeValueCompare
This is an automated email from the ASF dual-hosted git repository.
andy pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/jena.git
commit 793334d52853d49b0b013646ae65dd35b4a0ded5
Author: Andy Seaborne <an...@apache.org>
AuthorDate: Sun Dec 24 21:44:57 2023 +0000
Remove unused NodeValueCompare
---
.../apache/jena/sparql/expr/NodeValueCompare.java | 406 ---------------------
1 file changed, 406 deletions(-)
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/NodeValueCompare.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/NodeValueCompare.java
deleted file mode 100644
index 7d98029bf4..0000000000
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/NodeValueCompare.java
+++ /dev/null
@@ -1,406 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.apache.jena.sparql.expr;
-
-/*package*/ class NodeValueCompare {}
-//// Old (upto 4.6.1 comprare code.)
-
-// XXX Delete!
-
-///*package*/ class NodeValueCompare {
-// private NodeValueCompare() {}
-//
-// // ----------------------------------------------------------------
-// // ---- sameValueAs
-//
-// // Disjoint value spaces : dateTime and dates are not comparable
-// // Every langtag implies another value space as well.
-//
-// /**
-// * Return true if the two NodeValues are known to be the same value return false
-// * if known to be different values, throw ExprEvalException otherwise
-// */
-// /*public*/private static boolean sameValueAs(NodeValue nv1, NodeValue nv2) {
-// if ( nv1 == null || nv2 == null )
-// throw new ARQInternalErrorException("Attempt to sameValueAs on a null");
-//
-// ValueSpaceClassification compType = NodeValue.classifyValueOp(nv1, nv2);
-//
-// // Special case - date/dateTime comparison is affected by timezones and may
-// // be
-// // indeterminate based on the value of the dateTime/date.
-//
-// switch (compType) {
-// case VSPACE_NUM :
-// return XSDFuncOp.compareNumeric(nv1, nv2) == CMP_EQUAL;
-// case VSPACE_DATETIME :
-// case VSPACE_DATE :
-// case VSPACE_TIME :
-// case VSPACE_G_YEAR :
-// case VSPACE_G_YEARMONTH :
-// case VSPACE_G_MONTH :
-// case VSPACE_G_MONTHDAY :
-// case VSPACE_G_DAY : {
-// int x = XSDFuncOp.compareDateTime(nv1, nv2);
-// if ( x == Expr.CMP_INDETERMINATE )
-// throw new ExprNotComparableException("Indeterminate dateTime comparison");
-// return x == CMP_EQUAL;
-// }
-// case VSPACE_DURATION : {
-// int x = XSDFuncOp.compareDuration(nv1, nv2);
-// if ( x == Expr.CMP_INDETERMINATE )
-// throw new ExprNotComparableException("Indeterminate duration comparison");
-// return x == CMP_EQUAL;
-// }
-//
-// case VSPACE_STRING :
-// return XSDFuncOp.compareString(nv1, nv2) == CMP_EQUAL;
-// case VSPACE_BOOLEAN :
-// return XSDFuncOp.compareBoolean(nv1, nv2) == CMP_EQUAL;
-//
-// case VSPACE_TRIPLE_TERM : {
-// Triple t1 = nv1.getNode().getTriple();
-// Triple t2 = nv2.getNode().getTriple();
-// return nSameValueAs(t1.getSubject(), t2.getSubject()) &&
-// nSameValueAs(t1.getPredicate(), t2.getPredicate()) &&
-// nSameValueAs(t1.getObject(), t2.getObject());
-// }
-//
-// case VSPACE_LANG :
-// case VSPACE_NODE :
-// // Two non-literals
-// return NodeFunctions.sameTerm(nv1.getNode(), nv2.getNode());
-//
-// case VSPACE_UNKNOWN : {
-// // One or two unknown value spaces, or one has a lang tag (but not
-// // both).
-// Node node1 = nv1.asNode();
-// Node node2 = nv2.asNode();
-//
-// if ( !SystemARQ.ValueExtensions )
-// // No value extensions => raw rdfTermEquals
-// return NodeFunctions.rdfTermEquals(node1, node2);
-//
-// // Some "value spaces" are know to be not equal (no overlap).
-// // Like one literal with a language tag, and one without can't be
-// // sameAs.
-//
-// if ( !node1.isLiteral() || !node2.isLiteral() )
-// // Can't both be non-literals - that's VSPACE_NODE
-// // One or other not a literal => not sameAs
-// return false;
-//
-// // Two literals at this point.
-//
-// if ( NodeFunctions.sameTerm(node1, node2) )
-// return true;
-//
-// if ( !node1.getLiteralLanguage().equals("") || !node2.getLiteralLanguage().equals("") )
-// // One had lang tag but weren't sameNode => not equals
-// return false;
-//
-// raise(new ExprEvalException("Unknown equality test: " + nv1 + " and " + nv2));
-// throw new ARQInternalErrorException("raise returned (sameValueAs)");
-// }
-// case VSPACE_SORTKEY :
-// return nv1.getSortKey().compareTo(nv2.getSortKey()) == 0;
-//
-// case VSPACE_DIFFERENT :
-// // Known to be incompatible.
-// if ( !SystemARQ.ValueExtensions && (nv1.isLiteral() && nv2.isLiteral()) )
-// raise(new ExprEvalException("Incompatible: " + nv1 + " and " + nv2));
-// return false;
-// }
-//
-// throw new ARQInternalErrorException("sameValueAs failure " + nv1 + " and " + nv2);
-// }
-//
-// /** Worker for sameAs. */
-// private static boolean nSameValueAs(Node n1, Node n2) {
-// NodeValue nv1 = NodeValue.makeNode(n1);
-// NodeValue nv2 = NodeValue.makeNode(n2);
-// return sameValueAs(nv1, nv2);
-// }
-//
-// /**
-// * Return true if the two Nodes are known to be different, return false if the
-// * two Nodes are known to be the same, else throw ExprEvalException
-// */
-// /*package*/private static boolean notSameAs(Node n1, Node n2) {
-// return notSameValueAs(NodeValue.makeNode(n1), NodeValue.makeNode(n2));
-// }
-//
-// /**
-// * Return true if the two NodeValues are known to be different, return false if
-// * the two NodeValues are known to be the same, else throw ExprEvalException
-// */
-// /*package*/private static boolean notSameValueAs(NodeValue nv1, NodeValue nv2) {
-// return !sameValueAs(nv1, nv2);
-// }
-//
-// // ----------------------------------------------------------------
-// // compare
-//
-// // Compare by value code is here
-// // NodeUtils.compareRDFTerms for syntactic comparison
-//
-// /**
-// * Compare by value if possible else compare by kind/type/lexical form Only use
-// * when you want an ordering regardless of form of NodeValue, for example in
-// * ORDER BY
-// *
-// * @param nv1
-// * @param nv2
-// * @return negative, 0, or positive for less than, equal, greater than.
-// */
-//
-// /*package*/private static int $_compareAlways(NodeValue nv1, NodeValue nv2) {
-// try {
-// int x = compare(nv1, nv2, true);
-// // Same?
-// if ( x != CMP_EQUAL )
-// return x;
-// } catch (ExprNotComparableException ex) { /* Drop through */ }
-// return NodeCmp.compareRDFTerms(nv1.asNode(), nv2.asNode());
-// }
-//
-// /**
-// * Compare by value (and only value) if possible. Supports <, <=, >,
-// * >= but not = nor != (which are sameValueAs and notSameValueAs)
-// *
-// * @param nv1
-// * @param nv2
-// * @return Expr.CMP_LESS(-1), Expr.CMP_EQUAL(0) or Expr.CMP_GREATER(+1)
-// * @throws ExprNotComparableException for Expr.CMP_INDETERMINATE(+2)
-// */
-// /*package*/private static int $_compare(NodeValue nv1, NodeValue nv2) {
-// if ( nv1 == null || nv2 == null )
-// // raise(new ExprEvalException("Attempt to notSameValueAs on null") ;
-// throw new ARQInternalErrorException("Attempt to compare on null");
-// int x = compare(nv1, nv2, false);
-// if ( x == Expr.CMP_INDETERMINATE )
-// throw new ExprNotComparableException("Indeterminate comparison");
-// return x;
-// }
-//
-// // E_GreaterThan/E_LessThan/E_GreaterThanOrEqual/E_LessThanOrEqual
-// // ==> compare(nv1, nv2) => compare (nv1, nv2, false)
-//
-// // BindingComparator => compareAlways(nv1, nv2) => compare (nv1, nv2, true)
-//
-// // E_Equals calls NodeValue.sameAs() ==>
-//
-// // sortOrderingCompare means that the comparison should do something with
-// // normally unlike things,
-// // and split plain strings from xsd:strings.
-//
-// private static int compare(NodeValue nv1, NodeValue nv2, boolean sortOrderingCompare) {
-// if ( nv1 == null && nv2 == null )
-// return CMP_EQUAL;
-//
-// if ( nv1 == null )
-// return Expr.CMP_LESS;
-// if ( nv2 == null )
-// return Expr.CMP_GREATER;
-//
-// ValueSpaceClassification compType = NodeValue.classifyValueOp(nv1, nv2);
-//
-// // Special case - date/dateTime comparison is affected by timezones and may
-// // be
-// // indeterminate based on the value of the dateTime/date.
-// // Do this first, so that indeterminate can drop through to a general
-// // ordering.
-//
-// switch (compType) {
-// case VSPACE_DATETIME :
-// case VSPACE_DATE :
-// case VSPACE_TIME :
-// case VSPACE_G_DAY :
-// case VSPACE_G_MONTH :
-// case VSPACE_G_MONTHDAY :
-// case VSPACE_G_YEAR :
-// case VSPACE_G_YEARMONTH : {
-// int x = XSDFuncOp.compareDateTime(nv1, nv2);
-// if ( x != Expr.CMP_INDETERMINATE )
-// return x;
-// // Indeterminate => can't compare as strict values.
-// compType = ValueSpaceClassification.VSPACE_DIFFERENT;
-// break;
-// }
-// case VSPACE_DURATION : {
-// int x = XSDFuncOp.compareDuration(nv1, nv2);
-// // Fix up - Java (Oracle java7 at least) returns "equals" for
-// // "P1Y"/"P365D" and "P1M"/"P28D", and others split over
-// // YearMonth/DayTime.
-//
-// // OR return Expr.CMP_INDETERMINATE ??
-// if ( x == CMP_EQUAL ) {
-// Duration d1 = nv1.getDuration();
-// Duration d2 = nv2.getDuration();
-// if ( (XSDFuncOp.isDayTime(d1) && XSDFuncOp.isYearMonth(d2)) || (XSDFuncOp.isDayTime(d2) && XSDFuncOp.isYearMonth(d1)) )
-// x = Expr.CMP_INDETERMINATE;
-// }
-// if ( x != Expr.CMP_INDETERMINATE )
-// return x;
-// compType = ValueSpaceClassification.VSPACE_DIFFERENT;
-// break;
-// }
-//
-// // No special cases.
-// case VSPACE_BOOLEAN :
-// case VSPACE_DIFFERENT :
-// case VSPACE_LANG :
-// case VSPACE_TRIPLE_TERM :
-// case VSPACE_NODE :
-// case VSPACE_NUM :
-// case VSPACE_STRING :
-// case VSPACE_SORTKEY :
-// case VSPACE_UNKNOWN :
-// // Drop through.
-// }
-//
-// switch (compType) {
-// case VSPACE_DATETIME :
-// case VSPACE_DATE :
-// case VSPACE_TIME :
-// case VSPACE_G_DAY :
-// case VSPACE_G_MONTH :
-// case VSPACE_G_MONTHDAY :
-// case VSPACE_G_YEAR :
-// case VSPACE_G_YEARMONTH :
-// case VSPACE_DURATION :
-// throw new ARQInternalErrorException("Still seeing date/dateTime/time/duration compare type");
-//
-// case VSPACE_NUM :
-// return XSDFuncOp.compareNumeric(nv1, nv2);
-// case VSPACE_STRING : {
-// int cmp = XSDFuncOp.compareString(nv1, nv2);
-//
-// if ( !sortOrderingCompare )
-// return cmp;
-// if ( cmp != CMP_EQUAL )
-// return cmp;
-//
-// // Equality.
-// if ( JenaRuntime.isRDF11 )
-// // RDF 1.1 : No literals without datatype.
-// return cmp;
-//
-// // RDF 1.0
-// // Split plain literals and xsd:strings for sorting purposes.
-// // Same by string value.
-// String dt1 = nv1.asNode().getLiteralDatatypeURI();
-// String dt2 = nv2.asNode().getLiteralDatatypeURI();
-// if ( dt1 == null && dt2 != null )
-// return Expr.CMP_LESS;
-// if ( dt2 == null && dt1 != null )
-// return Expr.CMP_GREATER;
-// return CMP_EQUAL; // Both plain or both xsd:string.
-// }
-// case VSPACE_SORTKEY :
-// return nv1.getSortKey().compareTo(nv2.getSortKey());
-//
-// case VSPACE_BOOLEAN :
-// return XSDFuncOp.compareBoolean(nv1, nv2);
-//
-// case VSPACE_LANG : {
-// // Two literals, both with language tags.
-// Node node1 = nv1.asNode();
-// Node node2 = nv2.asNode();
-//
-// int x = StrUtils.strCompareIgnoreCase(node1.getLiteralLanguage(), node2.getLiteralLanguage());
-// if ( x != CMP_EQUAL ) {
-// // Different lang tags
-// if ( !sortOrderingCompare )
-// raise(new ExprNotComparableException("Can't compare (different languages) " + nv1 + " and " + nv2));
-// // Different lang tags - sorting
-// return x;
-// }
-//
-// // same lang tag (case insensitive)
-// x = StrUtils.strCompare(node1.getLiteralLexicalForm(), node2.getLiteralLexicalForm());
-// if ( x != CMP_EQUAL )
-// return x;
-// // Same lexical forms, same lang tag by value
-// // Try to split by syntactic lang tags.
-// x = StrUtils.strCompare(node1.getLiteralLanguage(), node2.getLiteralLanguage());
-// // Maybe they are the same after all!
-// // Should be node.equals by now.
-// if ( x == CMP_EQUAL && !NodeFunctions.sameTerm(node1, node2) )
-// throw new ARQInternalErrorException("Looks like the same (lang tags) but not node equals");
-// return x;
-// }
-//
-// case VSPACE_TRIPLE_TERM : {
-// Triple t1 = nv1.asNode().getTriple();
-// Triple t2 = nv2.asNode().getTriple();
-// int x = nCompare(t1.getSubject(), t2.getSubject(), sortOrderingCompare);
-// if ( x != CMP_EQUAL )
-// return x;
-// x = nCompare(t1.getPredicate(), t2.getPredicate(), sortOrderingCompare);
-// if ( x != CMP_EQUAL )
-// return x;
-// return nCompare(t1.getObject(), t2.getObject(), sortOrderingCompare);
-// }
-//
-// case VSPACE_NODE :
-// // Two non-literals don't compare except for sorting.
-// if ( sortOrderingCompare )
-// return NodeCmp.compareRDFTerms(nv1.asNode(), nv2.asNode());
-// else {
-// raise(new ExprNotComparableException("Can't compare (nodes) " + nv1 + " and " + nv2));
-// throw new ARQInternalErrorException("NodeValue.raise returned");
-// }
-//
-// case VSPACE_UNKNOWN : {
-// // One or two unknown value spaces.
-// Node node1 = nv1.asNode();
-// Node node2 = nv2.asNode();
-// // Two unknown literals can be equal.
-// if ( NodeFunctions.sameTerm(node1, node2) )
-// return CMP_EQUAL;
-//
-// if ( sortOrderingCompare )
-// return NodeCmp.compareRDFTerms(node1, node2);
-//
-// raise(new ExprNotComparableException("Can't compare " + nv1 + " and " + nv2));
-// throw new ARQInternalErrorException("NodeValue.raise returned");
-// }
-//
-// case VSPACE_DIFFERENT :
-// // Two literals, from different known value spaces
-// if ( sortOrderingCompare )
-// return NodeCmp.compareRDFTerms(nv1.asNode(), nv2.asNode());
-// return Expr.CMP_INDETERMINATE;
-//// // ***
-//// raise(new ExprNotComparableException("Can't compare (incompatible value
-//// spaces)"+nv1+" and "+nv2)) ;
-//// throw new ARQInternalErrorException("NodeValue.raise returned") ;
-// }
-// throw new ARQInternalErrorException("Compare failure " + nv1 + " and " + nv2);
-// }
-//
-// private static int nCompare(Node n1, Node n2, boolean sortOrderingCompare) {
-// if ( n1.equals(n2) )
-// return CMP_EQUAL;
-// NodeValue nv1 = NodeValue.makeNode(n1);
-// NodeValue nv2 = NodeValue.makeNode(n2);
-// return compare(nv1, nv2, sortOrderingCompare);
-// }
-//}