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. @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() { ... }
*
- * @ValueSemantics(dateRenderAdjustDays = -1)
+ * @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);