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/09/13 14:58:57 UTC
[isis] branch master updated: ISIS-2846: fixes potential NPE in
canonical description handling
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 d5985b7 ISIS-2846: fixes potential NPE in canonical description handling
d5985b7 is described below
commit d5985b76ce452a2f53304768bcbb6f6b4c7753a7
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon Sep 13 16:58:48 2021 +0200
ISIS-2846: fixes potential NPE in canonical description handling
also renames the named/described extension attributes
---
.../core/metamodel/spec/feature/ObjectFeature.java | 3 +-
.../AbstractTypeFeatureReprRenderer.java | 32 +++++++++++++++-------
2 files changed, 24 insertions(+), 11 deletions(-)
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectFeature.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectFeature.java
index 7f119eb..b747fee 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectFeature.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectFeature.java
@@ -23,6 +23,7 @@ import java.util.function.Supplier;
import org.apache.isis.applib.Identifier;
import org.apache.isis.commons.internal.base._Either;
+import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacet;
import org.apache.isis.core.metamodel.spec.ManagedObject;
@@ -141,7 +142,7 @@ public interface ObjectFeature extends Specification {
val staticDescription = getStaticDescription();
return staticDescription.isPresent()
? _Either.left(staticDescription.get())
- : _Either.right(getCanonicalDescription());
+ : _Either.right(_Strings.nullToEmpty(getCanonicalDescription()));
}
/**
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/AbstractTypeFeatureReprRenderer.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/AbstractTypeFeatureReprRenderer.java
index 49aa286..ff910b9 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/AbstractTypeFeatureReprRenderer.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/AbstractTypeFeatureReprRenderer.java
@@ -98,21 +98,33 @@ extends ReprRendererAbstract<ParentSpecAndFeature<T>> {
protected abstract void putExtensionsSpecificToFeature();
protected void putExtensionsName() {
- getObjectFeature().getStaticOrCanonicalFriendlyName()
+ getObjectFeature()
+ .getStaticOrCanonicalFriendlyName()
.accept(
- staticForm->
- getExtensions().mapPut("staticFriendlyName", staticForm),
- canonicalForm->
- getExtensions().mapPut("canonicalFriendlyName", canonicalForm));
+ staticForm->{
+ getExtensions().mapPut("friendlyName", staticForm);
+ getExtensions().mapPut("friendlyNameForm", "static");
+ },
+ canonicalForm->{
+ getExtensions().mapPut("friendlyName", canonicalForm);
+ getExtensions().mapPut("friendlyNameForm", "canonical");
+ });
}
protected void putExtensionsDescriptionIfAvailable() {
- getObjectFeature().getStaticOrCanonicalDescription()
+ getObjectFeature()
+ .getStaticOrCanonicalDescription()
.accept(
- staticForm->
- getExtensions().mapPut("staticDescription", staticForm),
- canonicalForm->
- getExtensions().mapPut("canonicalDescription", canonicalForm));
+ staticForm->{
+ if(staticForm.isEmpty()) return;
+ getExtensions().mapPut("description", staticForm);
+ getExtensions().mapPut("descriptionForm", "static");
+ },
+ canonicalForm->{
+ if(canonicalForm.isEmpty()) return;
+ getExtensions().mapPut("description", canonicalForm);
+ getExtensions().mapPut("descriptionForm", "canonical");
+ });
}
}
\ No newline at end of file