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/08/19 14:59:59 UTC

[isis] branch master updated: ISIS-3127: [RO] minor: java-doc

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 d0ab120cfd ISIS-3127: [RO] minor: java-doc
d0ab120cfd is described below

commit d0ab120cfd4533436079068028ef5de6bdf858c6
Author: andi-huber <ah...@apache.org>
AuthorDate: Fri Aug 19 16:59:52 2022 +0200

    ISIS-3127: [RO] minor: java-doc
---
 .../service/swagger/SwaggerServiceDefault.java     | 14 ++++----
 .../service/valuerender/JsonValueConverter.java    | 13 ++++++-
 .../valuerender/JsonValueEncoderService.java       | 40 ++++++++++++++++++----
 .../JsonValueEncoderServiceDefault.java            | 38 +++++++-------------
 4 files changed, 65 insertions(+), 40 deletions(-)

diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/swagger/SwaggerServiceDefault.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/swagger/SwaggerServiceDefault.java
index 3b0bd0a95e..4d68c7917d 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/swagger/SwaggerServiceDefault.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/swagger/SwaggerServiceDefault.java
@@ -18,7 +18,12 @@
  */
 package org.apache.isis.viewer.restfulobjects.rendering.service.swagger;
 
-import lombok.val;
+import javax.annotation.Priority;
+import javax.inject.Inject;
+import javax.inject.Named;
+
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Service;
 
 import org.apache.isis.applib.annotation.PriorityPrecedence;
 import org.apache.isis.applib.services.swagger.Format;
@@ -27,15 +32,10 @@ import org.apache.isis.applib.services.swagger.Visibility;
 import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.config.RestEasyConfiguration;
 import org.apache.isis.core.config.viewer.web.WebAppContextPath;
-import org.apache.isis.core.metamodel.IsisModuleCoreMetamodel;
 import org.apache.isis.viewer.restfulobjects.applib.IsisModuleViewerRestfulObjectsApplib;
 import org.apache.isis.viewer.restfulobjects.rendering.service.swagger.internal.SwaggerSpecGenerator;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Service;
 
-import javax.annotation.Priority;
-import javax.inject.Inject;
-import javax.inject.Named;
+import lombok.val;
 
 @Service
 @Named(IsisModuleViewerRestfulObjectsApplib.NAMESPACE + ".swaggerServiceDefault")
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/valuerender/JsonValueConverter.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/valuerender/JsonValueConverter.java
index 20d5955652..6b061c215c 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/valuerender/JsonValueConverter.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/valuerender/JsonValueConverter.java
@@ -20,6 +20,7 @@ package org.apache.isis.viewer.restfulobjects.rendering.service.valuerender;
 
 import java.util.OptionalInt;
 
+import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.node.NullNode;
 
 import org.springframework.lang.Nullable;
@@ -41,18 +42,28 @@ import lombok.NonNull;
 public interface JsonValueConverter {
 
     /**
-     * The value as pojo, otherwise <tt>null</tt>.
+     * The value recovered from {@link JsonRepresentation} as pojo, otherwise <tt>null</tt>.
      */
     @Nullable
     Object recoverValueAsPojo(JsonRepresentation repr, Context context);
 
+    /**
+     * A {@link JsonNode} or otherwise natively supported simple type.
+     */
     Object asObject(ManagedObject objectAdapter, Context context);
 
+    /**
+     * Appends given value type representing {@link ManagedObject} to given
+     * {@link JsonRepresentation}.
+     */
     Object appendValueAndFormat(
             final ManagedObject objectAdapter,
             final Context context,
             final JsonRepresentation repr);
 
+    /**
+     * {@link Class} this converter is suited for.
+     */
     Class<?> getValueClass();
 
     static interface Context extends HasObjectFeature {
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/valuerender/JsonValueEncoderService.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/valuerender/JsonValueEncoderService.java
index 8b887bfc11..46b9055598 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/valuerender/JsonValueEncoderService.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/valuerender/JsonValueEncoderService.java
@@ -18,34 +18,62 @@
  */
 package org.apache.isis.viewer.restfulobjects.rendering.service.valuerender;
 
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.node.NullNode;
+
 import org.springframework.lang.Nullable;
 
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
-import org.apache.isis.viewer.restfulobjects.rendering.service.valuerender.JsonValueConverter.Context;
 
 import lombok.NonNull;
+import lombok.val;
 
 /**
- * Converts value representing {@link ManagedObject}s to their corresponding JSON representation.
+ * Converts value representing {@link ManagedObject}s to their corresponding JSON representation
+ * and back.
+ *
+ * @since 1.x refined for 2.0 {@index}
  */
 public interface JsonValueEncoderService {
 
+    /**
+     * The value recovered from {@link JsonRepresentation}
+     * as {@link ManagedObject} honoring {@link Context},
+     * otherwise <tt>null</tt>.
+     */
     public ManagedObject asAdapter(
-            final ObjectSpecification objectSpec,
-            final JsonRepresentation argValueRepr,
+            final ObjectSpecification valueSpec,
+            final JsonRepresentation valueRepr,
             final JsonValueConverter.Context context);
 
+    /**
+     * Appends given value type representing {@link ManagedObject} to given
+     * {@link JsonRepresentation} honoring {@link Context}.
+     */
     public void appendValueAndFormat(
             final ManagedObject valueAdapter,
             final JsonRepresentation repr,
-            final Context context);
+            final JsonValueConverter.Context context);
 
+    /**
+     * A {@link JsonNode} or otherwise natively supported simple type from given {@link ManagedObject},
+     * honoring {@link Context}.
+     */
     @Nullable
     public Object asObject(final @NonNull ManagedObject adapter, final JsonValueConverter.Context context);
 
-    static void appendFormats(
+    // -- UTILITY
+
+    default NullNode appendNullAndFormat(final JsonRepresentation repr, final boolean suppressExtensions) {
+        val value = NullNode.getInstance();
+        repr.mapPutJsonNode("value", value);
+        appendFormats(repr, "string", "string", suppressExtensions);
+        return value;
+    }
+
+    default void appendFormats(
             final JsonRepresentation repr,
             final @Nullable String format, final @Nullable String extendedFormat, final boolean suppressExtensions) {
         repr.putFormat(format);
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/valuerender/JsonValueEncoderServiceDefault.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/valuerender/JsonValueEncoderServiceDefault.java
index 5850edbe06..c50985dad3 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/valuerender/JsonValueEncoderServiceDefault.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/valuerender/JsonValueEncoderServiceDefault.java
@@ -27,8 +27,6 @@ import javax.annotation.Priority;
 import javax.inject.Inject;
 import javax.inject.Named;
 
-import com.fasterxml.jackson.databind.node.NullNode;
-
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.lang.Nullable;
 import org.springframework.stereotype.Service;
@@ -74,16 +72,16 @@ public class JsonValueEncoderServiceDefault implements JsonValueEncoderService {
     @Override
     public ManagedObject asAdapter(
             final ObjectSpecification objectSpec,
-            final JsonRepresentation argValueRepr,
+            final JsonRepresentation valueRepr,
             final JsonValueConverter.Context context) {
 
-        if(argValueRepr == null) {
+        if(valueRepr == null) {
             return null;
         }
         if (objectSpec == null) {
             throw new IllegalArgumentException("ObjectSpecification is required");
         }
-        if (!argValueRepr.isValue()) {
+        if (!valueRepr.isValue()) {
             throw new IllegalArgumentException("Representation must be of a value");
         }
 
@@ -94,22 +92,22 @@ public class JsonValueEncoderServiceDefault implements JsonValueEncoderService {
         final JsonValueConverter jvc = converterByClass.get(ClassUtils.resolvePrimitiveIfNecessary(valueClass));
         if(jvc == null) {
             // best effort
-            if (argValueRepr.isString()) {
-                final String argStr = argValueRepr.asString();
+            if (valueRepr.isString()) {
+                final String argStr = valueRepr.asString();
                 return ManagedObject.of(objectSpec,
                         valueSerializer.fromEncodedString(Format.JSON, argStr));
             }
             throw new IllegalArgumentException("Unable to parse value");
         }
 
-        val valueAsPojo = jvc.recoverValueAsPojo(argValueRepr, context);
+        val valueAsPojo = jvc.recoverValueAsPojo(valueRepr, context);
         if(valueAsPojo != null) {
             return ManagedObject.lazy(specificationLoader, valueAsPojo);
         }
 
         // last attempt
-        if (argValueRepr.isString()) {
-            final String argStr = argValueRepr.asString();
+        if (valueRepr.isString()) {
+            final String argStr = valueRepr.asString();
             try {
                 return ManagedObject.of(objectSpec,
                         valueSerializer.fromEncodedString(Format.JSON, argStr));
@@ -118,7 +116,10 @@ public class JsonValueEncoderServiceDefault implements JsonValueEncoderService {
             }
         }
 
-        throw new IllegalArgumentException("Could not parse value '" + argValueRepr.asString() + "' as a " + objectSpec.getFullIdentifier());
+        throw new IllegalArgumentException("Could not parse value '"
+                + valueRepr.asString()
+                + "' as a "
+                + objectSpec.getFullIdentifier());
     }
 
     @Override
@@ -171,13 +172,6 @@ public class JsonValueEncoderServiceDefault implements JsonValueEncoderService {
         }
     }
 
-    private NullNode appendNullAndFormat(final JsonRepresentation repr, final boolean suppressExtensions) {
-        val value = NullNode.getInstance();
-        repr.mapPutJsonNode("value", value);
-        appendFormats(repr, "string", "string", suppressExtensions);
-        return value;
-    }
-
     private static Optional<ValueDecomposition> decompose(final ManagedObject valueAdapter) {
         if(ManagedObjects.isNullOrUnspecifiedOrEmpty(valueAdapter)) {
             return Optional.empty();
@@ -215,14 +209,6 @@ public class JsonValueEncoderServiceDefault implements JsonValueEncoderService {
                 .toEncodedString(Format.JSON, _Casts.uncheckedCast(adapter.getPojo()));
     }
 
-    static void appendFormats(final JsonRepresentation repr,
-            final @Nullable String format, final @Nullable String extendedFormat, final boolean suppressExtensions) {
-        repr.putFormat(format);
-        if(!suppressExtensions) {
-            repr.putExtendedFormat(extendedFormat);
-        }
-    }
-
     /**
      * JUnit support
      */