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/09/17 21:43:45 UTC

[isis] branch master updated: ISIS-2871: fixes demo adoc java source inlining

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 42ee7d4  ISIS-2871: fixes demo adoc java source inlining
42ee7d4 is described below

commit 42ee7d40803c41a77c09f248ae3d59cb6be16365
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Sep 17 23:43:34 2021 +0200

    ISIS-2871: fixes demo adoc java source inlining
---
 .../object/title/parser/TitleFacetUsingValueFacet.java   | 16 +++++++++++-----
 .../core/metamodel/facets/object/value/ValueFacet.java   |  2 +-
 .../facets/object/value/ValueFacetAbstract.java          |  5 ++---
 .../AsciiDocValueSemanticsWithPreprocessing.java         |  1 +
 4 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/parser/TitleFacetUsingValueFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/parser/TitleFacetUsingValueFacet.java
index 7f74e9e..95ea3b5 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/parser/TitleFacetUsingValueFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/parser/TitleFacetUsingValueFacet.java
@@ -62,21 +62,27 @@ implements TitleFacet {
         // what property, collection, action return or action param this is to be rendered for ...
 
         if(renderRequest.getFeature() instanceof OneToOneAssociation) {
+            final var prop = (OneToOneAssociation)renderRequest.getFeature();
+            final var featureId = prop.getFeatureIdentifier();
             final Renderer renderer = valueFacet
-                    .selectRendererForPropertyElseFallback((OneToOneAssociation)renderRequest.getFeature());
-            return renderer.presentationValue(valueFacet.createValueSemanticsContext(), pojo);
+                    .selectRendererForPropertyElseFallback(prop);
+            return renderer.presentationValue(valueFacet.createValueSemanticsContext(featureId), pojo);
         }
         if(renderRequest.getFeature() instanceof ObjectActionParameter) {
+            final var param = (ObjectActionParameter)renderRequest.getFeature();
+            final var featureId = param.getFeatureIdentifier();
             final Renderer renderer = valueFacet
-                    .selectRendererForParameterElseFallback((ObjectActionParameter)renderRequest.getFeature());
-            return renderer.presentationValue(valueFacet.createValueSemanticsContext(), pojo);
+                    .selectRendererForParameterElseFallback(param);
+            return renderer.presentationValue(valueFacet.createValueSemanticsContext(featureId), pojo);
         }
 
         // fall back to default value semantics ...
 
+        final var featureId = getFacetHolder().getFeatureIdentifier();
+
         return valueFacet.selectDefaultRenderer()
         .map(renderer->(Renderer) renderer)
-        .map(renderer->renderer.presentationValue(valueFacet.createValueSemanticsContext(), pojo))
+        .map(renderer->renderer.presentationValue(valueFacet.createValueSemanticsContext(featureId), pojo))
         .orElseGet(()->String.format("Value type %s has no value semantics for title rendering.",
                 renderRequest.getObject().getSpecification().getCorrespondingClass()));
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/ValueFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/ValueFacet.java
index da53afd..e6d6205 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/ValueFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/ValueFacet.java
@@ -44,7 +44,7 @@ public interface ValueFacet<T> extends Facet {
 
     LogicalType getValueType();
     Can<ValueSemanticsProvider<T>> getValueSemantics();
-    Context createValueSemanticsContext();
+    Context createValueSemanticsContext(Identifier featureIdentifier);
 
     // -- PARSER
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/ValueFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/ValueFacetAbstract.java
index 086638c..1d25f88 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/ValueFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/ValueFacetAbstract.java
@@ -38,7 +38,6 @@ import org.apache.isis.commons.internal.reflection._Annotations;
 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.facetapi.FacetHolderAbstract;
 import org.apache.isis.core.metamodel.facets.objectvalue.valuesemantics.ValueSemanticsSelectingFacet;
 import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
 import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
@@ -84,13 +83,13 @@ implements ValueFacet<T> {
     }
 
     @Override
-    public ValueSemanticsProvider.Context createValueSemanticsContext() {
+    public ValueSemanticsProvider.Context createValueSemanticsContext(final Identifier featureIdentifier) {
         final var iaProvider = super.getInteractionProvider();
         if(iaProvider==null) {
             return null; // JUnit context
         }
         return ValueSemanticsProvider.Context.of(
-                ((FacetHolderAbstract)getFacetHolder()).getFeatureIdentifier(),
+                featureIdentifier,
                 iaProvider.currentInteractionContext().orElse(null));
     }
 
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/_infra/resources/AsciiDocValueSemanticsWithPreprocessing.java b/examples/demo/domain/src/main/java/demoapp/dom/_infra/resources/AsciiDocValueSemanticsWithPreprocessing.java
index 4134fda..3b924ba 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/_infra/resources/AsciiDocValueSemanticsWithPreprocessing.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/_infra/resources/AsciiDocValueSemanticsWithPreprocessing.java
@@ -20,6 +20,7 @@ extends AsciiDocValueSemantics {
 
     @Override
     public String presentationValue(final ValueSemanticsProvider.Context context, final AsciiDoc adoc) {
+
         return render(adoc, plainAdoc->
             asciiDocConverterService
             .adocToHtml(