[Mulgara-svn] r1397 - trunk/src/jar/resolver-xsd/java/org/mulgara/resolver/xsd

ronald at mulgara.org ronald at mulgara.org
Wed Dec 3 09:26:09 UTC 2008


Author: ronald
Date: 2008-12-03 01:26:08 -0800 (Wed, 03 Dec 2008)
New Revision: 1397

Modified:
   trunk/src/jar/resolver-xsd/java/org/mulgara/resolver/xsd/IntervalTransformation.java
   trunk/src/jar/resolver-xsd/java/org/mulgara/resolver/xsd/IntervalTransformationUnitTest.java
Log:
Fix exception when both subject and object of an xsd constraint are literals.


Modified: trunk/src/jar/resolver-xsd/java/org/mulgara/resolver/xsd/IntervalTransformation.java
===================================================================
--- trunk/src/jar/resolver-xsd/java/org/mulgara/resolver/xsd/IntervalTransformation.java	2008-12-03 09:26:04 UTC (rev 1396)
+++ trunk/src/jar/resolver-xsd/java/org/mulgara/resolver/xsd/IntervalTransformation.java	2008-12-03 09:26:08 UTC (rev 1397)
@@ -263,9 +263,8 @@
         bound = new Bound(value, false);
       }
     } else {
-      if (constraint.getElement(2) instanceof Variable) {
-        logger.debug("Object is a variable, returning original");
-        // Is this right, surely the above should be not-instanceof !?
+      if (!(constraint.getElement(2) instanceof Variable)) {
+        logger.debug("Neither Subject nor Object are Variables, returning original");
         return constraint;
       } else {
         variable = (Variable) constraint.getElement(2);

Modified: trunk/src/jar/resolver-xsd/java/org/mulgara/resolver/xsd/IntervalTransformationUnitTest.java
===================================================================
--- trunk/src/jar/resolver-xsd/java/org/mulgara/resolver/xsd/IntervalTransformationUnitTest.java	2008-12-03 09:26:04 UTC (rev 1396)
+++ trunk/src/jar/resolver-xsd/java/org/mulgara/resolver/xsd/IntervalTransformationUnitTest.java	2008-12-03 09:26:08 UTC (rev 1397)
@@ -132,6 +132,8 @@
     suite.addTest(new IntervalTransformationUnitTest("test5Transform"));
     suite.addTest(new IntervalTransformationUnitTest("test6IgnoreNonXSD"));
     suite.addTest(new IntervalTransformationUnitTest("test7PreserveNonXSD"));
+    suite.addTest(new IntervalTransformationUnitTest("test8IgnoreNoVars"));
+    suite.addTest(new IntervalTransformationUnitTest("test9IgnoreAllVars"));
 
     return suite;
   }
@@ -305,4 +307,24 @@
       )
     );
   }
+
+  /**
+   * Test #8 for the {@link IntervalTransformation#transform} method.
+   *
+   * This checks that constraints with no variables will not be transformed.
+   */
+  public void test8IgnoreNoVars() throws Exception {
+    ConstraintImpl ci = new ConstraintImpl(new LiteralImpl(2), lessThan, new LiteralImpl(3), xsdModel);
+    assertSame(ci, intervalTransformation.transformExpression(context, ci));
+  }
+
+  /**
+   * Test #9 for the {@link IntervalTransformation#transform} method.
+   *
+   * This checks that constraints with variables in both subj and obj will not be transformed.
+   */
+  public void test9IgnoreAllVars() throws Exception {
+    ConstraintImpl ci = new ConstraintImpl(new Variable("x"), lessThan, new Variable("y"), xsdModel);
+    assertSame(ci, intervalTransformation.transformExpression(context, ci));
+  }
 }




More information about the Mulgara-svn mailing list