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/05/28 05:24:45 UTC
[isis] branch master updated: ISIS-3063: adds ObjectSpecification.getAliases()
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 261e7aa134 ISIS-3063: adds ObjectSpecification.getAliases()
261e7aa134 is described below
commit 261e7aa134fa5893aafeed39e3e6be57d1ab052c
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sat May 28 07:24:40 2022 +0200
ISIS-3063: adds ObjectSpecification.getAliases()
---
.../DomainServiceFacetForAnnotation.java | 3 ++-
.../core/metamodel/spec/ObjectSpecification.java | 15 +++++++++++--
.../specimpl/ObjectSpecificationAbstract.java | 26 ++++++++++++++++------
.../testspec/ObjectSpecificationStub.java | 5 +++++
4 files changed, 39 insertions(+), 10 deletions(-)
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservice/annotation/DomainServiceFacetForAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservice/annotation/DomainServiceFacetForAnnotation.java
index 2ac899ca56..982f762880 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservice/annotation/DomainServiceFacetForAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservice/annotation/DomainServiceFacetForAnnotation.java
@@ -22,7 +22,8 @@ import org.apache.isis.applib.annotation.NatureOfService;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.object.domainservice.DomainServiceFacetAbstract;
-public class DomainServiceFacetForAnnotation extends DomainServiceFacetAbstract {
+public class DomainServiceFacetForAnnotation
+extends DomainServiceFacetAbstract {
public DomainServiceFacetForAnnotation(
final FacetHolder facetHolder,
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java
index 0487c62985..0a7c671487 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java
@@ -29,9 +29,13 @@ import java.util.stream.Stream;
import org.springframework.lang.Nullable;
+import org.apache.isis.applib.annotation.DomainObject;
+import org.apache.isis.applib.annotation.DomainService;
import org.apache.isis.applib.exceptions.UnrecoverableException;
import org.apache.isis.applib.id.HasLogicalType;
+import org.apache.isis.applib.id.LogicalType;
import org.apache.isis.applib.services.metamodel.BeanSort;
+import org.apache.isis.commons.collections.Can;
import org.apache.isis.commons.internal.base._NullSafe;
import org.apache.isis.commons.internal.collections._Streams;
import org.apache.isis.commons.internal.exceptions._Exceptions;
@@ -169,7 +173,6 @@ extends
/**
* Returns an (immutable) "full" identifier for this specification.
- *
* <p>
* This will be the fully qualified name of the Class object that this
* object represents (i.e. it includes the package name).
@@ -178,13 +181,21 @@ extends
/**
* Returns an (immutable) "short" identifier for this specification.
- *
* <p>
* This will be the class name without the package; any text up to and
* including the last period is removed.
*/
String getShortIdentifier();
+ /**
+ * Immutable set of {@link LogicalType} aliases for corresponding
+ * domain object or service.
+ * <p>
+ * Corresponds to {@link DomainService#aliased()} and
+ * {@link DomainObject#aliased()}.
+ */
+ Can<LogicalType> getAliases();
+
/**
* Returns the (singular) name for objects of this specification.
* <p>
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
index f63bb6abc6..ca46991de1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
@@ -64,6 +64,7 @@ import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFactor
import org.apache.isis.core.metamodel.facets.object.icon.IconFacet;
import org.apache.isis.core.metamodel.facets.object.icon.ObjectIcon;
import org.apache.isis.core.metamodel.facets.object.immutable.ImmutableFacet;
+import org.apache.isis.core.metamodel.facets.object.logicaltype.AliasedFacet;
import org.apache.isis.core.metamodel.facets.object.mixin.MixinFacet;
import org.apache.isis.core.metamodel.facets.object.navparent.NavigableParentFacet;
import org.apache.isis.core.metamodel.facets.object.parented.ParentedCollectionFacet;
@@ -183,6 +184,7 @@ implements ObjectSpecification {
private TitleFacet titleFacet;
private IconFacet iconFacet;
private NavigableParentFacet navigableParentFacet;
+ private AliasedFacet aliasedFacet;
private CssClassFacet cssClassFacet;
private IntrospectionState introspectionState = IntrospectionState.NOT_INTROSPECTED;
@@ -381,6 +383,7 @@ implements ObjectSpecification {
iconFacet = getFacet(IconFacet.class);
navigableParentFacet = getFacet(NavigableParentFacet.class);
cssClassFacet = getFacet(CssClassFacet.class);
+ aliasedFacet = getFacet(AliasedFacet.class);
}
protected void postProcess() {
@@ -404,12 +407,12 @@ implements ObjectSpecification {
@Override
public String getIconName(final ManagedObject domainObject) {
-
if(ManagedObjects.isSpecified(domainObject)) {
_Assert.assertEquals(domainObject.getSpecification(), this);
}
-
- return iconFacet == null ? null : iconFacet.iconName(domainObject);
+ return iconFacet != null
+ ? iconFacet.iconName(domainObject)
+ : null;
}
@Override
@@ -420,14 +423,23 @@ implements ObjectSpecification {
@Override
public Object getNavigableParent(final Object object) {
- return navigableParentFacet == null
- ? null
- : navigableParentFacet.navigableParent(object);
+ return navigableParentFacet != null
+ ? navigableParentFacet.navigableParent(object)
+ : null;
}
@Override
public String getCssClass(final ManagedObject reference) {
- return cssClassFacet == null ? null : cssClassFacet.cssClass(reference);
+ return cssClassFacet != null
+ ? cssClassFacet.cssClass(reference)
+ : null;
+ }
+
+ @Override
+ public Can<LogicalType> getAliases() {
+ return aliasedFacet != null
+ ? aliasedFacet.getAliases()
+ : Can.empty();
}
@Override
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
index 584c44cc13..68c1a43533 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
@@ -147,6 +147,11 @@ implements ObjectSpecification {
return logicalType;
}
+ @Override
+ public Can<LogicalType> getAliases() {
+ return Can.empty();
+ }
+
@Override
public String getIconName(final ManagedObject reference) {
return null;