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 339e3dbd1c ISIS-3109: adds ZonedDateTime demo showcasing 
@ValueSemantics(timeZoneTranslation = TimeZoneTranslation.NONE)
339e3dbd1c is described below

commit 339e3dbd1c25f9ee6c62e2d770976b2b162bb92c
Author: Andi Huber <[email protected]>
AuthorDate: Wed Aug 3 11:18:54 2022 +0200

    ISIS-3109: adds ZonedDateTime demo showcasing
    @ValueSemantics(timeZoneTranslation = TimeZoneTranslation.NONE)
---
 .../holder/JavaTimeZonedDateTimeHolder4.java       | 53 ++++++++++++++++++++++
 .../jdo/JavaTimeZonedDateTimeJdo.java              |  7 +++
 .../jpa/JavaTimeZonedDateTimeJpa.java              |  7 +++
 .../persistence/JavaTimeZonedDateTimeEntity.java   |  4 +-
 .../JavaTimeZonedDateTimeEntity.layout.xml         |  1 +
 .../vm/JavaTimeZonedDateTimeVm.java                | 12 +++--
 .../vm/JavaTimeZonedDateTimeVm.layout.xml          |  1 +
 7 files changed, 80 insertions(+), 5 deletions(-)

diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimezoneddatetime/holder/JavaTimeZonedDateTimeHolder4.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimezoneddatetime/holder/JavaTimeZonedDateTimeHolder4.java
new file mode 100644
index 0000000000..ee35858413
--- /dev/null
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimezoneddatetime/holder/JavaTimeZonedDateTimeHolder4.java
@@ -0,0 +1,53 @@
+/*
+ *  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 demoapp.dom.types.javatime.javatimezoneddatetime.holder;
+
+import org.apache.isis.applib.annotation.LabelPosition;
+import org.apache.isis.applib.annotation.Property;
+import org.apache.isis.applib.annotation.PropertyLayout;
+import org.apache.isis.applib.annotation.TimeZoneTranslation;
+import org.apache.isis.applib.annotation.ValueSemantics;
+import org.apache.isis.applib.annotation.Where;
+
+//tag::class[]
+public interface JavaTimeZonedDateTimeHolder4 extends 
JavaTimeZonedDateTimeHolder3 {
+
+    @Property
+    @ValueSemantics(timeZoneTranslation = TimeZoneTranslation.NONE)
+    @PropertyLayout(
+            describedAs = "@ValueSemantics(timeZoneTranslation = 
TimeZoneTranslation.NONE)",
+            labelPosition = LabelPosition.TOP,
+            hidden = Where.ALL_TABLES,
+            fieldSetId = "time-zone-translation", sequence = "1")
+    default java.time.ZonedDateTime getReadOnlyPropertyNoTimeZoneTranslation() 
{
+        return getReadOnlyProperty();
+    }
+
+    @Property
+    @ValueSemantics(timeZoneTranslation = TimeZoneTranslation.NONE)
+    @PropertyLayout(
+            describedAs = "@ValueSemantics(timeZoneTranslation = 
TimeZoneTranslation.NONE)",
+            labelPosition = LabelPosition.TOP,
+            hidden = Where.ALL_TABLES,
+            fieldSetId = "time-zone-translation", sequence = "2")
+    java.time.ZonedDateTime getReadWritePropertyNoTimeZoneTranslation();
+    void setReadWritePropertyNoTimeZoneTranslation(final 
java.time.ZonedDateTime temporal);
+
+}
+//end::class[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimezoneddatetime/jdo/JavaTimeZonedDateTimeJdo.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimezoneddatetime/jdo/JavaTimeZonedDateTimeJdo.java
index ed2c0e2a2e..771f1a659d 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimezoneddatetime/jdo/JavaTimeZonedDateTimeJdo.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimezoneddatetime/jdo/JavaTimeZonedDateTimeJdo.java
@@ -18,6 +18,8 @@
  */
 package demoapp.dom.types.javatime.javatimezoneddatetime.jdo;
 
+import java.time.ZonedDateTime;
+
 import javax.inject.Named;
 import javax.jdo.annotations.Column;
 import javax.jdo.annotations.DatastoreIdentity;
@@ -52,6 +54,7 @@ public class JavaTimeZonedDateTimeJdo                         
                 /
     public JavaTimeZonedDateTimeJdo(final java.time.ZonedDateTime 
initialValue) {
         this.readOnlyProperty = initialValue;
         this.readWriteProperty = initialValue;
+        this.readWritePropertyNoTimeZoneTranslation = initialValue;
     }
 
 //tag::class[]
@@ -79,5 +82,9 @@ public class JavaTimeZonedDateTimeJdo                         
                 /
     @Getter @Setter
     private java.time.ZonedDateTime readWriteOptionalProperty;
 
+    @Column(allowsNull = "false")
+    @Getter @Setter
+    private ZonedDateTime readWritePropertyNoTimeZoneTranslation;
+
 }
 //end::class[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimezoneddatetime/jpa/JavaTimeZonedDateTimeJpa.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimezoneddatetime/jpa/JavaTimeZonedDateTimeJpa.java
index c22525a060..7249ef7ba6 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimezoneddatetime/jpa/JavaTimeZonedDateTimeJpa.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimezoneddatetime/jpa/JavaTimeZonedDateTimeJpa.java
@@ -18,6 +18,8 @@
  */
 package demoapp.dom.types.javatime.javatimezoneddatetime.jpa;
 
+import java.time.ZonedDateTime;
+
 import javax.inject.Named;
 import javax.persistence.Column;
 import javax.persistence.Entity;
@@ -60,6 +62,7 @@ public class JavaTimeZonedDateTimeJpa
     public JavaTimeZonedDateTimeJpa(final java.time.ZonedDateTime 
initialValue) {
         this.readOnlyProperty = initialValue;
         this.readWriteProperty = initialValue;
+        this.readWritePropertyNoTimeZoneTranslation = initialValue;
     }
 
 //tag::class[]
@@ -91,5 +94,9 @@ public class JavaTimeZonedDateTimeJpa
     @Getter @Setter
     private java.time.ZonedDateTime readWriteOptionalProperty;
 
+    @Column(nullable = false)
+    @Getter @Setter
+    private ZonedDateTime readWritePropertyNoTimeZoneTranslation;
+
 }
 //end::class[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimezoneddatetime/persistence/JavaTimeZonedDateTimeEntity.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimezoneddatetime/persistence/JavaTimeZonedDateTimeEntity.java
index a691438e42..000da9e118 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimezoneddatetime/persistence/JavaTimeZonedDateTimeEntity.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimezoneddatetime/persistence/JavaTimeZonedDateTimeEntity.java
@@ -24,14 +24,14 @@ import org.apache.isis.applib.annotation.DomainObject;
 
 import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
 import demoapp.dom._infra.values.ValueHolder;
-import 
demoapp.dom.types.javatime.javatimezoneddatetime.holder.JavaTimeZonedDateTimeHolder3;
+import 
demoapp.dom.types.javatime.javatimezoneddatetime.holder.JavaTimeZonedDateTimeHolder4;
 
 @Named("demo.JavaTimeZonedDateTimeEntity") // shared permissions with concrete 
sub class
 @DomainObject
 public abstract class JavaTimeZonedDateTimeEntity
 implements
     HasAsciiDocDescription,
-    JavaTimeZonedDateTimeHolder3,
+    JavaTimeZonedDateTimeHolder4,
     ValueHolder<java.time.ZonedDateTime> {
 
     @Override
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimezoneddatetime/persistence/JavaTimeZonedDateTimeEntity.layout.xml
 
b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimezoneddatetime/persistence/JavaTimeZonedDateTimeEntity.layout.xml
index 149a5265fd..78b2b973d3 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimezoneddatetime/persistence/JavaTimeZonedDateTimeEntity.layout.xml
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimezoneddatetime/persistence/JavaTimeZonedDateTimeEntity.layout.xml
@@ -33,6 +33,7 @@
                        <cpt:fieldSet name="Optional Properties" 
id="optional-properties"/>
                        <cpt:fieldSet name="Contributed by Mixins" 
id="contributed"/>
                        <cpt:fieldSet name="@PropertyLayout(labelPosition=...)" 
id="label-positions"/>
+                       <cpt:fieldSet 
name="@ValueSemantics(timeZoneTranslation=...)" id="time-zone-translation"/>
                        <cpt:fieldSet name="@PropertyLayout(renderDay=...)" 
id="render-day"/>
                        <cpt:fieldSet name="Other" id="other" 
unreferencedProperties="true"/>
                </bs3:col>
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimezoneddatetime/vm/JavaTimeZonedDateTimeVm.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimezoneddatetime/vm/JavaTimeZonedDateTimeVm.java
index 724711a230..a1171a7d14 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimezoneddatetime/vm/JavaTimeZonedDateTimeVm.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimezoneddatetime/vm/JavaTimeZonedDateTimeVm.java
@@ -18,6 +18,8 @@
  */
 package demoapp.dom.types.javatime.javatimezoneddatetime.vm;
 
+import java.time.ZonedDateTime;
+
 import javax.inject.Named;
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
@@ -39,7 +41,7 @@ import lombok.Getter;
 import lombok.Setter;
 
 import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
-import 
demoapp.dom.types.javatime.javatimezoneddatetime.holder.JavaTimeZonedDateTimeHolder3;
+import 
demoapp.dom.types.javatime.javatimezoneddatetime.holder.JavaTimeZonedDateTimeHolder4;
 
 //tag::class[]
 @XmlRootElement(name = "root")
@@ -50,7 +52,7 @@ import 
demoapp.dom.types.javatime.javatimezoneddatetime.holder.JavaTimeZonedDate
         nature=Nature.VIEW_MODEL)
 @lombok.NoArgsConstructor                                                      
 // <.>
 public class JavaTimeZonedDateTimeVm
-        implements HasAsciiDocDescription, JavaTimeZonedDateTimeHolder3 {
+        implements HasAsciiDocDescription, JavaTimeZonedDateTimeHolder4 {
 
 //end::class[]
     public JavaTimeZonedDateTimeVm(final java.time.ZonedDateTime initialValue) 
{
@@ -62,7 +64,7 @@ public class JavaTimeZonedDateTimeVm
     @Title(prepend = "java.time.ZonedDateTime view model: ")
     @PropertyLayout(fieldSetId = "read-only-properties", sequence = "1")
     @XmlElement(required = true)                                               
 // <.>
-    @XmlJavaTypeAdapter(JavaTimeJaxbAdapters.ZonedDateTimeAdapter.class)       
        // <.>
+    @XmlJavaTypeAdapter(JavaTimeJaxbAdapters.ZonedDateTimeAdapter.class)       
 // <.>
     @Getter @Setter
     private java.time.ZonedDateTime readOnlyProperty;
 
@@ -85,5 +87,9 @@ public class JavaTimeZonedDateTimeVm
     @Getter @Setter
     private java.time.ZonedDateTime readWriteOptionalProperty;
 
+    @XmlJavaTypeAdapter(JavaTimeJaxbAdapters.ZonedDateTimeAdapter.class)
+    @Getter @Setter
+    private ZonedDateTime readWritePropertyNoTimeZoneTranslation;
+
 }
 //end::class[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimezoneddatetime/vm/JavaTimeZonedDateTimeVm.layout.xml
 
b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimezoneddatetime/vm/JavaTimeZonedDateTimeVm.layout.xml
index 149a5265fd..78b2b973d3 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimezoneddatetime/vm/JavaTimeZonedDateTimeVm.layout.xml
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimezoneddatetime/vm/JavaTimeZonedDateTimeVm.layout.xml
@@ -33,6 +33,7 @@
                        <cpt:fieldSet name="Optional Properties" 
id="optional-properties"/>
                        <cpt:fieldSet name="Contributed by Mixins" 
id="contributed"/>
                        <cpt:fieldSet name="@PropertyLayout(labelPosition=...)" 
id="label-positions"/>
+                       <cpt:fieldSet 
name="@ValueSemantics(timeZoneTranslation=...)" id="time-zone-translation"/>
                        <cpt:fieldSet name="@PropertyLayout(renderDay=...)" 
id="render-day"/>
                        <cpt:fieldSet name="Other" id="other" 
unreferencedProperties="true"/>
                </bs3:col>

Reply via email to