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
*/