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/18 14:30:50 UTC
[isis] branch master updated: ISIS-2871: prepare: value semantics
should allow to compose rendering by mapping to existing value-types
(experimental)
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 c616066 ISIS-2871: prepare: value semantics should allow to compose rendering by mapping to existing value-types (experimental)
c616066 is described below
commit c616066777136307ab376edc5cde06c8388d7acb
Author: andi-huber <ah...@apache.org>
AuthorDate: Sat Sep 18 16:30:37 2021 +0200
ISIS-2871: prepare: value semantics should allow to compose rendering by
mapping to existing value-types (experimental)
---
.../apache/isis/applib/adapters/HtmlRenderer.java | 27 ---------------
.../org/apache/isis/applib/adapters/Renderer.java | 12 +++++--
.../java/org/apache/isis/applib/value/Markup.java | 5 +++
.../title/parser/TitleFacetUsingValueFacet.java | 6 ++--
.../facets/object/value/ValueFacetAbstract.java | 2 +-
.../ValueSemanticsProviderAndFacetAbstract.java | 4 +--
.../valuesemantics/BigDecimalValueSemantics.java | 2 +-
.../valuesemantics/BigIntegerValueSemantics.java | 2 +-
.../valuesemantics/BlobValueSemantics.java | 2 +-
.../valuesemantics/BooleanValueSemantics.java | 2 +-
.../valuesemantics/ByteValueSemantics.java | 2 +-
.../valuesemantics/ClobValueSemantics.java | 2 +-
.../valuesemantics/IntValueSemantics.java | 2 +-
.../LocalResourcePathValueSemantics.java | 2 +-
.../valuesemantics/LongValueSemantics.java | 2 +-
.../valuesemantics/MarkupValueSemantics.java | 6 ++--
.../valuesemantics/PasswordValueSemantics.java | 2 +-
.../valuesemantics/ShortValueSemantics.java | 2 +-
.../valuesemantics/StringValueSemantics.java | 2 +-
.../valuesemantics/TreeNodeValueSemantics.java | 2 +-
.../valuesemantics/URLValueSemantics.java | 2 +-
.../valuesemantics/UUIDValueSemantics.java | 2 +-
.../value/CharacterValueSemanticsProviderTest.java | 2 +-
.../value/DoubleValueSemanticsProviderTest.java | 4 +--
.../value/FloatValueSemanticsProviderTest.java | 2 +-
.../JavaSqlDateValueSemanticsProviderTest.java | 2 +-
.../JavaUtilDateValueSemanticsProviderTest.java | 2 +-
.../ValueSemanticsProviderAbstractTestCase.java | 6 ++--
.../_infra/resources/AsciiDocReaderService.java | 39 ----------------------
.../AsciiDocValueSemanticsWithPreprocessing.java | 2 +-
.../jdo/ComplexNumberJdoValueSemantics.java | 2 +-
.../jpa/ComplexNumberJpaValueSemantics.java | 2 +-
.../ui/components/markup/MarkupFieldFactory.java | 32 +++++++++---------
.../semantics/AsciiDocValueSemantics.java | 12 +++++--
.../semantics/XmlValueSemanticsAbstract.java | 5 ++-
.../semantics/MarkdownValueSemantics.java | 12 +++++--
36 files changed, 87 insertions(+), 129 deletions(-)
diff --git a/api/applib/src/main/java/org/apache/isis/applib/adapters/HtmlRenderer.java b/api/applib/src/main/java/org/apache/isis/applib/adapters/HtmlRenderer.java
deleted file mode 100644
index afa72e0..0000000
--- a/api/applib/src/main/java/org/apache/isis/applib/adapters/HtmlRenderer.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.isis.applib.adapters;
-
-/**
- * Indicates the underlying {@link Renderer} produces plain HTML.
- * @since 2.x {@index}
- */
-public interface HtmlRenderer<T> extends Renderer<T> {
-
-}
diff --git a/api/applib/src/main/java/org/apache/isis/applib/adapters/Renderer.java b/api/applib/src/main/java/org/apache/isis/applib/adapters/Renderer.java
index e865c6bf..e966c6b 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/adapters/Renderer.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/adapters/Renderer.java
@@ -24,8 +24,16 @@ package org.apache.isis.applib.adapters;
public interface Renderer<T> {
/**
- * The value in its read-only presentation form. (irreversible)
+ * The value in its read-only summarizing text presentation form. (irreversible)
*/
- String presentationValue(ValueSemanticsProvider.Context context, T value);
+ String simpleTextRepresentation(ValueSemanticsProvider.Context context, T value);
+
+ /**
+ * The value as read-only presentation form. (irreversible)
+ * @apiNote defaulting to the {@link String} type.
+ */
+ default Object presentationValue(final ValueSemanticsProvider.Context context, final T value) {
+ return simpleTextRepresentation(context, value);
+ }
}
diff --git a/api/applib/src/main/java/org/apache/isis/applib/value/Markup.java b/api/applib/src/main/java/org/apache/isis/applib/value/Markup.java
index ad1a57e..40e2aef 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/value/Markup.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/value/Markup.java
@@ -61,6 +61,11 @@ public final class Markup implements Serializable {
return html;
}
+ @Override
+ public String toString() {
+ return "Markup[length="+html.length()+"]";
+ }
+
public static final class JaxbToStringAdapter extends XmlAdapter<String, Markup> {
/**
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 95ea3b5..eed9a84 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
@@ -66,14 +66,14 @@ implements TitleFacet {
final var featureId = prop.getFeatureIdentifier();
final Renderer renderer = valueFacet
.selectRendererForPropertyElseFallback(prop);
- return renderer.presentationValue(valueFacet.createValueSemanticsContext(featureId), pojo);
+ return renderer.simpleTextRepresentation(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(param);
- return renderer.presentationValue(valueFacet.createValueSemanticsContext(featureId), pojo);
+ return renderer.simpleTextRepresentation(valueFacet.createValueSemanticsContext(featureId), pojo);
}
// fall back to default value semantics ...
@@ -82,7 +82,7 @@ implements TitleFacet {
return valueFacet.selectDefaultRenderer()
.map(renderer->(Renderer) renderer)
- .map(renderer->renderer.presentationValue(valueFacet.createValueSemanticsContext(featureId), pojo))
+ .map(renderer->renderer.simpleTextRepresentation(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/ValueFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/ValueFacetAbstract.java
index 1d25f88..011953e 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
@@ -212,7 +212,7 @@ implements ValueFacet<T> {
private final String message;
@Override
- public String presentationValue(final Context context, final T value) {
+ public String simpleTextRepresentation(final Context context, final T value) {
return message;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/vsp/ValueSemanticsProviderAndFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/vsp/ValueSemanticsProviderAndFacetAbstract.java
index 9ecb561..5e8f70e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/vsp/ValueSemanticsProviderAndFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/vsp/ValueSemanticsProviderAndFacetAbstract.java
@@ -190,7 +190,7 @@ implements
}
@Override
- public String presentationValue(final ValueSemanticsProvider.Context context, final T object) {
+ public String simpleTextRepresentation(final ValueSemanticsProvider.Context context, final T object) {
if (object == null) {
return "";
}
@@ -202,7 +202,7 @@ implements
*/
@Override
public String parseableTextRepresentation(final ValueSemanticsProvider.Context context, final T existing) {
- return presentationValue(context, existing);
+ return simpleTextRepresentation(context, existing);
}
protected String titleString(final Format formatter, final T object) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/BigDecimalValueSemantics.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/BigDecimalValueSemantics.java
index 2ffc291..9e885fc 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/BigDecimalValueSemantics.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/BigDecimalValueSemantics.java
@@ -66,7 +66,7 @@ implements
// -- RENDERER
@Override
- public String presentationValue(final ValueSemanticsProvider.Context context, final BigDecimal value) {
+ public String simpleTextRepresentation(final ValueSemanticsProvider.Context context, final BigDecimal value) {
return render(value, getNumberFormat(context)::format);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/BigIntegerValueSemantics.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/BigIntegerValueSemantics.java
index 860cbff..7ce631c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/BigIntegerValueSemantics.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/BigIntegerValueSemantics.java
@@ -60,7 +60,7 @@ implements
// -- RENDERER
@Override
- public String presentationValue(final Context context, final BigInteger value) {
+ public String simpleTextRepresentation(final Context context, final BigInteger value) {
return render(value, getNumberFormat(context)::format);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/BlobValueSemantics.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/BlobValueSemantics.java
index 736c1c2..ec5e52e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/BlobValueSemantics.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/BlobValueSemantics.java
@@ -46,7 +46,7 @@ implements
// RENDERER
@Override
- public String presentationValue(final ValueSemanticsProvider.Context context, final Blob value) {
+ public String simpleTextRepresentation(final ValueSemanticsProvider.Context context, final Blob value) {
return render(value, Blob::getName);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/BooleanValueSemantics.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/BooleanValueSemantics.java
index 9c0a73a..5e2e7b7 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/BooleanValueSemantics.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/BooleanValueSemantics.java
@@ -91,7 +91,7 @@ implements
// -- RENDERER
@Override
- public String presentationValue(final ValueSemanticsProvider.Context context, final Boolean value) {
+ public String simpleTextRepresentation(final ValueSemanticsProvider.Context context, final Boolean value) {
return render(value, v->v.booleanValue() ? "True" : "False");
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/ByteValueSemantics.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/ByteValueSemantics.java
index fd6ef7c..3bda1fb 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/ByteValueSemantics.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/ByteValueSemantics.java
@@ -63,7 +63,7 @@ implements
// -- RENDERER
@Override
- public String presentationValue(final Context context, final Byte value) {
+ public String simpleTextRepresentation(final Context context, final Byte value) {
return render(value, getNumberFormat(context)::format);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/ClobValueSemantics.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/ClobValueSemantics.java
index 0620c99..f9262ac 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/ClobValueSemantics.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/ClobValueSemantics.java
@@ -41,7 +41,7 @@ implements
// RENDERER
@Override
- public String presentationValue(final ValueSemanticsProvider.Context context, final Clob value) {
+ public String simpleTextRepresentation(final ValueSemanticsProvider.Context context, final Clob value) {
return render(value, Clob::getName);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/IntValueSemantics.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/IntValueSemantics.java
index c440a31..a4dc8cd 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/IntValueSemantics.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/IntValueSemantics.java
@@ -63,7 +63,7 @@ implements
// -- RENDERER
@Override
- public String presentationValue(final Context context, final Integer value) {
+ public String simpleTextRepresentation(final Context context, final Integer value) {
return render(value, getNumberFormat(context)::format);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/LocalResourcePathValueSemantics.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/LocalResourcePathValueSemantics.java
index d57fae4..25c2ffd 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/LocalResourcePathValueSemantics.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/LocalResourcePathValueSemantics.java
@@ -64,7 +64,7 @@ implements
// -- RENDERER
@Override
- public String presentationValue(final Context context, final LocalResourcePath value) {
+ public String simpleTextRepresentation(final Context context, final LocalResourcePath value) {
return render(value, LocalResourcePath::getValue);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/LongValueSemantics.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/LongValueSemantics.java
index 2f1eb10..15e9dca 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/LongValueSemantics.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/LongValueSemantics.java
@@ -63,7 +63,7 @@ implements
// -- RENDERER
@Override
- public String presentationValue(final Context context, final Long value) {
+ public String simpleTextRepresentation(final Context context, final Long value) {
return render(value, getNumberFormat(context)::format);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/MarkupValueSemantics.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/MarkupValueSemantics.java
index 6af8f7a..c5dc211 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/MarkupValueSemantics.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/MarkupValueSemantics.java
@@ -24,8 +24,8 @@ import org.springframework.stereotype.Component;
import org.apache.isis.applib.adapters.AbstractValueSemanticsProvider;
import org.apache.isis.applib.adapters.EncoderDecoder;
-import org.apache.isis.applib.adapters.HtmlRenderer;
import org.apache.isis.applib.adapters.Parser;
+import org.apache.isis.applib.adapters.Renderer;
import org.apache.isis.applib.adapters.ValueSemanticsProvider;
import org.apache.isis.applib.value.Markup;
@@ -36,7 +36,7 @@ extends AbstractValueSemanticsProvider<Markup>
implements
EncoderDecoder<Markup>,
Parser<Markup>,
- HtmlRenderer<Markup>{
+ Renderer<Markup>{
// -- ENCODER DECODER
@@ -59,7 +59,7 @@ implements
// -- RENDERER
@Override
- public String presentationValue(final ValueSemanticsProvider.Context context, final Markup value) {
+ public String simpleTextRepresentation(final ValueSemanticsProvider.Context context, final Markup value) {
return value != null? value.asHtml(): "[null]";
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/PasswordValueSemantics.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/PasswordValueSemantics.java
index 1ee9342..17608de 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/PasswordValueSemantics.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/PasswordValueSemantics.java
@@ -59,7 +59,7 @@ implements
// -- RENDERER
@Override
- public String presentationValue(final Context context, final Password value) {
+ public String simpleTextRepresentation(final Context context, final Password value) {
return render(value, v->"*");
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/ShortValueSemantics.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/ShortValueSemantics.java
index 542daf4..14540b6 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/ShortValueSemantics.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/ShortValueSemantics.java
@@ -63,7 +63,7 @@ implements
// -- RENDERER
@Override
- public String presentationValue(final Context context, final Short value) {
+ public String simpleTextRepresentation(final Context context, final Short value) {
return render(value, getNumberFormat(context)::format);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/StringValueSemantics.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/StringValueSemantics.java
index 5dffefa..34c13d0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/StringValueSemantics.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/StringValueSemantics.java
@@ -51,7 +51,7 @@ implements
// -- RENDERER
@Override
- public String presentationValue(final Context context, final String value) {
+ public String simpleTextRepresentation(final Context context, final String value) {
return value == null ? "" : value;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/TreeNodeValueSemantics.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/TreeNodeValueSemantics.java
index 2635a0d..a834948 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/TreeNodeValueSemantics.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/TreeNodeValueSemantics.java
@@ -47,7 +47,7 @@ implements
// -- RENDERER
@Override
- public String presentationValue(final Context context, final TreeNode<?> value) {
+ public String simpleTextRepresentation(final Context context, final TreeNode<?> value) {
return super.render(value, TreeNode::toString);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/URLValueSemantics.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/URLValueSemantics.java
index 7dbb3ad..d0dcc46 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/URLValueSemantics.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/URLValueSemantics.java
@@ -62,7 +62,7 @@ implements
// -- RENDERER
@Override
- public String presentationValue(final ValueSemanticsProvider.Context context, final java.net.URL value) {
+ public String simpleTextRepresentation(final ValueSemanticsProvider.Context context, final java.net.URL value) {
return value != null ? value.toString(): "";
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/UUIDValueSemantics.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/UUIDValueSemantics.java
index 4f02d97..3e84a1e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/UUIDValueSemantics.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/UUIDValueSemantics.java
@@ -55,7 +55,7 @@ implements
// -- RENDERER
@Override
- public String presentationValue(final ValueSemanticsProvider.Context context, final UUID value) {
+ public String simpleTextRepresentation(final ValueSemanticsProvider.Context context, final UUID value) {
return value == null ? "" : value.toString();
}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/CharacterValueSemanticsProviderTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/CharacterValueSemanticsProviderTest.java
index 97ee221..ccde741 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/CharacterValueSemanticsProviderTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/CharacterValueSemanticsProviderTest.java
@@ -57,7 +57,7 @@ extends ValueSemanticsProviderAbstractTestCase {
@Test
public void testTitleOf() {
- assertEquals("r", value.presentationValue(null, character));
+ assertEquals("r", value.simpleTextRepresentation(null, character));
}
@Test
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/DoubleValueSemanticsProviderTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/DoubleValueSemanticsProviderTest.java
index 63a97d4..d15b703 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/DoubleValueSemanticsProviderTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/DoubleValueSemanticsProviderTest.java
@@ -49,7 +49,7 @@ extends ValueSemanticsProviderAbstractTestCase {
@Test
public void testValue() {
- assertEquals("32.5", getValue().presentationValue(null, doubleObj));
+ assertEquals("32.5", getValue().simpleTextRepresentation(null, doubleObj));
}
@Test
@@ -63,7 +63,7 @@ extends ValueSemanticsProviderAbstractTestCase {
@Test
public void testTitleOf() {
- assertEquals("35,000,000", getValue().presentationValue(null, Double.valueOf(35000000.0)));
+ assertEquals("35,000,000", getValue().simpleTextRepresentation(null, Double.valueOf(35000000.0)));
}
@Test
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/FloatValueSemanticsProviderTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/FloatValueSemanticsProviderTest.java
index ac6ee53..93c0496 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/FloatValueSemanticsProviderTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/FloatValueSemanticsProviderTest.java
@@ -59,7 +59,7 @@ extends ValueSemanticsProviderAbstractTestCase {
@Test
public void testTitleOf() {
- assertEquals("32.5", value.presentationValue(null, float1));
+ assertEquals("32.5", value.simpleTextRepresentation(null, float1));
}
@Test
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/JavaSqlDateValueSemanticsProviderTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/JavaSqlDateValueSemanticsProviderTest.java
index df8d8ef..d493fd4 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/JavaSqlDateValueSemanticsProviderTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/JavaSqlDateValueSemanticsProviderTest.java
@@ -62,7 +62,7 @@ public class JavaSqlDateValueSemanticsProviderTest extends ValueSemanticsProvide
@Test
public void testTitleOf() {
- assertEquals(DateFormat.getDateInstance(SimpleDateFormat.MEDIUM).format(new Date(0)), adapter.presentationValue(null, date));
+ assertEquals(DateFormat.getDateInstance(SimpleDateFormat.MEDIUM).format(new Date(0)), adapter.simpleTextRepresentation(null, date));
}
@Test
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/JavaUtilDateValueSemanticsProviderTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/JavaUtilDateValueSemanticsProviderTest.java
index f74e64b..162cb4e 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/JavaUtilDateValueSemanticsProviderTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/JavaUtilDateValueSemanticsProviderTest.java
@@ -72,7 +72,7 @@ extends ValueSemanticsProviderAbstractTestCase {
@Test
public void testTitleOf() {
final String EXPECTED = DateFormat.getDateTimeInstance(SimpleDateFormat.MEDIUM, SimpleDateFormat.SHORT).format(new java.util.Date(0));
- assertEquals(EXPECTED, getValue().presentationValue(null, date));
+ assertEquals(EXPECTED, getValue().simpleTextRepresentation(null, date));
}
@Test
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/ValueSemanticsProviderAbstractTestCase.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/ValueSemanticsProviderAbstractTestCase.java
index 859e1cc..cdbdc26 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/ValueSemanticsProviderAbstractTestCase.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/ValueSemanticsProviderAbstractTestCase.java
@@ -179,14 +179,14 @@ public abstract class ValueSemanticsProviderAbstractTestCase {
if(valueSemanticsProvider instanceof ValueSemanticsProviderAndFacetAbstract) {
assertEquals("",
((ValueSemanticsProviderAndFacetAbstract<?>)valueSemanticsProvider)
- .presentationValue(null, null));
+ .simpleTextRepresentation(null, null));
} else if(valueSemanticsProvider instanceof StringValueSemantics) {
// string representation has null-to-empty semantics
assertEquals("",
- valueSemanticsProvider.getRenderer().presentationValue(null, null));
+ valueSemanticsProvider.getRenderer().simpleTextRepresentation(null, null));
} else {
assertEquals(AbstractValueSemanticsProvider.NULL_REPRESENTATION,
- valueSemanticsProvider.getRenderer().presentationValue(null, null));
+ valueSemanticsProvider.getRenderer().simpleTextRepresentation(null, null));
}
}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/_infra/resources/AsciiDocReaderService.java b/examples/demo/domain/src/main/java/demoapp/dom/_infra/resources/AsciiDocReaderService.java
index b8f35d0..234e5ab 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/_infra/resources/AsciiDocReaderService.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/_infra/resources/AsciiDocReaderService.java
@@ -18,22 +18,18 @@
*/
package demoapp.dom._infra.resources;
-import java.util.stream.Collectors;
-
import javax.inject.Named;
import org.springframework.stereotype.Service;
import org.apache.isis.commons.internal.base._Refs;
import org.apache.isis.commons.internal.base._Refs.StringReference;
-import org.apache.isis.commons.internal.base._Text;
import org.apache.isis.core.config.IsisConfiguration;
import org.apache.isis.valuetypes.asciidoc.applib.value.AsciiDoc;
import lombok.RequiredArgsConstructor;
import lombok.val;
-
@Service
@Named("demo.AsciiDocReaderService")
@RequiredArgsConstructor
@@ -77,42 +73,7 @@ public class AsciiDocReaderService {
return AsciiDoc.valueOf(
adocRef
.update(this::replaceVersion)
- //.update(this::replaceJavaSourceReferences)
- //.update(adoc->prependSource(adoc, aClass))
.getValue());
}
- // -- EXPERIMENTAL ... works within IDE, but not when packaged
-
- private String replaceJavaSourceReferences(final String adoc) {
- return _Text.getLines(adoc)
- .stream()
- .map(line->line.startsWith("include::")
- && line.contains(".java")
- ? replaceJavaSourceReference(line)
- : line
- )
- .collect(Collectors.joining("\n"));
- }
-
- // "include::DemoHomePage.java" -> "include::{sourcedir}/DemoHomePage.java
- private String replaceJavaSourceReference(final String line) {
- val lineRef = _Refs.stringRef(line);
- lineRef.cutAtIndexOfAndDrop("::");
- val classFileSimpleName = lineRef.cutAtIndexOf(".java");
- val remainder = lineRef.getValue();
- return "include::{sourcedir}/" + classFileSimpleName + remainder;
- }
-
- // setting up the java source root relative to the current directory (application main)
- //XXX dependent on the location of the 'main' class within the file system,
- // if we ever want to improve on that, we should place a marker file on the project root,
- // so we can search up the folder hierarchy on dynamically figure out how many ../
- // actually are required
- private String prependSource(final String adoc, final Class<?> aClass) {
- val packagePath = aClass.getPackage().getName().replace('.', '/');
- return ":sourcedir: ../../domain/src/main/java/" + packagePath + "\n\n" + adoc;
- }
-
-
}
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 3b924ba..e6a6aef 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
@@ -19,7 +19,7 @@ extends AsciiDocValueSemantics {
@Inject AsciiDocConverterService asciiDocConverterService;
@Override
- public String presentationValue(final ValueSemanticsProvider.Context context, final AsciiDoc adoc) {
+ public String simpleTextRepresentation(final ValueSemanticsProvider.Context context, final AsciiDoc adoc) {
return render(adoc, plainAdoc->
asciiDocConverterService
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/other/embedded/jdo/ComplexNumberJdoValueSemantics.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/other/embedded/jdo/ComplexNumberJdoValueSemantics.java
index c699102..7f7d812 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/other/embedded/jdo/ComplexNumberJdoValueSemantics.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/other/embedded/jdo/ComplexNumberJdoValueSemantics.java
@@ -47,7 +47,7 @@ public class ComplexNumberJdoValueSemantics
// tag::getRenderer[]
return new Renderer<ComplexNumberJdo>() {
@Override
- public String presentationValue(final ValueSemanticsProvider.Context context, final ComplexNumberJdo object) {
+ public String simpleTextRepresentation(final ValueSemanticsProvider.Context context, final ComplexNumberJdo object) {
return object!=null ? object.title() : "NaN";
}
};
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/other/embedded/jpa/ComplexNumberJpaValueSemantics.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/other/embedded/jpa/ComplexNumberJpaValueSemantics.java
index e5c3360..affa2a2 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/other/embedded/jpa/ComplexNumberJpaValueSemantics.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/other/embedded/jpa/ComplexNumberJpaValueSemantics.java
@@ -49,7 +49,7 @@ public class ComplexNumberJpaValueSemantics
// tag::getRenderer[]
return new Renderer<ComplexNumberJpa>() {
@Override
- public String presentationValue(final ValueSemanticsProvider.Context context, final ComplexNumberJpa object) {
+ public String simpleTextRepresentation(final ValueSemanticsProvider.Context context, final ComplexNumberJpa object) {
return object!=null ? object.title() : "NaN";
}
};
diff --git a/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/components/markup/MarkupFieldFactory.java b/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/components/markup/MarkupFieldFactory.java
index f62bf3a8..a6855e2 100644
--- a/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/components/markup/MarkupFieldFactory.java
+++ b/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/components/markup/MarkupFieldFactory.java
@@ -26,16 +26,10 @@ import javax.inject.Inject;
import org.w3c.dom.events.EventTarget;
import org.w3c.dom.html.HTMLAnchorElement;
-import org.apache.isis.applib.adapters.HtmlRenderer;
import org.apache.isis.applib.annotation.PriorityPrecedence;
-import org.apache.isis.commons.internal.base._NullSafe;
import org.apache.isis.incubator.viewer.javafx.ui.components.UiComponentHandlerFx;
import org.apache.isis.viewer.common.model.components.UiComponentFactory.ComponentRequest;
-import lombok.RequiredArgsConstructor;
-import lombok.val;
-import lombok.extern.log4j.Log4j2;
-
import javafx.application.HostServices;
import javafx.application.Platform;
import javafx.collections.ListChangeListener;
@@ -46,6 +40,9 @@ import javafx.scene.Node;
import javafx.scene.layout.Region;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
+import lombok.RequiredArgsConstructor;
+import lombok.val;
+import lombok.extern.log4j.Log4j2;
import netscape.javascript.JSException;
@org.springframework.stereotype.Component
@@ -57,21 +54,24 @@ public class MarkupFieldFactory implements UiComponentHandlerFx {
@Override
public boolean isHandling(final ComponentRequest request) {
- return request.getFeatureTypeSpec().hasValueSemantics(HtmlRenderer.class);
+ //return request.getFeatureTypeSpec().hasValueSemantics(HtmlRenderer.class);
+ //TODO
+ return false;
}
@Override
public Node handle(final ComponentRequest request) {
- val pojo = request.getFeatureValue(Object.class);
-
- val markupHtml = request.getFeatureTypeSpec().streamValueSemantics(HtmlRenderer.class)
- .map(htmlRenderer->htmlRenderer.presentationValue(null, pojo))
- .filter(_NullSafe::isPresent)
- .findFirst()
- .orElse("");
-
- return new WebViewFitContent(hostServices::showDocument, markupHtml);
+// val pojo = request.getFeatureValue(Object.class);
+//
+// val markupHtml = request.getFeatureTypeSpec().streamValueSemantics(HtmlRenderer.class)
+// .map(htmlRenderer->htmlRenderer.simpleTextRepresentation(null, pojo))
+// .filter(_NullSafe::isPresent)
+// .findFirst()
+// .orElse("");
+//
+// return new WebViewFitContent(hostServices::showDocument, markupHtml);
+ return null;
}
// -- HELPER
diff --git a/valuetypes/asciidoc/metamodel/src/main/java/org/apache/isis/valuetypes/asciidoc/metamodel/semantics/AsciiDocValueSemantics.java b/valuetypes/asciidoc/metamodel/src/main/java/org/apache/isis/valuetypes/asciidoc/metamodel/semantics/AsciiDocValueSemantics.java
index 1f94cf6..4583b5f 100644
--- a/valuetypes/asciidoc/metamodel/src/main/java/org/apache/isis/valuetypes/asciidoc/metamodel/semantics/AsciiDocValueSemantics.java
+++ b/valuetypes/asciidoc/metamodel/src/main/java/org/apache/isis/valuetypes/asciidoc/metamodel/semantics/AsciiDocValueSemantics.java
@@ -23,9 +23,10 @@ import javax.inject.Named;
import org.springframework.stereotype.Component;
import org.apache.isis.applib.adapters.AbstractValueSemanticsProvider;
-import org.apache.isis.applib.adapters.HtmlRenderer;
import org.apache.isis.applib.adapters.Parser;
+import org.apache.isis.applib.adapters.Renderer;
import org.apache.isis.applib.adapters.ValueSemanticsProvider;
+import org.apache.isis.applib.value.Markup;
import org.apache.isis.valuetypes.asciidoc.applib.value.AsciiDoc;
@Component
@@ -33,16 +34,21 @@ import org.apache.isis.valuetypes.asciidoc.applib.value.AsciiDoc;
public class AsciiDocValueSemantics
extends AbstractValueSemanticsProvider<AsciiDoc>
implements
- HtmlRenderer<AsciiDoc>,
+ Renderer<AsciiDoc>,
Parser<AsciiDoc> {
// -- RENDERER
@Override
- public String presentationValue(final ValueSemanticsProvider.Context context, final AsciiDoc adoc) {
+ public String simpleTextRepresentation(final ValueSemanticsProvider.Context context, final AsciiDoc adoc) {
return render(adoc, AsciiDoc::asHtml);
}
+ @Override
+ public Markup presentationValue(final Context context, final AsciiDoc value) {
+ return Markup.valueOf(simpleTextRepresentation(context, value));
+ }
+
// -- PARSER
@Override
diff --git a/valuetypes/asciidoc/metamodel/src/main/java/org/apache/isis/valuetypes/asciidoc/metamodel/semantics/XmlValueSemanticsAbstract.java b/valuetypes/asciidoc/metamodel/src/main/java/org/apache/isis/valuetypes/asciidoc/metamodel/semantics/XmlValueSemanticsAbstract.java
index 8386c99..2aa8cbb 100644
--- a/valuetypes/asciidoc/metamodel/src/main/java/org/apache/isis/valuetypes/asciidoc/metamodel/semantics/XmlValueSemanticsAbstract.java
+++ b/valuetypes/asciidoc/metamodel/src/main/java/org/apache/isis/valuetypes/asciidoc/metamodel/semantics/XmlValueSemanticsAbstract.java
@@ -19,7 +19,6 @@
package org.apache.isis.valuetypes.asciidoc.metamodel.semantics;
import org.apache.isis.applib.adapters.AbstractValueSemanticsProvider;
-import org.apache.isis.applib.adapters.HtmlRenderer;
import org.apache.isis.applib.adapters.Renderer;
import org.apache.isis.applib.adapters.ValueSemanticsProvider;
import org.apache.isis.valuetypes.asciidoc.applib.value.AsciiDoc;
@@ -33,12 +32,12 @@ import lombok.NonNull;
abstract class XmlValueSemanticsAbstract<T>
extends AbstractValueSemanticsProvider<T>
implements
- HtmlRenderer<T> {
+ Renderer<T> {
// -- RENDERER
@Override
- public String presentationValue(final ValueSemanticsProvider.Context context, final T value) {
+ public String simpleTextRepresentation(final ValueSemanticsProvider.Context context, final T value) {
return render(value, xmlContainer->asHtml(asXml(xmlContainer)));
}
diff --git a/valuetypes/markdown/metamodel/src/main/java/org/apache/isis/valuetypes/markdown/metamodel/semantics/MarkdownValueSemantics.java b/valuetypes/markdown/metamodel/src/main/java/org/apache/isis/valuetypes/markdown/metamodel/semantics/MarkdownValueSemantics.java
index 5ad5db5..6037709 100644
--- a/valuetypes/markdown/metamodel/src/main/java/org/apache/isis/valuetypes/markdown/metamodel/semantics/MarkdownValueSemantics.java
+++ b/valuetypes/markdown/metamodel/src/main/java/org/apache/isis/valuetypes/markdown/metamodel/semantics/MarkdownValueSemantics.java
@@ -24,8 +24,9 @@ import org.springframework.stereotype.Component;
import org.apache.isis.applib.adapters.AbstractValueSemanticsProvider;
import org.apache.isis.applib.adapters.EncoderDecoder;
-import org.apache.isis.applib.adapters.HtmlRenderer;
import org.apache.isis.applib.adapters.Parser;
+import org.apache.isis.applib.adapters.Renderer;
+import org.apache.isis.applib.value.Markup;
import org.apache.isis.valuetypes.markdown.applib.value.Markdown;
@Component
@@ -35,7 +36,7 @@ extends AbstractValueSemanticsProvider<Markdown>
implements
EncoderDecoder<Markdown>,
Parser<Markdown>,
- HtmlRenderer<Markdown> {
+ Renderer<Markdown> {
// -- ENCODER DECODER
@@ -58,10 +59,15 @@ implements
// -- RENDERER
@Override
- public String presentationValue(final Context context, final Markdown value) {
+ public String simpleTextRepresentation(final Context context, final Markdown value) {
return render(value, Markdown::asHtml);
}
+ @Override
+ public Markup presentationValue(final Context context, final Markdown value) {
+ return Markup.valueOf(simpleTextRepresentation(context, value));
+ }
+
// -- PARSER
@Override