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>