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/06/29 12:55:10 UTC
[isis] branch master updated: ISIS-2780: fixes friendly name
resolution for ValidityContexts
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 de2d845 ISIS-2780: fixes friendly name resolution for ValidityContexts
de2d845 is described below
commit de2d84521ebdfea0f5b21fbb10784e3d060fae4e
Author: andi-huber <ah...@apache.org>
AuthorDate: Tue Jun 29 14:54:56 2021 +0200
ISIS-2780: fixes friendly name resolution for ValidityContexts
---
.../objectvalue/mandatory/MandatoryFacetAbstract.java | 16 +++++++---------
.../metamodel/interactions/ActionArgValidityContext.java | 2 +-
.../metamodel/interactions/ActionValidityContext.java | 6 +++++-
.../metamodel/interactions/ObjectValidityContext.java | 5 ++++-
.../core/metamodel/interactions/ParseValueContext.java | 2 +-
.../metamodel/interactions/PropertyModifyContext.java | 10 ++++++++--
.../core/metamodel/interactions/ValidityContext.java | 8 ++++++++
.../specloader/specimpl/OneToOneAssociationDefault.java | 5 ++++-
8 files changed, 38 insertions(+), 16 deletions(-)
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/mandatory/MandatoryFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/mandatory/MandatoryFacetAbstract.java
index b2ddc2d..eb1b58c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/mandatory/MandatoryFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/mandatory/MandatoryFacetAbstract.java
@@ -19,13 +19,14 @@
package org.apache.isis.core.metamodel.facets.objectvalue.mandatory;
+import java.util.Optional;
import java.util.function.BiConsumer;
+import java.util.function.Supplier;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.all.named.MemberNamedFacet;
import org.apache.isis.core.metamodel.interactions.ActionArgValidityContext;
import org.apache.isis.core.metamodel.interactions.PropertyModifyContext;
import org.apache.isis.core.metamodel.interactions.ProposedHolder;
@@ -99,14 +100,11 @@ implements MandatoryFacet {
return null;
}
- return getFacetHolder()
- .lookupFacet(MemberNamedFacet.class)
- .map(MemberNamedFacet::getSpecialization)
- .map(specialization->specialization
- .fold(textFacet->textFacet.translated(),
- textFacet->textFacet.textElseNull(context.getHead().getTarget())))
- .map(named->"'" + named + "' is mandatory")
- .orElse("Mandatory");
+ return Optional.ofNullable(context.getFriendlyNameProvider())
+ .map(Supplier::get)
+ .filter(_Strings::isNotEmpty)
+ .map(named->"'" + named + "' is mandatory")
+ .orElse("Mandatory");
}
@Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ActionArgValidityContext.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ActionArgValidityContext.java
index b9c7843..df4ba46 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ActionArgValidityContext.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ActionArgValidityContext.java
@@ -54,9 +54,9 @@ implements ProposedHolder, ActionInteractionContext {
super(InteractionContextType.ACTION_PROPOSED_ARGUMENT,
head,
id,
+ ()->objectAction.getParameters().getElseFail(position).getFriendlyName(()->head.getTarget()),
interactionInitiatedBy);
this.objectAction = objectAction;
-
this.args = args;
this.position = position;
this.proposed = args.getElseFail(position);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ActionValidityContext.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ActionValidityContext.java
index 0b9d8ea..5c72270 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ActionValidityContext.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ActionValidityContext.java
@@ -48,7 +48,11 @@ implements ActionInteractionContext {
final Can<ManagedObject> args,
final InteractionInitiatedBy interactionInitiatedBy) {
- super(InteractionContextType.ACTION_INVOKE, head, id, interactionInitiatedBy);
+ super(InteractionContextType.ACTION_INVOKE,
+ head,
+ id,
+ ()->objectAction.getFriendlyName(()->head.getTarget()),
+ interactionInitiatedBy);
this.objectAction = objectAction;
this.args = args;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ObjectValidityContext.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ObjectValidityContext.java
index a7524da..439742a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ObjectValidityContext.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ObjectValidityContext.java
@@ -40,7 +40,10 @@ implements ProposedHolder {
final InteractionInitiatedBy interactionInitiatedBy) {
super(InteractionContextType.OBJECT_VALIDATE,
- InteractionHead.regular(targetAdapter), identifier, interactionInitiatedBy);
+ InteractionHead.regular(targetAdapter),
+ identifier,
+ ()->targetAdapter.getSpecification().getSingularName(),
+ interactionInitiatedBy);
}
@Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ParseValueContext.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ParseValueContext.java
index 7202a8e..a81d2e2 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ParseValueContext.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ParseValueContext.java
@@ -42,7 +42,7 @@ implements ProposedHolder {
final ManagedObject proposed,
final InteractionInitiatedBy interactionInitiatedBy) {
- super(InteractionContextType.PARSE_VALUE, head, identifier, interactionInitiatedBy);
+ super(InteractionContextType.PARSE_VALUE, head, identifier, /*friendlyNameProvider*/null, interactionInitiatedBy);
this.proposed = proposed;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/PropertyModifyContext.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/PropertyModifyContext.java
index 8934fc2..e9f3f1c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/PropertyModifyContext.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/PropertyModifyContext.java
@@ -19,6 +19,8 @@
package org.apache.isis.core.metamodel.interactions;
+import java.util.function.Supplier;
+
import org.apache.isis.applib.Identifier;
import org.apache.isis.applib.services.wrapper.events.PropertyModifyEvent;
import org.apache.isis.core.metamodel.consent.InteractionContextType;
@@ -40,9 +42,13 @@ implements ProposedHolder {
final InteractionHead head,
final Identifier id,
final ManagedObject proposed,
+ final Supplier<String> friendlyMemberNameProvider,
final InteractionInitiatedBy interactionInitiatedBy) {
- super(InteractionContextType.PROPERTY_MODIFY, head, id, interactionInitiatedBy);
-
+ super(InteractionContextType.PROPERTY_MODIFY,
+ head,
+ id,
+ friendlyMemberNameProvider,
+ interactionInitiatedBy);
this.proposed = proposed;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ValidityContext.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ValidityContext.java
index 86d9e56..f3eb7d1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ValidityContext.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ValidityContext.java
@@ -19,12 +19,16 @@
package org.apache.isis.core.metamodel.interactions;
+import java.util.function.Supplier;
+
import org.apache.isis.applib.Identifier;
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.applib.services.wrapper.events.ValidityEvent;
import org.apache.isis.core.metamodel.consent.InteractionContextType;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
+import lombok.Getter;
+
/**
* See {@link InteractionContext} for overview; analogous to
* {@link ValidityEvent}
@@ -33,12 +37,16 @@ public abstract class ValidityContext
extends InteractionContext
implements InteractionEventSupplier<ValidityEvent> {
+ @Getter private final Supplier<String> friendlyNameProvider;
+
public ValidityContext(
final InteractionContextType interactionType,
final InteractionHead head,
final Identifier identifier,
+ final Supplier<String> friendlyNameProvider,
final InteractionInitiatedBy invocationMethod) {
super(interactionType, invocationMethod, identifier, head, Where.NOT_SPECIFIED);
+ this.friendlyNameProvider = friendlyNameProvider;
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationDefault.java
index 0c133a7..16e4178 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationDefault.java
@@ -125,7 +125,10 @@ implements OneToOneAssociation {
final ManagedObject proposedToReferenceAdapter,
final InteractionInitiatedBy interactionInitiatedBy) {
return new PropertyModifyContext(
- headFor(ownerAdapter), getFeatureIdentifier(), proposedToReferenceAdapter,
+ headFor(ownerAdapter),
+ getFeatureIdentifier(),
+ proposedToReferenceAdapter,
+ ()->getFriendlyName(()->headFor(ownerAdapter).getTarget()),
interactionInitiatedBy);
}