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 2021/01/29 08:53:39 UTC
[isis] branch master updated: ISIS-2507: add javadoc for
DomainObjectList
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 11e147b ISIS-2507: add javadoc for DomainObjectList
11e147b is described below
commit 11e147bb4d808208b8e8ae121070e11c876b4bcf
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Jan 29 09:52:49 2021 +0100
ISIS-2507: add javadoc for DomainObjectList
---
.../org/apache/isis/applib/domain/DomainObjectList.java | 15 +++++++++++++++
.../org/apache/isis/applib/services/jaxb/JaxbService.java | 7 +++++++
.../core/runtimeservices/jaxb/JaxbServiceDefault.java | 8 +++++---
3 files changed, 27 insertions(+), 3 deletions(-)
diff --git a/api/applib/src/main/java/org/apache/isis/applib/domain/DomainObjectList.java b/api/applib/src/main/java/org/apache/isis/applib/domain/DomainObjectList.java
index 9e47e99..2f345aa 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/domain/DomainObjectList.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/domain/DomainObjectList.java
@@ -37,6 +37,21 @@ import org.apache.isis.applib.annotation.Optionality;
import org.apache.isis.applib.annotation.Property;
import org.apache.isis.applib.jaxb.PersistentEntitiesAdapter;
+/**
+ * The initial idea of {@link DomainObjectList} was to simplify restful clients.
+ * <p>
+ * In the original Restful Objects specification, invoking an action that returned
+ * a list meant that the RO client needed to handle this collection, which didn't
+ * have any identity. That made for special case logic in the client.
+ * <p>
+ * Instead, if the RO client invokes the action but uses the <i>Accept Header</i> to
+ * request an object, then the RO viewer would automatically wrap the returned list
+ * in this {@link DomainObjectList} view model.
+ * <p>
+ * Thus, the RO client then only ever needs to know how to render an object, in all cases.
+ *
+ * @since 1.x {@index}
+ */
@XmlRootElement(name = "list")
@XmlType(
propOrder = {
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/jaxb/JaxbService.java b/api/applib/src/main/java/org/apache/isis/applib/services/jaxb/JaxbService.java
index c986544..9c3d189 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/jaxb/JaxbService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/jaxb/JaxbService.java
@@ -31,6 +31,8 @@ import javax.xml.bind.Unmarshaller;
import org.apache.isis.applib.mixins.dto.Dto_downloadXsd;
import org.apache.isis.commons.internal.base._Casts;
import org.apache.isis.commons.internal.base._NullSafe;
+import org.apache.isis.commons.internal.debug._Probe;
+import org.apache.isis.commons.internal.exceptions._Exceptions;
import org.apache.isis.commons.internal.resources._Xml;
import lombok.NonNull;
@@ -210,6 +212,11 @@ public interface JaxbService {
unmarshaller.setProperty(entry.getKey(), entry.getValue());
}
+ if(xml.contains("<actionOwningType>isis.applib.ConfigurationMenu</actionOwningType>")) {
+ _Probe.errOut("+++++++++++\n\n %s", xml);
+ _Exceptions.dumpStackTrace();
+ }
+
configure(unmarshaller);
val pojo = unmarshaller.unmarshal(new StringReader(xml));
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/jaxb/JaxbServiceDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/jaxb/JaxbServiceDefault.java
index 09e304b..5f8d836 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/jaxb/JaxbServiceDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/jaxb/JaxbServiceDefault.java
@@ -83,8 +83,10 @@ public class JaxbServiceDefault extends JaxbService.Simple {
}
@Override
- protected Object internalFromXml(@NonNull JAXBContext jaxbContext, String xml,
- Map<String, Object> unmarshallerProperties) throws JAXBException {
+ protected Object internalFromXml(
+ final @NonNull JAXBContext jaxbContext,
+ final String xml,
+ final Map<String, Object> unmarshallerProperties) throws JAXBException {
val pojo = super.internalFromXml(jaxbContext, xml, unmarshallerProperties);
if(pojo instanceof DomainObjectList) {
@@ -97,7 +99,7 @@ public class JaxbServiceDefault extends JaxbService.Simple {
}
return pojo;
}
-
+
@Override
protected void configure(final Unmarshaller unmarshaller) {
unmarshaller.setAdapter(PersistentEntityAdapter.class,