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 2022/01/09 12:07:54 UTC

[isis] branch master updated: ISIS-2856: restore semantic clarity with constant ValueSemantics.AS_DAY_BEFORE

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 2af51fd  ISIS-2856: restore semantic clarity with constant ValueSemantics.AS_DAY_BEFORE
2af51fd is described below

commit 2af51fd21e13311d5324308edfea8bd6507b017e
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sun Jan 9 13:07:45 2022 +0100

    ISIS-2856: restore semantic clarity with constant
    ValueSemantics.AS_DAY_BEFORE
---
 .../modules/ROOT/pages/2021/2.0.0-M7/mignotes.adoc   |  8 ++++----
 .../isis/applib/annotations/ValueSemantics.java      |  7 ++++++-
 .../ValueSemanticsAnnotationFacetFactoryTest.java    | 20 ++++++++++++++++++++
 3 files changed, 30 insertions(+), 5 deletions(-)

diff --git a/antora/components/relnotes/modules/ROOT/pages/2021/2.0.0-M7/mignotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2021/2.0.0-M7/mignotes.adoc
index 1b04c12..d04dd31 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2021/2.0.0-M7/mignotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2021/2.0.0-M7/mignotes.adoc
@@ -24,11 +24,11 @@ from v1 to v2 using Spring's `@AliasFor` annotation.
 but it has come up as a requirement to ease migration for existing projects 
 from v1 to v2 using Spring's `@AliasFor` annotation 
 
-| `@ParameterLayout(renderDay=...)` deprecated for removal
-| use `@ValueSemantics(dateRenderAdjustDays=...)` instead
+| `@ParameterLayout(renderDay=RenderDay.AS_DAY_BEFORE)` deprecated for removal
+| use `@ValueSemantics(dateRenderAdjustDays=ValueSemantics.AS_DAY_BEFORE)` instead
 
-| `@PropertyLayout(renderDay=...)` deprecated for removal
-| use `@ValueSemantics(dateRenderAdjustDays=...)` instead
+| `@PropertyLayout(renderDay=RenderDay.AS_DAY_BEFORE)` deprecated for removal
+| use `@ValueSemantics(dateRenderAdjustDays=ValueSemantics.AS_DAY_BEFORE)` instead
 
 | We provided introspection control via global config option 
 `isis.core.meta-model.annotation.action.explicit=true/false`.
diff --git a/api/applib/src/main/java/org/apache/isis/applib/annotations/ValueSemantics.java b/api/applib/src/main/java/org/apache/isis/applib/annotations/ValueSemantics.java
index f9a710a..37bceb4 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/annotations/ValueSemantics.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/annotations/ValueSemantics.java
@@ -112,6 +112,11 @@ public @interface ValueSemantics {
         default TimePrecision.SECOND;
 
     /**
+     * eg. &#64;ValueSemantics(dateRenderAdjustDays = ValueSemantics.AS_DAY_BEFORE)
+     */
+    public final static int AS_DAY_BEFORE = -1;
+
+    /**
      * If associated with a date or date-time value,
      * instructs whether the date should be rendered as <i>n</i> days
      * after the actually stored date.
@@ -128,7 +133,7 @@ public @interface ValueSemantics {
      * <pre>
      * public LocalDate getStartDate() { ... }
      *
-     * &#64;ValueSemantics(dateRenderAdjustDays = -1)
+     * &#64;ValueSemantics(dateRenderAdjustDays = ValueSemantics.AS_DAY_BEFORE)
      * public LocalDate getEndDate() { ... }
      * </pre>
      *
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/semantics/ValueSemanticsAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/semantics/ValueSemanticsAnnotationFacetFactoryTest.java
index 7e2bf75..25bb701 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/semantics/ValueSemanticsAnnotationFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/semantics/ValueSemanticsAnnotationFacetFactoryTest.java
@@ -12,6 +12,7 @@ import org.apache.isis.commons.internal._Constants;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
 import org.apache.isis.core.metamodel.facets.FacetedMethod;
+import org.apache.isis.core.metamodel.facets.objectvalue.daterenderedadjust.DateRenderAdjustFacet;
 import org.apache.isis.core.metamodel.facets.objectvalue.digits.MaxFractionalDigitsFacet;
 import org.apache.isis.core.metamodel.facets.objectvalue.digits.MaxTotalDigitsFacet;
 import org.apache.isis.core.metamodel.facets.objectvalue.digits.MinFractionalDigitsFacet;
@@ -229,6 +230,18 @@ extends AbstractFacetFactoryTest {
 
     // -- TEMPORAL FORMAT STYLE
 
+    public void testDateAdjustPickedUpOnProperty() {
+        // given
+        class Order {
+            @ValueSemantics(dateRenderAdjustDays = ValueSemantics.AS_DAY_BEFORE)
+            public LocalDateTime getDateTime() { return null; }
+        }
+        // when
+        processMethod(newFacetFactory(), Order.class, "getDateTime", _Constants.emptyClasses);
+        // then
+        assertDateRenderAdjustDays(facetedMethod, -1);
+    }
+
     public void testDateFormatStylePickedUpOnProperty() {
         // given
         class Order {
@@ -320,6 +333,13 @@ extends AbstractFacetFactoryTest {
         }
     }
 
+    private void assertDateRenderAdjustDays(
+            final FacetedMethod facetedMethod, final int adjustDays) {
+        final DateRenderAdjustFacet facet = facetedMethod.getFacet(DateRenderAdjustFacet.class);
+        assertNotNull(facet);
+        assertThat(facet.getDateRenderAdjustDays(), is(adjustDays));
+    }
+
     private void assertDateFormatStyle(
             final FacetedMethod facetedMethod, final FormatStyle formatStyle) {
         final DateFormatStyleFacet facet = facetedMethod.getFacet(DateFormatStyleFacet.class);