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) {