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/causeway.git


The following commit(s) were added to refs/heads/master by this push:
     new 0a2de7c763 CAUSEWAY-2297: internal util polishing; adoc builder readme 
update
0a2de7c763 is described below

commit 0a2de7c76395fca2283f74691569f19100157efd
Author: Andi Huber <[email protected]>
AuthorDate: Sat Mar 16 10:12:03 2024 +0100

    CAUSEWAY-2297: internal util polishing; adoc builder readme update
---
 .../core/metamodel/object/MmValueUtils.java         | 21 ++++++++++++++++++++-
 .../apache/causeway/core/metamodel/util/Facets.java | 17 -----------------
 valuetypes/asciidoc/builder/README.adoc             |  9 ++-------
 .../ScalarPanelTextFieldWithTemporalPicker.java     | 13 +++++++------
 4 files changed, 29 insertions(+), 31 deletions(-)

diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/object/MmValueUtils.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/object/MmValueUtils.java
index d0f7e36a54..db26e3d559 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/object/MmValueUtils.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/object/MmValueUtils.java
@@ -26,10 +26,12 @@ import org.apache.causeway.applib.value.semantics.Renderer;
 import org.apache.causeway.applib.value.semantics.TemporalSupport;
 import 
org.apache.causeway.applib.value.semantics.TemporalSupport.TemporalDecomposition;
 import org.apache.causeway.applib.value.semantics.ValueSemanticsProvider;
+import org.apache.causeway.commons.internal.exceptions._Exceptions;
 import org.apache.causeway.core.metamodel.facets.object.value.ValueFacet;
 import org.apache.causeway.core.metamodel.spec.ObjectSpecification;
 import org.apache.causeway.core.metamodel.spec.feature.ObjectFeature;
 
+import lombok.NonNull;
 import lombok.val;
 import lombok.experimental.UtilityClass;
 
@@ -77,7 +79,24 @@ public class MmValueUtils {
         return 
renderer.htmlPresentation(valueFacet.createValueSemanticsContext(feature), 
adapter.getPojo());
     }
 
-    // -- TEMPORAL DECOMPOSITION
+    // -- TEMPORAL SUPPORT
+
+    @SuppressWarnings({ "rawtypes", "unchecked" })
+    public Optional<TemporalSupport> temporalSupport(
+            final @Nullable ObjectFeature objectFeature,
+            final @Nullable ObjectSpecification elementType) {
+        return valueFacet(elementType)
+                .flatMap(valueFacet->(Optional<TemporalSupport>)valueFacet
+                        .selectTemporalSupportForFeature(objectFeature));
+    }
+
+    public TemporalSupport<?> temporalSupportElseFail(
+            final @Nullable ObjectFeature objectFeature,
+            final @NonNull ObjectSpecification elementType) {
+        return temporalSupport(objectFeature, elementType)
+                .orElseThrow(()->_Exceptions.illegalState("no temporal support 
found for %s",
+                        elementType));
+    }
 
     @SuppressWarnings({ "rawtypes", "unchecked" })
     public Optional<TemporalDecomposition> temporalDecomposition(
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/util/Facets.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/util/Facets.java
index 6d81aeb757..b827844c57 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/util/Facets.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/util/Facets.java
@@ -34,7 +34,6 @@ import org.apache.causeway.applib.annotation.TableDecorator;
 import org.apache.causeway.applib.annotation.Where;
 import org.apache.causeway.applib.id.LogicalType;
 import org.apache.causeway.applib.layout.grid.bootstrap.BSGrid;
-import 
org.apache.causeway.applib.value.semantics.TemporalCharacteristicsProvider;
 import org.apache.causeway.applib.value.semantics.ValueSemanticsProvider;
 import org.apache.causeway.commons.collections.Can;
 import org.apache.causeway.commons.internal.base._Casts;
@@ -445,22 +444,6 @@ public final class Facets {
                     objectSpec.getCorrespondingClass().getName()));
     }
 
-    @SuppressWarnings("unchecked")
-    public Optional<TemporalCharacteristicsProvider> 
valueTemporalCharacteristicsProvider(
-            final ObjectSpecification objectSpec) {
-        return objectSpec.valueFacet()
-            .flatMap(valueFacet->valueFacet.getAllValueSemantics().stream()
-                    .findFirst())
-            
.flatMap(valueSemantics->_Casts.castTo(TemporalCharacteristicsProvider.class, 
valueSemantics));
-    }
-
-    public TemporalCharacteristicsProvider 
valueTemporalCharacteristicsProviderElseFail(
-            final ObjectSpecification objectSpec) {
-        return valueTemporalCharacteristicsProvider(objectSpec)
-                .orElseThrow(()->_Exceptions.illegalState("no temporal 
characteristics found for %s",
-                        objectSpec));
-    }
-
     // -- HELPER
 
     @SuppressWarnings("rawtypes")
diff --git a/valuetypes/asciidoc/builder/README.adoc 
b/valuetypes/asciidoc/builder/README.adoc
index 324b23e6dc..7007eb4a48 100644
--- a/valuetypes/asciidoc/builder/README.adoc
+++ b/valuetypes/asciidoc/builder/README.adoc
@@ -10,10 +10,6 @@ and https://accounts.eclipse.org/mailing-list/asciidoc-wg[]. 
However, we are hap
 help with transfer of source code, if any project (under the umbrella of the
 _AsciiDoc Working Group_) is willing to take over.
 
-WARNING: This is work-in-progress, no official Maven artifacts are published 
yet at the time of writing.
-However, snapshots are available with our nightly-builds:
-https://github.com/apache-causeway-committers/causeway-nightly[]
-
 == Usage
 
 Say we have a list of employees, which we want to express as ascii-doc table.
@@ -123,9 +119,8 @@ 
https://github.com/apache-causeway-committers/causeway-nightly#maven[]
 [source,xml]
 ----
 <dependency>
-    <groupId>org.apache.causeway.tooling</groupId>
-    <artifactId>causeway-tooling-model4adoc</artifactId>
-    <version>2.0.0-???</version>
+    <groupId>org.apache.causeway.valuetypes</groupId>
+    <artifactId>causeway-valuetypes-asciidoc-builder</artifactId>
 </dependency>
 ----
 
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldWithTemporalPicker.java
 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldWithTemporalPicker.java
index 18c616436a..1dfe7ca002 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldWithTemporalPicker.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldWithTemporalPicker.java
@@ -29,8 +29,9 @@ import org.apache.wicket.ajax.form.OnChangeAjaxBehavior;
 import org.apache.wicket.markup.html.form.TextField;
 import org.apache.wicket.model.PropertyModel;
 
-import 
org.apache.causeway.applib.value.semantics.TemporalCharacteristicsProvider;
 import 
org.apache.causeway.applib.value.semantics.TemporalCharacteristicsProvider.OffsetCharacteristic;
+import org.apache.causeway.applib.value.semantics.TemporalSupport;
+import org.apache.causeway.core.metamodel.object.MmValueUtils;
 import org.apache.causeway.core.metamodel.util.Facets;
 import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
 import 
org.apache.causeway.viewer.wicket.model.value.ConverterBasedOnValueSemantics;
@@ -93,13 +94,13 @@ extends ScalarPanelTextFieldWithValueSemantics<T>  {
         case OFFSET:
             Wkt.dropDownChoiceWithAjaxUpdateAdd(container, "timeoffset",
                     new PropertyModel<ZoneOffset>(temporalDecomposition, 
"zoneOffset"),
-                    temporalCharacteristicsProvider().getAvailableOffsets())
+                    temporalSupport().getAvailableOffsets())
                 .setRequired(true);
             break;
         case ZONED:
             Wkt.dropDownChoiceWithAjaxUpdateAdd(container, "timezone",
                     new PropertyModel<ZoneId>(temporalDecomposition, "zoneId"),
-                    temporalCharacteristicsProvider().getAvailableZoneIds())
+                    temporalSupport().getAvailableZoneIds())
                 .setRequired(true);
             break;
         case LOCAL:
@@ -131,12 +132,12 @@ extends ScalarPanelTextFieldWithValueSemantics<T>  {
 
     // -- HELPER
 
-    private TemporalCharacteristicsProvider temporalCharacteristicsProvider() {
-        return 
Facets.valueTemporalCharacteristicsProviderElseFail(scalarModel().getElementType());
+    private TemporalSupport<?> temporalSupport() {
+        return 
MmValueUtils.temporalSupportElseFail(scalarModel().getMetaModel(), 
scalarModel().getElementType());
     }
 
     private OffsetCharacteristic offsetCharacteristic() {
-        return temporalCharacteristicsProvider().getOffsetCharacteristic();
+        return temporalSupport().getOffsetCharacteristic();
     }
 
     private <X> TextField<X> installUpdateNotifier(final TextField<X> 
textField) {

Reply via email to