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/04/07 09:43:13 UTC
[isis] branch master updated: ISIS-2994: further remove direct uses of facets
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 1f9d2149c3 ISIS-2994: further remove direct uses of facets
1f9d2149c3 is described below
commit 1f9d2149c3be60df94fe763db6fb4c11306ff8bd
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Apr 7 11:43:05 2022 +0200
ISIS-2994: further remove direct uses of facets
---
.../apache/isis/core/metamodel/util/Facets.java | 81 +++++++++++++++++-----
.../javafx/ui/components/UiComponentFactoryFx.java | 7 +-
.../ui/components/collections/TableViewFx.java | 16 ++---
.../objectref/ObjectReferenceFieldFactory.java | 7 +-
.../common/model/action/HasManagedAction.java | 12 ++--
.../viewer/common/model/feature/ScalarUiModel.java | 24 +------
.../common/model/gridlayout/UiGridLayout.java | 10 +--
.../common/model/menu/MenuUiModelProvider.java | 17 ++---
.../AbstractObjectMemberReprRenderer.java | 6 +-
.../domainobjects/DomainObjectReprRenderer.java | 24 +++----
.../rendering/domainobjects/MemberType.java | 12 ++--
.../rendering/domainobjects/MutatorSpec.java | 30 ++++----
.../domainobjects/ObjectAndActionInvocation.java | 9 ++-
.../ObjectCollectionReprRenderer.java | 31 ++++-----
.../domainobjects/ObjectPropertyReprRenderer.java | 44 +++---------
.../domaintypes/ActionDescriptionReprRenderer.java | 7 +-
.../ActionParameterDescriptionReprRenderer.java | 8 +--
.../PropertyDescriptionReprRenderer.java | 7 +-
.../entity/collection/EntityCollectionPanel.java | 2 +-
.../ui/components/scalars/ScalarPanelAbstract.java | 2 +-
.../viewer/wicket/ui/pages/entity/EntityPage.java | 2 +-
21 files changed, 161 insertions(+), 197 deletions(-)
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/Facets.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/Facets.java
index ecbe6668a6..3ba4cb3cd8 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/Facets.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/Facets.java
@@ -26,12 +26,14 @@ import java.util.stream.Stream;
import org.springframework.lang.Nullable;
import org.apache.isis.applib.annotation.BookmarkPolicy;
+import org.apache.isis.applib.annotation.DomainServiceLayout.MenuBar;
import org.apache.isis.applib.annotation.LabelPosition;
import org.apache.isis.applib.annotation.PromptStyle;
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.applib.layout.grid.bootstrap.BSGrid;
import org.apache.isis.commons.collections.Can;
import org.apache.isis.commons.internal.base._Casts;
+import org.apache.isis.commons.internal.base._NullSafe;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
@@ -43,6 +45,7 @@ import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
import org.apache.isis.core.metamodel.facets.object.autocomplete.AutoCompleteFacet;
import org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet;
import org.apache.isis.core.metamodel.facets.object.domainservice.DomainServiceFacet;
+import org.apache.isis.core.metamodel.facets.object.domainservicelayout.DomainServiceLayoutFacet;
import org.apache.isis.core.metamodel.facets.object.grid.GridFacet;
import org.apache.isis.core.metamodel.facets.object.icon.IconFacet;
import org.apache.isis.core.metamodel.facets.object.mixin.MixinFacet;
@@ -50,6 +53,9 @@ import org.apache.isis.core.metamodel.facets.object.projection.ProjectionFacet;
import org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet;
import org.apache.isis.core.metamodel.facets.object.value.ValueFacet;
import org.apache.isis.core.metamodel.facets.objectvalue.daterenderedadjust.DateRenderAdjustFacet;
+import org.apache.isis.core.metamodel.facets.objectvalue.digits.MaxFractionalDigitsFacet;
+import org.apache.isis.core.metamodel.facets.objectvalue.digits.MaxTotalDigitsFacet;
+import org.apache.isis.core.metamodel.facets.objectvalue.fileaccept.FileAcceptFacet;
import org.apache.isis.core.metamodel.facets.objectvalue.labelat.LabelAtFacet;
import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxLengthFacet;
import org.apache.isis.core.metamodel.facets.objectvalue.multiline.MultiLineFacet;
@@ -87,14 +93,14 @@ public final class Facets {
.orElseGet(OptionalInt::empty);
}
- public Optional<BookmarkPolicy> bookmarkPolicy(final @Nullable ObjectSpecification objectSpec) {
- return Optional.ofNullable(objectSpec)
+ public Optional<BookmarkPolicy> bookmarkPolicy(final @Nullable FacetHolder facetHolder) {
+ return Optional.ofNullable(facetHolder)
.flatMap(spec->spec.lookupFacet(BookmarkPolicyFacet.class))
.map(BookmarkPolicyFacet::value);
}
- public Predicate<ObjectSpecification> bookmarkPolicyMatches(final Predicate<BookmarkPolicy> matcher) {
- return feature->Facets.bookmarkPolicy(feature)
+ public Predicate<FacetHolder> bookmarkPolicyMatches(final Predicate<BookmarkPolicy> matcher) {
+ return facetHolder->Facets.bookmarkPolicy(facetHolder)
.map(matcher::test)
.orElse(false);
}
@@ -110,6 +116,10 @@ public final class Facets {
return bootstrapGrid(objectSpec, null);
}
+ public boolean collectionIsPresent(final ObjectSpecification objectSpec) {
+ return objectSpec.containsFacet(CollectionFacet.class);
+ }
+
//XXX could be moved to ManagedObject directly, there be an utility already under a different name
public Stream<ManagedObject> collectionStream(final @Nullable ManagedObject collection) {
return CollectionFacet.streamAdapters(collection);
@@ -123,9 +133,9 @@ public final class Facets {
.orElseGet(Stream::empty);
}
- public Optional<String> cssClassFor(
- final FacetHolder objectSpec, final ManagedObject objectAdapter) {
- return objectSpec.lookupFacet(CssClassFacet.class)
+ public Optional<String> cssClass(
+ final FacetHolder facetHolder, final ManagedObject objectAdapter) {
+ return facetHolder.lookupFacet(CssClassFacet.class)
.map(cssClassFacet->cssClassFacet.cssClass(objectAdapter));
}
@@ -150,6 +160,20 @@ public final class Facets {
.map(DefaultViewFacet::value);
}
+ public boolean domainServiceIsPresent(final ObjectSpecification objectSpec) {
+ return objectSpec.containsFacet(DomainServiceFacet.class);
+ }
+
+ public Optional<MenuBar> domainServiceLayoutMenuBar(final ObjectSpecification objectSpec) {
+ return objectSpec.lookupFacet(DomainServiceLayoutFacet.class)
+ .map(DomainServiceLayoutFacet::getMenuBar);
+ }
+
+ public Optional<String> fileAccept(final ObjectFeature feature) {
+ return feature.lookupFacet(FileAcceptFacet.class)
+ .map(FileAcceptFacet::value);
+ }
+
public void gridPreload(
final ObjectSpecification objectSpec, final ManagedObject objectAdapter) {
objectSpec.lookupFacet(GridFacet.class)
@@ -201,14 +225,46 @@ public final class Facets {
.orElse("label-left");
}
- public OptionalInt maxLength(final ObjectSpecification objectSpec) {
- return objectSpec
+ public OptionalInt maxFractionalDigits(final FacetHolder facetHolder) {
+ return facetHolder.lookupFacet(MaxFractionalDigitsFacet.class)
+ .map(MaxFractionalDigitsFacet::getMaxFractionalDigits)
+ .map(OptionalInt::of)
+ .orElseGet(OptionalInt::empty);
+ }
+
+ public OptionalInt maxFractionalDigits(final @Nullable Iterable<FacetHolder> facetHolders) {
+ return _NullSafe.stream(facetHolders)
+ .map(Facets::maxFractionalDigits)
+ .findFirst()
+ .orElseGet(OptionalInt::empty);
+ }
+
+ public OptionalInt maxLength(final FacetHolder facetHolder) {
+ return facetHolder
.lookupFacet(MaxLengthFacet.class)
.map(MaxLengthFacet::value)
.map(OptionalInt::of)
.orElseGet(OptionalInt::empty);
}
+ public OptionalInt maxTotalDigits(final FacetHolder facetHolder) {
+ return facetHolder.lookupFacet(MaxTotalDigitsFacet.class)
+ .map(MaxTotalDigitsFacet::getMaxTotalDigits)
+ .map(OptionalInt::of)
+ .orElseGet(OptionalInt::empty);
+ }
+
+ public OptionalInt maxTotalDigits(final @Nullable Iterable<FacetHolder> facetHolders) {
+ return _NullSafe.stream(facetHolders)
+ .map(Facets::maxTotalDigits)
+ .findFirst()
+ .orElseGet(OptionalInt::empty);
+ }
+
+ public boolean mixinIsPresent(final ObjectSpecification objectSpec) {
+ return objectSpec.containsFacet(MixinFacet.class);
+ }
+
public boolean multilineIsPresent(final ObjectFeature feature) {
return feature.lookupNonFallbackFacet(MultiLineFacet.class)
.isPresent();
@@ -269,13 +325,6 @@ public final class Facets {
return objectSpec.containsFacet(ValueFacet.class);
}
- public boolean domainServiceIsPresent(final ObjectSpecification objectSpec) {
- return objectSpec.containsFacet(DomainServiceFacet.class);
- }
-
- public boolean mixinIsPresent(final ObjectSpecification objectSpec) {
- return objectSpec.containsFacet(MixinFacet.class);
- }
}
diff --git a/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/components/UiComponentFactoryFx.java b/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/components/UiComponentFactoryFx.java
index 434227e43c..50ad0a1ad7 100644
--- a/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/components/UiComponentFactoryFx.java
+++ b/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/components/UiComponentFactoryFx.java
@@ -28,8 +28,8 @@ import org.springframework.stereotype.Service;
import org.apache.isis.applib.annotation.LabelPosition;
import org.apache.isis.commons.handler.ChainOfResponsibility;
import org.apache.isis.core.config.environment.IsisSystemEnvironment;
-import org.apache.isis.core.metamodel.facets.objectvalue.labelat.LabelAtFacet;
import org.apache.isis.core.metamodel.interactions.managed.ManagedMember;
+import org.apache.isis.core.metamodel.util.Facets;
import org.apache.isis.incubator.viewer.javafx.model.context.UiContextFx;
import org.apache.isis.viewer.common.model.components.UiComponentFactory;
import org.apache.isis.viewer.common.model.decorator.prototyping.PrototypingUiModel;
@@ -112,9 +112,8 @@ public class UiComponentFactoryFx implements UiComponentFactory<Node, Node> {
@Override
public LabelAndPosition<Node> labelFor(final ComponentRequest request) {
- val labelPosition = request.getManagedFeature().getFacet(LabelAtFacet.class)
- .map(LabelAtFacet::label)
- .orElse(LabelPosition.NOT_SPECIFIED);
+ val labelPosition = Facets.labelAt(request.getManagedFeature().getMetaModel())
+ .orElse(LabelPosition.LEFT);
val uiLabel = new Label(request.getFriendlyName());
return LabelAndPosition.of(labelPosition, uiLabel);
}
diff --git a/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/components/collections/TableViewFx.java b/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/components/collections/TableViewFx.java
index 85a7ce1021..84f6a1dc12 100644
--- a/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/components/collections/TableViewFx.java
+++ b/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/components/collections/TableViewFx.java
@@ -28,7 +28,6 @@ import org.apache.isis.applib.services.bookmark.Oid;
import org.apache.isis.commons.collections.Can;
import org.apache.isis.commons.internal.base._NullSafe;
import org.apache.isis.commons.internal.collections._Multimaps;
-import org.apache.isis.core.metamodel.facets.collections.CollectionFacet;
import org.apache.isis.core.metamodel.interactions.managed.ManagedCollection;
import org.apache.isis.core.metamodel.spec.ManagedObject;
import org.apache.isis.core.metamodel.spec.ManagedObjects;
@@ -36,19 +35,21 @@ import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.MixedIn;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
+import org.apache.isis.core.metamodel.util.Facets;
import org.apache.isis.incubator.viewer.javafx.model.context.UiContextFx;
import org.apache.isis.incubator.viewer.javafx.model.util._fx;
-import javafx.scene.control.Button;
-import javafx.scene.control.Label;
-import javafx.scene.control.TableView;
-import javafx.scene.layout.VBox;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import lombok.NonNull;
import lombok.val;
import lombok.extern.log4j.Log4j2;
+import javafx.scene.control.Button;
+import javafx.scene.control.Label;
+import javafx.scene.control.TableView;
+import javafx.scene.layout.VBox;
+
@NoArgsConstructor(access = AccessLevel.PRIVATE)
@Log4j2
public class TableViewFx extends VBox {
@@ -69,10 +70,7 @@ public class TableViewFx extends VBox {
final @NonNull ManagedObject collection,
final @NonNull Where where) {
- val collectionFacet = collection.getSpecification()
- .getFacet(CollectionFacet.class);
-
- val objects = collectionFacet.stream(collection)
+ val objects = Facets.collectionStream(collection)
.collect(Can.toCan());
return ManagedObjects.commonSpecification(objects)
diff --git a/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/components/objectref/ObjectReferenceFieldFactory.java b/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/components/objectref/ObjectReferenceFieldFactory.java
index 76e929806a..4fd81a8e93 100644
--- a/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/components/objectref/ObjectReferenceFieldFactory.java
+++ b/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/components/objectref/ObjectReferenceFieldFactory.java
@@ -20,8 +20,6 @@ package org.apache.isis.incubator.viewer.javafx.ui.components.objectref;
import javax.inject.Inject;
-import org.springframework.core.annotation.Order;
-
import org.apache.isis.applib.annotation.PriorityPrecedence;
import org.apache.isis.core.metamodel.interactions.managed.ManagedParameter;
import org.apache.isis.core.metamodel.interactions.managed.ManagedProperty;
@@ -40,14 +38,13 @@ import javafx.scene.control.Label;
public class ObjectReferenceFieldFactory implements UiComponentHandlerFx {
@Override
- public boolean isHandling(ComponentRequest request) {
- //return request.hasFeatureFacet(StringValueFacet.class);
+ public boolean isHandling(final ComponentRequest request) {
return request.getFeatureTypeSpec().isEntityOrViewModelOrAbstract()
|| request.getFeatureType().isEnum();
}
@Override
- public Node handle(ComponentRequest request) {
+ public Node handle(final ComponentRequest request) {
//TODO 1) move all the logic that is in the request to the underlying ManagedProperty
// 2) pass the ManagedProperty over with the request object
diff --git a/viewers/common/src/main/java/org/apache/isis/viewer/common/model/action/HasManagedAction.java b/viewers/common/src/main/java/org/apache/isis/viewer/common/model/action/HasManagedAction.java
index 414d416bd4..b2da4ac0bc 100644
--- a/viewers/common/src/main/java/org/apache/isis/viewer/common/model/action/HasManagedAction.java
+++ b/viewers/common/src/main/java/org/apache/isis/viewer/common/model/action/HasManagedAction.java
@@ -24,12 +24,12 @@ import java.util.function.Predicate;
import org.apache.isis.applib.Identifier;
import org.apache.isis.applib.annotation.ActionLayout;
import org.apache.isis.applib.annotation.BookmarkPolicy;
-import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
import org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet;
import org.apache.isis.core.metamodel.interactions.managed.ActionInteractionHead;
import org.apache.isis.core.metamodel.interactions.managed.ManagedAction;
import org.apache.isis.core.metamodel.spec.ManagedObject;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
+import org.apache.isis.core.metamodel.util.Facets;
import org.apache.isis.viewer.common.model.decorator.disable.DisablingUiModel;
import org.apache.isis.viewer.common.model.decorator.icon.FontAwesomeUiModel;
@@ -79,11 +79,10 @@ public interface HasManagedAction {
*/
default boolean isBookmarkable() {
val action = getAction();
+
return action.getSemantics().isSafeInNature()
- && action.lookupFacet(BookmarkPolicyFacet.class)
- .map(BookmarkPolicyFacet::value)
- .map(bookmarkPolicy -> bookmarkPolicy == BookmarkPolicy.AS_ROOT)
- .orElse(false);
+ && Facets.bookmarkPolicyMatches(BookmarkPolicy.AS_ROOT::equals)
+ .test(action);
}
default Identifier getFeatureIdentifier() {
@@ -100,8 +99,7 @@ public interface HasManagedAction {
}
default Optional<String> getAdditionalCssClass() {
- return getAction().lookupFacet(CssClassFacet.class)
- .map(cssClassFacet->cssClassFacet.cssClass(getManagedAction().getOwner()));
+ return Facets.cssClass(getAction(), getActionOwner());
}
default ActionLayout.Position getPosition() {
diff --git a/viewers/common/src/main/java/org/apache/isis/viewer/common/model/feature/ScalarUiModel.java b/viewers/common/src/main/java/org/apache/isis/viewer/common/model/feature/ScalarUiModel.java
index 9278df6379..d1e39c7d4d 100644
--- a/viewers/common/src/main/java/org/apache/isis/viewer/common/model/feature/ScalarUiModel.java
+++ b/viewers/common/src/main/java/org/apache/isis/viewer/common/model/feature/ScalarUiModel.java
@@ -18,16 +18,13 @@
*/
package org.apache.isis.viewer.common.model.feature;
-import java.math.BigDecimal;
import java.util.Optional;
import org.apache.isis.commons.collections.Can;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facets.objectvalue.digits.MaxTotalDigitsFacet;
-import org.apache.isis.core.metamodel.facets.objectvalue.fileaccept.FileAcceptFacet;
-import org.apache.isis.core.metamodel.facets.objectvalue.typicallen.TypicalLengthFacet;
import org.apache.isis.core.metamodel.spec.ManagedObject;
import org.apache.isis.core.metamodel.spec.feature.ObjectFeature;
+import org.apache.isis.core.metamodel.util.Facets;
public interface ScalarUiModel {
@@ -54,25 +51,8 @@ public interface ScalarUiModel {
return getMetaModel().getDescription(this::getOwner);
}
- /**
- * for {@link BigDecimal}s only.
- *
- * @see #getLength()
- */
- default Integer getLength() {
- return getMetaModel().lookupFacet(MaxTotalDigitsFacet.class)
- .map(MaxTotalDigitsFacet::getMaxTotalDigits)
- .orElse(null);
- }
-
- default Integer getTypicalLength() {
- final TypicalLengthFacet facet = getMetaModel().getFacet(TypicalLengthFacet.class);
- return facet != null? facet.value() : null;
- }
-
default String getFileAccept() {
- final FileAcceptFacet facet = getMetaModel().getFacet(FileAcceptFacet.class);
- return facet != null? facet.value(): null;
+ return Facets.fileAccept(getMetaModel()).orElse(null);
}
int getAutoCompleteMinLength();
diff --git a/viewers/common/src/main/java/org/apache/isis/viewer/common/model/gridlayout/UiGridLayout.java b/viewers/common/src/main/java/org/apache/isis/viewer/common/model/gridlayout/UiGridLayout.java
index 7777f9c337..9e91318b15 100644
--- a/viewers/common/src/main/java/org/apache/isis/viewer/common/model/gridlayout/UiGridLayout.java
+++ b/viewers/common/src/main/java/org/apache/isis/viewer/common/model/gridlayout/UiGridLayout.java
@@ -35,10 +35,10 @@ import org.apache.isis.applib.layout.grid.bootstrap.BSTabGroup;
import org.apache.isis.commons.internal.base._Lazy;
import org.apache.isis.commons.internal.base._NullSafe;
import org.apache.isis.commons.internal.collections._Sets;
-import org.apache.isis.core.metamodel.facets.object.grid.GridFacet;
import org.apache.isis.core.metamodel.spec.ManagedObject;
import org.apache.isis.core.metamodel.spec.feature.MixedIn;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
+import org.apache.isis.core.metamodel.util.Facets;
import lombok.NonNull;
import lombok.RequiredArgsConstructor;
@@ -80,12 +80,8 @@ public class UiGridLayout {
}
private Optional<BSGrid> initGridData() {
- return managedObject.getSpecification().lookupFacet(GridFacet.class)
- .map(gridFacet->gridFacet.getGrid(managedObject))
- .filter(grid->grid instanceof BSGrid)
- .map(BSGrid.class::cast)
- .map(this::attachAssociatedActions)
- ;
+ return Facets.bootstrapGrid(managedObject.getSpecification(), managedObject)
+ .map(this::attachAssociatedActions);
}
//TODO[refactor] this should not be necessary here, the GridFacet should already have done that for us
diff --git a/viewers/common/src/main/java/org/apache/isis/viewer/common/model/menu/MenuUiModelProvider.java b/viewers/common/src/main/java/org/apache/isis/viewer/common/model/menu/MenuUiModelProvider.java
index 0923f0a793..310b766d3f 100644
--- a/viewers/common/src/main/java/org/apache/isis/viewer/common/model/menu/MenuUiModelProvider.java
+++ b/viewers/common/src/main/java/org/apache/isis/viewer/common/model/menu/MenuUiModelProvider.java
@@ -28,11 +28,9 @@ import org.springframework.stereotype.Service;
import org.apache.isis.applib.annotation.DomainServiceLayout;
import org.apache.isis.core.metamodel.context.MetaModelContext;
-import org.apache.isis.core.metamodel.facets.object.domainservicelayout.DomainServiceLayoutFacet;
import org.apache.isis.core.metamodel.spec.ManagedObject;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-
-import lombok.val;
+import org.apache.isis.core.metamodel.util.Facets;
@Service
public class MenuUiModelProvider {
@@ -54,14 +52,11 @@ public class MenuUiModelProvider {
}
private static Predicate<ManagedObject> with(final DomainServiceLayout.MenuBar menuBarSelect) {
- return (ManagedObject adapter) -> {
- val domainServiceLayoutFacet = adapter.getSpecification()
- .getFacet(DomainServiceLayoutFacet.class);
- return (domainServiceLayoutFacet != null
- && domainServiceLayoutFacet.getMenuBar() == menuBarSelect)
- || (domainServiceLayoutFacet == null
- && menuBarSelect == DomainServiceLayout.MenuBar.PRIMARY);
- };
+ return (final ManagedObject adapter) ->
+
+ Facets.domainServiceLayoutMenuBar(adapter.getSpecification())
+ .orElse(DomainServiceLayout.MenuBar.PRIMARY)
+ .equals(menuBarSelect);
}
}
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/AbstractObjectMemberReprRenderer.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/AbstractObjectMemberReprRenderer.java
index 788f58ee86..57877e2510 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/AbstractObjectMemberReprRenderer.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/AbstractObjectMemberReprRenderer.java
@@ -222,7 +222,7 @@ extends ReprRendererAbstract<ManagedMember> {
* mutators}.
*/
protected void addLinkFor(final @NonNull MutatorSpec mutatorSpec) {
- if (!hasMemberFacet(mutatorSpec.mutatorFacetType)) {
+ if (!mutatorSpec.appliesTo(objectMember)) {
return;
}
final JsonRepresentation arguments = mutatorArgs(mutatorSpec);
@@ -304,10 +304,6 @@ extends ReprRendererAbstract<ManagedMember> {
return objectMember.getElementType().getFacet(facetType);
}
- protected boolean hasMemberFacet(final Class<? extends Facet> facetType) {
- return objectMember.getFacet(facetType) != null;
- }
-
protected Consent usability() {
return objectMember.isUsable(objectAdapter, getInteractionInitiatedBy(), where);
}
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 e6ef40dec5..3338030ba1 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
@@ -23,21 +23,19 @@ import java.util.Optional;
import java.util.stream.Collectors;
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.interactions.managed.ManagedAction;
import org.apache.isis.core.metamodel.interactions.managed.ManagedCollection;
import org.apache.isis.core.metamodel.interactions.managed.ManagedProperty;
import org.apache.isis.core.metamodel.services.ServiceUtil;
import org.apache.isis.core.metamodel.spec.ManagedObject;
import org.apache.isis.core.metamodel.spec.ManagedObjects;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.MixedIn;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
+import org.apache.isis.core.metamodel.util.Facets;
import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
import org.apache.isis.viewer.restfulobjects.applib.Rel;
import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
@@ -224,15 +222,11 @@ extends ReprRendererAbstract<ManagedObject> {
getExtensions().mapPut("isService", isService);
getExtensions().mapPut("isPersistent", ManagedObjects.isIdentifiable(objectAdapter));
if(isService) {
- final ObjectSpecification objectSpec = objectAdapter.getSpecification();
- final DomainServiceLayoutFacet layoutFacet =
- objectSpec.getFacet(DomainServiceLayoutFacet.class);
- if(layoutFacet != null) {
- final DomainServiceLayout.MenuBar menuBar = layoutFacet.getMenuBar();
- if(menuBar != null) {
- getExtensions().mapPut("menuBar", menuBar);
- }
- }
+
+ Facets.domainServiceLayoutMenuBar(objectAdapter.getSpecification())
+ .ifPresent(menuBar->
+ getExtensions().mapPut("menuBar", menuBar));
+
}
}
@@ -244,9 +238,9 @@ extends ReprRendererAbstract<ManagedObject> {
final LinkFollowSpecs linkFollower = getLinkFollowSpecs().follow("links");
if (linkFollower.matches(link)) {
- final DomainObjectReprRenderer renderer =
- new DomainObjectReprRenderer(getResourceContext(), linkFollower, JsonRepresentation.newMap());
- renderer.with(objectAdapter);
+ val renderer =
+ new DomainObjectReprRenderer(getResourceContext(), linkFollower, JsonRepresentation.newMap())
+ .with(objectAdapter);
link.mapPut("value", renderer.render());
}
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/MemberType.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/MemberType.java
index 436cdbf307..aefcdc1817 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/MemberType.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/MemberType.java
@@ -24,10 +24,8 @@ import java.util.Map;
import org.apache.isis.applib.util.Enums;
import org.apache.isis.commons.internal.collections._Maps;
import org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet;
-import org.apache.isis.core.metamodel.facets.actions.validate.ActionValidationFacet;
import org.apache.isis.core.metamodel.facets.properties.update.clear.PropertyClearFacet;
import org.apache.isis.core.metamodel.facets.properties.update.modify.PropertySetterFacet;
-import org.apache.isis.core.metamodel.facets.properties.validating.PropertyValidateFacet;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
import org.apache.isis.core.metamodel.spec.feature.ObjectFeature;
import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
@@ -43,8 +41,8 @@ public enum MemberType {
PROPERTY("properties/", RepresentationType.OBJECT_PROPERTY,
_Maps.unmodifiable(
- "modify", MutatorSpec.of(Rel.MODIFY, PropertyValidateFacet.class, PropertySetterFacet.class, RestfulHttpMethod.PUT, BodyArgs.ONE),
- "clear", MutatorSpec.of(Rel.CLEAR, PropertyValidateFacet.class, PropertyClearFacet.class, RestfulHttpMethod.DELETE, BodyArgs.NONE))),
+ "modify", MutatorSpec.of(Rel.MODIFY, PropertySetterFacet.class, RestfulHttpMethod.PUT, BodyArgs.ONE),
+ "clear", MutatorSpec.of(Rel.CLEAR, PropertyClearFacet.class, RestfulHttpMethod.DELETE, BodyArgs.NONE))),
/**
* {@link #getMutators()} are empty}
*/
@@ -56,9 +54,9 @@ public enum MemberType {
*/
ACTION("actions/", RepresentationType.OBJECT_ACTION,
_Maps.unmodifiable(
- "invokeQueryOnly", MutatorSpec.of(Rel.INVOKE, ActionValidationFacet.class, ActionInvocationFacet.class, RestfulHttpMethod.GET, BodyArgs.MANY, "invoke"),
- "invokeIdempotent", MutatorSpec.of(Rel.INVOKE, ActionValidationFacet.class, ActionInvocationFacet.class, RestfulHttpMethod.PUT, BodyArgs.MANY, "invoke"),
- "invoke", MutatorSpec.of(Rel.INVOKE, ActionValidationFacet.class, ActionInvocationFacet.class, RestfulHttpMethod.POST, BodyArgs.MANY, "invoke")));
+ "invokeQueryOnly", MutatorSpec.of(Rel.INVOKE, ActionInvocationFacet.class, RestfulHttpMethod.GET, BodyArgs.MANY, "invoke"),
+ "invokeIdempotent", MutatorSpec.of(Rel.INVOKE, ActionInvocationFacet.class, RestfulHttpMethod.PUT, BodyArgs.MANY, "invoke"),
+ "invoke", MutatorSpec.of(Rel.INVOKE, ActionInvocationFacet.class, RestfulHttpMethod.POST, BodyArgs.MANY, "invoke")));
@Getter private final String urlPart;
@Getter private final String name;
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/MutatorSpec.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/MutatorSpec.java
index b8956b891f..a5e233eee2 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/MutatorSpec.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/MutatorSpec.java
@@ -19,33 +19,31 @@
package org.apache.isis.viewer.restfulobjects.rendering.domainobjects;
import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
import org.apache.isis.viewer.restfulobjects.applib.Rel;
import org.apache.isis.viewer.restfulobjects.applib.RestfulHttpMethod;
-public class MutatorSpec {
+import lombok.RequiredArgsConstructor;
- public static MutatorSpec of(final Rel rel, final Class<? extends Facet> validationFacetType, final Class<? extends Facet> mutatorFacetType, final RestfulHttpMethod httpMethod, final BodyArgs argSpec) {
- return of(rel, validationFacetType, mutatorFacetType, httpMethod, argSpec, null);
- }
+@RequiredArgsConstructor(staticName = "of")
+public final class MutatorSpec {
- public static MutatorSpec of(final Rel rel, final Class<? extends Facet> validationFacetType, final Class<? extends Facet> mutatorFacetType, final RestfulHttpMethod httpMethod, final BodyArgs argSpec, final String suffix) {
- return new MutatorSpec(rel, validationFacetType, mutatorFacetType, httpMethod, argSpec, suffix);
+ public static MutatorSpec of(
+ final Rel rel,
+ final Class<? extends Facet> mutatorFacetType,
+ final RestfulHttpMethod httpMethod,
+ final BodyArgs argSpec) {
+ return of(rel, mutatorFacetType, httpMethod, argSpec, null);
}
public final Rel rel;
- public final Class<? extends Facet> validationFacetType;
- public final Class<? extends Facet> mutatorFacetType;
+ private final Class<? extends Facet> mutatorFacetType;
public final RestfulHttpMethod httpMethod;
- public final String suffix;
public final BodyArgs arguments;
+ public final String suffix;
- private MutatorSpec(final Rel rel, final Class<? extends Facet> validationFacetType, final Class<? extends Facet> mutatorFacetType, final RestfulHttpMethod httpMethod, final BodyArgs bodyArgs, final String suffix) {
- this.rel = rel;
- this.validationFacetType = validationFacetType;
- this.mutatorFacetType = mutatorFacetType;
- this.httpMethod = httpMethod;
- this.arguments = bodyArgs;
- this.suffix = suffix;
+ public boolean appliesTo(final ObjectMember objectMember) {
+ return objectMember.containsFacet(mutatorFacetType);
}
}
\ No newline at end of file
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectAndActionInvocation.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectAndActionInvocation.java
index 4ead616628..50bd73f2dc 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectAndActionInvocation.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectAndActionInvocation.java
@@ -22,13 +22,12 @@ import java.util.stream.Stream;
import org.apache.isis.commons.collections.Can;
import org.apache.isis.commons.internal.base._Lazy;
-import org.apache.isis.core.metamodel.facets.collections.CollectionFacet;
-import org.apache.isis.core.metamodel.facets.object.value.ValueFacet;
import org.apache.isis.core.metamodel.interactions.managed.ActionInteraction;
import org.apache.isis.core.metamodel.spec.ManagedObject;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.PackedManagedObject;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
+import org.apache.isis.core.metamodel.util.Facets;
import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
import org.apache.isis.viewer.restfulobjects.applib.domainobjects.ActionResultRepresentation;
@@ -128,16 +127,16 @@ public class ObjectAndActionInvocation {
private final _Lazy<Can<ManagedObject>> elementAdapters = _Lazy.threadSafe(this::initElementAdapters);
private Can<ManagedObject> initElementAdapters() {
- return CollectionFacet.streamAdapters(returnedAdapter).collect(Can.toCan());
+ return Facets.collectionStream(returnedAdapter).collect(Can.toCan());
}
//TODO[2449] need to check whether that strategy holds consistently
private static boolean isScalarValue(final @NonNull ObjectSpecification spec) {
- return spec.containsFacet(ValueFacet.class);
+ return Facets.valueIsPresent(spec);
}
private static boolean isVector(final @NonNull ObjectSpecification spec) {
- return spec.containsFacet(CollectionFacet.class);
+ return Facets.collectionIsPresent(spec);
}
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectCollectionReprRenderer.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectCollectionReprRenderer.java
index 286028b70f..0c04ec5e82 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectCollectionReprRenderer.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectCollectionReprRenderer.java
@@ -19,16 +19,14 @@
package org.apache.isis.viewer.restfulobjects.rendering.domainobjects;
import java.util.List;
-import java.util.Objects;
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.core.metamodel.facets.collections.CollectionFacet;
-import org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet;
import org.apache.isis.core.metamodel.interactions.managed.ManagedCollection;
-import org.apache.isis.core.metamodel.spec.ManagedObject;
import org.apache.isis.core.metamodel.spec.ManagedObjects;
import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
+import org.apache.isis.core.metamodel.util.Facets;
import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
import org.apache.isis.viewer.restfulobjects.applib.Rel;
import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
@@ -66,9 +64,15 @@ extends AbstractObjectMemberReprRenderer<OneToManyAssociation> {
renderMemberContent();
final LinkFollowSpecs followValue = getLinkFollowSpecs().follow("value");
- boolean eagerlyRender = resourceContext.honorUiHints() && renderEagerly() || !followValue.isTerminated();
-
- if ((mode.isInline() && eagerlyRender) || mode.isStandalone() || mode.isMutated() || mode.isEventSerialization() || !ManagedObjects.isIdentifiable(objectAdapter)) {
+ final boolean eagerlyRender = !followValue.isTerminated()
+ || (resourceContext.honorUiHints()
+ && Facets.defaultViewIsTable(objectMember));
+
+ if ((mode.isInline() && eagerlyRender)
+ || mode.isStandalone()
+ || mode.isMutated()
+ || mode.isEventSerialization()
+ || !ManagedObjects.isIdentifiable(objectAdapter)) {
addValue(followValue);
}
if(!mode.isEventSerialization()) {
@@ -82,11 +86,6 @@ extends AbstractObjectMemberReprRenderer<OneToManyAssociation> {
return representation;
}
- private boolean renderEagerly() {
- final DefaultViewFacet defaultViewFacet = objectMember.getFacet(DefaultViewFacet.class);
- return defaultViewFacet != null && Objects.equals(defaultViewFacet.value(), "table");
- }
-
// ///////////////////////////////////////////////////
// value
// ///////////////////////////////////////////////////
@@ -98,9 +97,10 @@ extends AbstractObjectMemberReprRenderer<OneToManyAssociation> {
}
final LinkFollowSpecs followHref = linkFollower.follow("href");
- boolean eagerlyRender = resourceContext.honorUiHints()
- && renderEagerly(valueAdapter)
- || !followHref.isTerminated();
+ final boolean eagerlyRender = !followHref.isTerminated()
+ || (resourceContext.honorUiHints()
+ && Facets.defaultViewIsTable(objectMember)
+ && resourceContext.canEagerlyRender(valueAdapter));
final List<JsonRepresentation> list = _Lists.newArrayList();
@@ -125,9 +125,6 @@ extends AbstractObjectMemberReprRenderer<OneToManyAssociation> {
representation.mapPut("value", list);
}
- private boolean renderEagerly(final ManagedObject valueAdapter) {
- return renderEagerly() && resourceContext.canEagerlyRender(valueAdapter);
- }
// ///////////////////////////////////////////////////
// details link
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 996bb8fc09..42d7c285fc 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
@@ -19,23 +19,18 @@
package org.apache.isis.viewer.restfulobjects.rendering.domainobjects;
import java.util.List;
-import java.util.Objects;
-import java.util.Optional;
import com.fasterxml.jackson.databind.node.NullNode;
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.commons.collections.Can;
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.value.ValueFacet;
-import org.apache.isis.core.metamodel.facets.objectvalue.digits.MaxFractionalDigitsFacet;
-import org.apache.isis.core.metamodel.facets.objectvalue.digits.MaxTotalDigitsFacet;
import org.apache.isis.core.metamodel.interactions.managed.ManagedProperty;
import org.apache.isis.core.metamodel.spec.ManagedObjects;
import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
+import org.apache.isis.core.metamodel.util.Facets;
import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
import org.apache.isis.viewer.restfulobjects.applib.Rel;
import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
@@ -104,13 +99,8 @@ extends AbstractObjectMemberReprRenderer<OneToOneAssociation> {
objectMember,
valueAdapterIfAny != null ? valueAdapterIfAny.getSpecification() : null);
- final int totalDigits = lookupFacet(MaxTotalDigitsFacet.class, facetHolders)
- .map(MaxTotalDigitsFacet::getMaxTotalDigits)
- .orElse(-1);
-
- final int scale = lookupFacet(MaxFractionalDigitsFacet.class, facetHolders)
- .map(MaxFractionalDigitsFacet::getMaxFractionalDigits)
- .orElse(-1);
+ final int totalDigits = Facets.maxTotalDigits(facetHolders).orElse(-1);
+ final int scale = Facets.maxFractionalDigits(facetHolders).orElse(-1);
format = String.format("big-decimal(%d,%d)", totalDigits, scale);
@@ -127,9 +117,11 @@ extends AbstractObjectMemberReprRenderer<OneToOneAssociation> {
resourceContext.suppressMemberExtensions());
}
- boolean eagerlyRender =
- (renderEagerly() && resourceContext.canEagerlyRender(valueAdapterIfAny))
- || (linkFollower != null && !linkFollower.isTerminated());
+ final boolean eagerlyRender =
+ (Facets.defaultViewIsTable(objectMember)
+ && resourceContext.canEagerlyRender(valueAdapterIfAny))
+ || (linkFollower != null
+ && !linkFollower.isTerminated());
if(valueAdapterIfAny == null) {
final NullNode value = NullNode.getInstance();
@@ -160,26 +152,6 @@ extends AbstractObjectMemberReprRenderer<OneToOneAssociation> {
}
- private boolean renderEagerly() {
- final DefaultViewFacet defaultViewFacet = objectMember.getFacet(DefaultViewFacet.class);
- return defaultViewFacet != null
- && Objects.equals(defaultViewFacet.value(), "table");
- }
-
- private static <T extends Facet> Optional<T> lookupFacet(
- final Class<T> facetType,
- final Can<FacetHolder> holders) {
- for (FacetHolder holder : holders) {
- final T facet = holder.getFacet(facetType);
- if(facet != null) {
- return Optional.of(facet);
- }
- }
- return Optional.empty();
- }
-
-
-
// ///////////////////////////////////////////////////
// details link
// ///////////////////////////////////////////////////
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/ActionDescriptionReprRenderer.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/ActionDescriptionReprRenderer.java
index 65f55caea3..16ef1f5306 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/ActionDescriptionReprRenderer.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/ActionDescriptionReprRenderer.java
@@ -18,7 +18,8 @@
*/
package org.apache.isis.viewer.restfulobjects.rendering.domaintypes;
-import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet;
+import java.util.Optional;
+
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
@@ -81,9 +82,7 @@ extends AbstractTypeMemberReprRenderer<ObjectAction> {
}
private void addLinkToElementTypeIfAny() {
- getObjectFeature()
- .lookupFacet(TypeOfFacet.class)
- .map(TypeOfFacet::valueSpec)
+ Optional.ofNullable(getObjectFeature().getElementType())
.ifPresent(typeOfSpec->
getLinks().arrayAdd(
DomainTypeReprRenderer
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/ActionParameterDescriptionReprRenderer.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/ActionParameterDescriptionReprRenderer.java
index e5ed1270ef..598c6dde41 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/ActionParameterDescriptionReprRenderer.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/ActionParameterDescriptionReprRenderer.java
@@ -19,10 +19,10 @@
package org.apache.isis.viewer.restfulobjects.rendering.domaintypes;
import org.apache.isis.commons.internal.exceptions._Exceptions;
-import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxLengthFacet;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
+import org.apache.isis.core.metamodel.util.Facets;
import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
import org.apache.isis.viewer.restfulobjects.applib.Rel;
import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
@@ -101,9 +101,9 @@ extends AbstractTypeFeatureReprRenderer<ObjectActionParameter> {
.orElseThrow(_Exceptions::unexpectedCodeReach));
representation.mapPut("number", getObjectFeature().getParameterIndex());
representation.mapPut("optional", getObjectFeature().isOptional());
- getObjectFeature()
- .lookupNonFallbackFacet(MaxLengthFacet.class)
- .ifPresent(maxLengthFacet->representation.mapPut("maxLength", maxLengthFacet.value()));
+
+ Facets.maxLength(getObjectFeature())
+ .ifPresent(maxLength->representation.mapPut("maxLength", maxLength));
}
@Override
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/PropertyDescriptionReprRenderer.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/PropertyDescriptionReprRenderer.java
index 621a1921ae..35ff6eed1a 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/PropertyDescriptionReprRenderer.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/PropertyDescriptionReprRenderer.java
@@ -18,9 +18,9 @@
*/
package org.apache.isis.viewer.restfulobjects.rendering.domaintypes;
-import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxLengthFacet;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
+import org.apache.isis.core.metamodel.util.Facets;
import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
import org.apache.isis.viewer.restfulobjects.applib.Rel;
import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
@@ -59,9 +59,8 @@ extends AbstractTypeMemberReprRenderer<OneToOneAssociation> {
@Override
protected void addPropertiesSpecificToFeature() {
representation.mapPut("optional", !getObjectFeature().isMandatory());
- getObjectFeature()
- .lookupNonFallbackFacet(MaxLengthFacet.class)
- .ifPresent(maxLengthFacet->representation.mapPut("maxLength", maxLengthFacet.value()));
+ Facets.maxLength(getObjectFeature())
+ .ifPresent(maxLength->representation.mapPut("maxLength", maxLength));
}
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collection/EntityCollectionPanel.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collection/EntityCollectionPanel.java
index 61f9efa973..6586747975 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collection/EntityCollectionPanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collection/EntityCollectionPanel.java
@@ -120,7 +120,7 @@ implements HasDynamicallyVisibleContent {
visible = true;
- Facets.cssClassFor(collectionMetaModel, objectAdapter)
+ Facets.cssClass(collectionMetaModel, objectAdapter)
.ifPresent(cssClass->Wkt.cssAppend(div, cssClass));
final CollectionPanel collectionPanel = newCollectionModel(ID_COLLECTION, collectionModel);
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
index 499f586429..92bea9f340 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
@@ -411,7 +411,7 @@ implements ScalarModelSubscriber {
Wkt.cssAppend(this, scalarModel.getCssClass());
- Facets.cssClassFor(scalarModel.getMetaModel(), scalarModel.getParentUiModel().getManagedObject())
+ Facets.cssClass(scalarModel.getMetaModel(), scalarModel.getParentUiModel().getManagedObject())
.ifPresent(cssClass->
Wkt.cssAppend(this, cssClass));
}
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
index 712ada3a98..2e636f7fab 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
@@ -185,7 +185,7 @@ public class EntityPage extends PageAbstract {
WebMarkupContainer entityPageContainer = new WebMarkupContainer("entityPageContainer");
Wkt.cssAppend(entityPageContainer, objectSpec.getFeatureIdentifier());
- Facets.cssClassFor(objectSpec, objectAdapter)
+ Facets.cssClass(objectSpec, objectAdapter)
.ifPresent(cssClass->
Wkt.cssAppend(entityPageContainer, cssClass)
);