You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2021/04/15 11:09:57 UTC

[isis] branch master updated: ISIS-2569: revert wrong logic fro prev commit;

This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/master by this push:
     new 47b2aab  ISIS-2569: revert wrong logic fro prev commit;
47b2aab is described below

commit 47b2aab420b9368f63ba1ae09e52382e831cca04
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Apr 15 13:09:21 2021 +0200

    ISIS-2569: revert wrong logic fro prev commit;
    
    also fixes invalid usage of SpecLoader here
---
 .../MetaModelVisitingValidatorForFromClause.java      | 19 +++++++++----------
 .../MetaModelVisitingValidatorForVariablesClause.java | 14 ++++++++++----
 2 files changed, 19 insertions(+), 14 deletions(-)

diff --git a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/query/MetaModelVisitingValidatorForFromClause.java b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/query/MetaModelVisitingValidatorForFromClause.java
index 21f1ab8..34598c6 100644
--- a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/query/MetaModelVisitingValidatorForFromClause.java
+++ b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/query/MetaModelVisitingValidatorForFromClause.java
@@ -43,29 +43,28 @@ extends MetaModelVisitingValidatorForClauseAbstract {
 
     @Override
     void postInterpretJdoql(
-            final String typeNameFromClause,
+            final String classNameFromClause, // actually class not logical type!
             final ObjectSpecification objectSpec,
             final String query) {
 
-        val logicalType = objectSpec.getLogicalType();
-        
-        if (Objects.equals(typeNameFromClause, logicalType.getLogicalTypeName())) {
+        val className = objectSpec.getCorrespondingClass().getName();
+        if (Objects.equals(classNameFromClause, className)) {
             return;
         }
 
         val fromSpecResult = Result.of(()->getSpecificationLoader()
-                    .specForType(_Context.loadClass(typeNameFromClause))
+                    .specForType(_Context.loadClass(classNameFromClause))
                     .orElse(null));
                 
         if(fromSpecResult.isFailure() 
                 || !fromSpecResult.getValue().isPresent()) {
             ValidationFailure.raise(
                     objectSpec.getSpecificationLoader(),
-                    Identifier.classIdentifier(logicalType),
+                    Identifier.classIdentifier(objectSpec.getLogicalType()),
                     String.format(
                             "%s: error in JDOQL query, "
                             + "logical type name after '%s' clause could not be loaded (JDOQL : %s)",
-                            objectSpec.getCorrespondingClass().getName(), 
+                            className, 
                             clause, 
                             query)
                     );
@@ -80,12 +79,12 @@ extends MetaModelVisitingValidatorForClauseAbstract {
         
         ValidationFailure.raise(
                 objectSpec.getSpecificationLoader(),
-                Identifier.classIdentifier(logicalType),
+                Identifier.classIdentifier(objectSpec.getLogicalType()),
                 String.format(
-                        "%s: error in JDOQL query, class name after '%s' "
+                        "%s: error in JDOQL query, type name after '%s' "
                         + "clause should be same as class name on which annotated, "
                         + "or one of its supertypes (JDOQL : %s)",
-                        objectSpec.getCorrespondingClass().getName(),
+                        className,
                         clause, 
                         query)
                 );
diff --git a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/query/MetaModelVisitingValidatorForVariablesClause.java b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/query/MetaModelVisitingValidatorForVariablesClause.java
index 95d627e..b75d7c0 100644
--- a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/query/MetaModelVisitingValidatorForVariablesClause.java
+++ b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/query/MetaModelVisitingValidatorForVariablesClause.java
@@ -20,6 +20,8 @@ package org.apache.isis.persistence.jdo.metamodel.facets.object.query;
 
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.id.LogicalType;
+import org.apache.isis.commons.functional.Result;
+import org.apache.isis.commons.internal.context._Context;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.specloader.validator.ValidationFailure;
 import org.apache.isis.persistence.jdo.provider.metamodel.facets.object.persistencecapable.JdoPersistenceCapableFacet;
@@ -40,13 +42,17 @@ extends MetaModelVisitingValidatorForClauseAbstract {
 
     @Override
     void postInterpretJdoql(
-            final String typeNameFromClause,
+            final String classNameFromClause, // actually class not logical type!
             final ObjectSpecification objectSpec,
             final String query) {
 
-        final JdoPersistenceCapableFacet persistenceCapableFacet = getSpecificationLoader()
-                .specForLogicalTypeName(typeNameFromClause)
-                .map(spec->spec.getFacet(JdoPersistenceCapableFacet.class))
+        final JdoPersistenceCapableFacet persistenceCapableFacet = Result.of(
+                ()->getSpecificationLoader()
+                    .specForType(_Context.loadClass(classNameFromClause))
+                    .map(spec->spec.getFacet(JdoPersistenceCapableFacet.class))
+                    .orElse(null)
+                )
+                .getValue()
                 .orElse(null);
 
         if(persistenceCapableFacet == null) {