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/06/25 07:09:59 UTC
[isis] branch master updated: ISIS-1720: add
ManagedObject#getTitle()
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 bb5ebae ISIS-1720: add ManagedObject#getTitle()
bb5ebae is described below
commit bb5ebae2cfc61428867513113dfced2752e54581
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Jun 25 09:09:46 2021 +0200
ISIS-1720: add ManagedObject#getTitle()
so clients can use that, instead of directly interacting with facets
---
.../isis/core/metamodel/spec/ManagedObject.java | 11 ++++-
.../isis/core/metamodel/spec/ManagedObjects.java | 17 ++++----
.../domainobjects/DomainObjectReprRenderer.java | 17 ++++----
.../domainobjects/ObjectPropertyReprRenderer.java | 47 ++++++++++++----------
4 files changed, 54 insertions(+), 38 deletions(-)
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObject.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObject.java
index 3ef625e..41c0de8 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObject.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObject.java
@@ -28,6 +28,7 @@ import javax.annotation.Nullable;
import org.apache.isis.applib.services.bookmark.Bookmark;
import org.apache.isis.commons.internal.base._Lazy;
import org.apache.isis.commons.internal.exceptions._Exceptions;
+import org.apache.isis.commons.internal.functions._Predicates;
import org.apache.isis.core.metamodel.context.MetaModelContext;
import org.apache.isis.core.metamodel.facets.object.icon.ObjectIcon;
import org.apache.isis.core.metamodel.objectmanager.ObjectManager;
@@ -71,7 +72,7 @@ public interface ManagedObject {
// -- TITLE
public default String titleString() {
- return titleString(__->false);
+ return titleString(_Predicates.alwaysFalse());
}
default String titleString(final @NonNull Predicate<ManagedObject> isContextAdapter) {
@@ -101,6 +102,12 @@ public interface ManagedObject {
return getSpecification().getElementSpecification();
}
+ // -- SHORTCUT - TITLE
+
+ default String getTitle() {
+ return ManagedObjects.titleOf(this);
+ }
+
// -- SHORTCUT - ICON
/**
@@ -287,4 +294,6 @@ public interface ManagedObject {
+
+
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObjects.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObjects.java
index a7a9ac1..020f69b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObjects.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObjects.java
@@ -454,8 +454,8 @@ public final class ManagedObjects {
}
if (managedObject.getSpecification().isParentedOrFreeCollection()) {
- final CollectionFacet facet = managedObject.getSpecification().getFacet(CollectionFacet.class);
- return collectionTitleString(managedObject, facet);
+ val collectionFacet = managedObject.getSpecification().getFacet(CollectionFacet.class);
+ return collectionTitleString(managedObject, collectionFacet);
} else {
return objectTitleString(managedObject, isContextAdapter);
}
@@ -474,8 +474,9 @@ public final class ManagedObjects {
private String collectionTitleString(final ManagedObject managedObject, final CollectionFacet facet) {
final int size = facet.size(managedObject);
- final ObjectSpecification elementSpecification = managedObject.getElementSpecification().orElse(null);
- if (elementSpecification == null || elementSpecification.getFullIdentifier().equals(Object.class.getName())) {
+ val elementSpec = managedObject.getElementSpecification().orElse(null);
+ if (elementSpec == null
+ || elementSpec.getFullIdentifier().equals(Object.class.getName())) {
switch (size) {
case -1:
return "Objects";
@@ -489,13 +490,13 @@ public final class ManagedObjects {
} else {
switch (size) {
case -1:
- return elementSpecification.getPluralName();
+ return elementSpec.getPluralName();
case 0:
- return "No " + elementSpecification.getPluralName();
+ return "No " + elementSpec.getPluralName();
case 1:
- return "1 " + elementSpecification.getSingularName();
+ return "1 " + elementSpec.getSingularName();
default:
- return size + " " + elementSpecification.getPluralName();
+ return size + " " + elementSpec.getPluralName();
}
}
}
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectReprRenderer.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectReprRenderer.java
index 2d869d4..232c398 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectReprRenderer.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectReprRenderer.java
@@ -26,7 +26,6 @@ import java.util.stream.Stream;
import org.apache.isis.applib.annotation.DomainServiceLayout;
import org.apache.isis.core.metamodel.consent.Consent;
import org.apache.isis.core.metamodel.facets.object.domainservicelayout.DomainServiceLayoutFacet;
-import org.apache.isis.core.metamodel.facets.object.title.TitleFacet;
import org.apache.isis.core.metamodel.interactions.managed.ManagedAction;
import org.apache.isis.core.metamodel.interactions.managed.ManagedCollection;
import org.apache.isis.core.metamodel.interactions.managed.ManagedProperty;
@@ -457,20 +456,22 @@ public class DomainObjectReprRenderer extends ReprRendererAbstract<DomainObjectR
}
- public static Object valueOrRef(final IResourceContext context, final JsonValueEncoder jsonValueEncoder, final ManagedObject adapter) {
+ public static Object valueOrRef(
+ final IResourceContext context,
+ final JsonValueEncoder jsonValueEncoder,
+ final ManagedObject domainObject) {
- val spec = adapter.getSpecification();
+ val spec = domainObject.getSpecification();
if(spec.isValue()) {
String format = null; // TODO
- return jsonValueEncoder.asObject(adapter, format);
+ return jsonValueEncoder.asObject(domainObject, format);
}
- val titleFacet = spec.getFacet(TitleFacet.class);
- final String title = titleFacet.title(adapter);
+
return DomainObjectReprRenderer.newLinkToBuilder(
context,
Rel.VALUE,
- adapter)
- .withTitle(title)
+ domainObject)
+ .withTitle(domainObject.getTitle())
.build();
}
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectPropertyReprRenderer.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectPropertyReprRenderer.java
index b8aefbb..2725185 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectPropertyReprRenderer.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectPropertyReprRenderer.java
@@ -28,7 +28,6 @@ import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet;
-import org.apache.isis.core.metamodel.facets.object.title.TitleFacet;
import org.apache.isis.core.metamodel.facets.object.value.ValueFacet;
import org.apache.isis.core.metamodel.facets.value.bigdecimal.BigDecimalValueFacet;
import org.apache.isis.core.metamodel.facets.value.biginteger.BigIntegerValueFacet;
@@ -47,7 +46,7 @@ import lombok.val;
public class ObjectPropertyReprRenderer
extends AbstractObjectMemberReprRenderer<ObjectPropertyReprRenderer, OneToOneAssociation> {
- public ObjectPropertyReprRenderer(IResourceContext context) {
+ public ObjectPropertyReprRenderer(final IResourceContext context) {
this(context, null, null, JsonRepresentation.newMap());
}
@@ -87,7 +86,9 @@ extends AbstractObjectMemberReprRenderer<ObjectPropertyReprRenderer, OneToOneAss
val valueAdapterIfAny = objectMember.get(objectAdapter, getInteractionInitiatedBy());
// use the runtime type if we have a value, else the compile time type of the member otherwise
- val spec = valueAdapterIfAny != null? valueAdapterIfAny.getSpecification(): objectMember.getSpecification();
+ val spec = valueAdapterIfAny != null
+ ? valueAdapterIfAny.getSpecification()
+ : objectMember.getSpecification();
val valueFacet = spec.getFacet(ValueFacet.class);
if (valueFacet != null) {
@@ -125,34 +126,38 @@ extends AbstractObjectMemberReprRenderer<ObjectPropertyReprRenderer, OneToOneAss
final NullNode value = NullNode.getInstance();
representation.mapPut("value", value);
return value;
- } else {
- final TitleFacet titleFacet = spec.getFacet(TitleFacet.class);
- final String title = titleFacet.title(valueAdapterIfAny);
-
- final LinkBuilder valueLinkBuilder = DomainObjectReprRenderer.newLinkToBuilder(resourceContext, Rel.VALUE, valueAdapterIfAny).withTitle(title);
- if(eagerlyRender) {
- final DomainObjectReprRenderer renderer =
- new DomainObjectReprRenderer(resourceContext, linkFollower, JsonRepresentation.newMap());
- renderer.with(valueAdapterIfAny);
- if(mode.isEventSerialization()) {
- renderer.asEventSerialization();
- }
+ }
+
+ val valueAdapter = valueAdapterIfAny;
- valueLinkBuilder.withValue(renderer.render());
+ final String title = valueAdapter.getTitle();
+
+ final LinkBuilder valueLinkBuilder = DomainObjectReprRenderer
+ .newLinkToBuilder(resourceContext, Rel.VALUE, valueAdapterIfAny).withTitle(title);
+ if(eagerlyRender) {
+ final DomainObjectReprRenderer renderer =
+ new DomainObjectReprRenderer(resourceContext, linkFollower, JsonRepresentation.newMap());
+ renderer.with(valueAdapter);
+ if(mode.isEventSerialization()) {
+ renderer.asEventSerialization();
}
- final JsonRepresentation valueJsonRepr = valueLinkBuilder.build();
- representation.mapPut("value", valueJsonRepr);
- return valueJsonRepr;
+ valueLinkBuilder.withValue(renderer.render());
}
+
+ final JsonRepresentation valueJsonRepr = valueLinkBuilder.build();
+ representation.mapPut("value", valueJsonRepr);
+ return valueJsonRepr;
+
}
private boolean renderEagerly() {
final DefaultViewFacet defaultViewFacet = objectMember.getFacet(DefaultViewFacet.class);
- return defaultViewFacet != null && Objects.equals(defaultViewFacet.value(), "table");
+ return defaultViewFacet != null
+ && Objects.equals(defaultViewFacet.value(), "table");
}
- private static <T extends Facet> T getFacet(Class<T> facetType, FacetHolder... holders) {
+ private static <T extends Facet> T getFacet(final Class<T> facetType, final FacetHolder... holders) {
for (FacetHolder holder : holders) {
if(holder == null) {
continue;