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/12/01 13:02:53 UTC
[isis] branch master updated: ISIS-3275: add jaxb marshalling support to Bookmark
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 0be204b169 ISIS-3275: add jaxb marshalling support to Bookmark
0be204b169 is described below
commit 0be204b1692832c5e7aa724716899eeff7312a75
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Dec 1 14:02:45 2022 +0100
ISIS-3275: add jaxb marshalling support to Bookmark
---
.../causeway/applib/services/bookmark/Bookmark.java | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/api/applib/src/main/java/org/apache/causeway/applib/services/bookmark/Bookmark.java b/api/applib/src/main/java/org/apache/causeway/applib/services/bookmark/Bookmark.java
index 88fcd4805f..8367e0e625 100644
--- a/api/applib/src/main/java/org/apache/causeway/applib/services/bookmark/Bookmark.java
+++ b/api/applib/src/main/java/org/apache/causeway/applib/services/bookmark/Bookmark.java
@@ -23,6 +23,8 @@ import java.util.Optional;
import java.util.StringTokenizer;
import javax.inject.Named;
+import javax.xml.bind.annotation.adapters.XmlAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import org.springframework.lang.Nullable;
@@ -46,6 +48,7 @@ import lombok.val;
*/
@Named(Bookmark.LOGICAL_TYPE_NAME)
@org.apache.causeway.applib.annotation.Value
+@XmlJavaTypeAdapter(Bookmark.JaxbToStringAdapter.class) // for JAXB view model support
@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
public final class Bookmark implements Oid {
@@ -223,6 +226,20 @@ public final class Bookmark implements Oid {
return identifier==null;
}
+ // -- UTILITY
+
+ public static class JaxbToStringAdapter extends XmlAdapter<String, Bookmark> {
+ @Override
+ public Bookmark unmarshal(final String literal) {
+ return Bookmark.parse(literal).orElse(null);
+ }
+
+ @Override
+ public String marshal(final Bookmark bookmark) {
+ return bookmark != null ? bookmark.stringify() : null;
+ }
+ }
+
// -- HELPER
private String stringify(final String id) {