Merge pull request #653 from afs/shacl-target-test

JENA-1797: Test for instance of subclass of implicit target
diff --git a/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/params/StoreParams.java b/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/params/StoreParams.java
index b2a851a..d62d8dd 100644
--- a/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/params/StoreParams.java
+++ b/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/params/StoreParams.java
@@ -30,10 +30,10 @@
  * and some parameters can only be changed at the point the database is
  * created.
  * <p>
- * Getting paramters settings wrong can destroy a databse.
+ * Getting parameters settings wrong can destroy a databse.
  * Alternating the block size is not encouraged and should only be
  * done if necessary.  It can silently destroy a database if set
- * to a different value than thatused to create the database.  The
+ * to a different value than that used to create the database.  The
  * default value of 8Kbytes is good for almost use.
  *
  * @see StoreParamsBuilder  for constructing StoreParams
diff --git a/jena-shacl/src/main/java/org/apache/jena/shacl/validation/ValidationProc.java b/jena-shacl/src/main/java/org/apache/jena/shacl/validation/ValidationProc.java
index 12e1027..7c862fe 100644
--- a/jena-shacl/src/main/java/org/apache/jena/shacl/validation/ValidationProc.java
+++ b/jena-shacl/src/main/java/org/apache/jena/shacl/validation/ValidationProc.java
@@ -35,9 +35,7 @@
 import org.apache.jena.shacl.parser.PropertyShape;
 import org.apache.jena.shacl.parser.Shape;
 import org.apache.jena.sparql.path.Path;
-import org.apache.jena.vocabulary.RDF;
 
-import static org.apache.jena.shacl.lib.G.hasType;
 import static org.apache.jena.shacl.lib.G.isOfType;
 
 public class ValidationProc {
@@ -273,16 +271,14 @@
         Node targetObj = target.getObject();
         switch(target.getTargetType()) {
             case targetClass:
-                return G.listPO(data, RDF.Nodes.type, targetObj);
+            case implicitClass:
+                return G.listAllNodesOfType(data, targetObj);
             case targetNode:
                 return Collections.singletonList(targetObj);
             case targetObjectsOf:
                 return G.setSP(data, null, targetObj);
             case targetSubjectsOf:
                 return G.setPO(data, targetObj, null);
-            case implicitClass:
-                // Instances of the class and its subtypes.
-                return G.listAllNodesOfType(data, targetObj);
             default:
                 return Collections.emptyList();
         }
@@ -298,15 +294,14 @@
         Node targetObject = target.getObject();
         switch (target.getTargetType()) {
             case targetClass:
-                return hasType(data, node, targetObject);
+            case implicitClass:
+                return isOfType(data, node, targetObject);
             case targetNode:
                 return targetObject.equals(node);
             case targetObjectsOf:
                 return data.contains(null, targetObject, node);
             case targetSubjectsOf:
                 return data.contains(node, targetObject, null);
-            case implicitClass:
-                return isOfType(data, node, targetObject);
             default:
                 return false;
         }