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/01/23 20:32:12 UTC
[isis] branch master updated: ISIS-2492: use assoc. streams with
inheritance support where applicable
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 7f96045 ISIS-2492: use assoc. streams with inheritance support where applicable
7f96045 is described below
commit 7f960458914d4b8c1153c74b46944e0492deee08
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sat Jan 23 21:31:56 2021 +0100
ISIS-2492: use assoc. streams with inheritance support where applicable
---
.../BookmarkPolicyFacetFallbackFactory.java | 3 ---
.../DomainServiceFacetAnnotationFactory.java | 6 ++----
.../create/ObjectCreator_builtinHandlers.java | 2 +-
.../services/grid/GridSystemServiceAbstract.java | 14 ++-----------
.../core/metamodel/spec/feature/ObjectAction.java | 2 +-
.../spec/feature/ObjectAssociationContainer.java | 8 --------
.../specimpl/dflt/ObjectSpecificationDefault.java | 1 -
.../core/metamodel/util/snapshot/XmlSnapshot.java | 4 ++--
.../command/CommandExecutorServiceDefault.java | 15 +++-----------
.../changetracking/EntityChangeTrackerDefault.java | 7 +------
.../integration/metamodel/JdoPropertyUtils.java | 2 +-
...DerivedFromJdoColumnAnnotationFacetFactory.java | 6 +-----
...ndatoryFromJdoColumnAnnotationFacetFactory.java | 2 +-
...DerivedFromJdoColumnAnnotationFacetFactory.java | 2 +-
.../excel/applib/dom/util/ExcelConverter.java | 23 +++++++++++-----------
.../domainobjects/DomainObjectReprRenderer.java | 2 +-
.../domaintypes/DomainTypeReprRenderer.java | 7 +++----
.../rendering/service/swagger/internal/Util.java | 6 ++----
.../resources/DomainTypeResourceServerside.java | 4 ++--
.../resources/ObjectAdapterUpdateHelper.java | 22 ++++++++++-----------
.../wicket/model/models/BookmarkTreeNode.java | 9 ++++-----
.../CollectionContentsAsAjaxTablePanel.java | 2 +-
.../CollectionContentsSortableDataProvider.java | 2 +-
.../summary/CollectionContentsAsSummary.java | 2 +-
.../CollectionContentsAsSummaryFactory.java | 2 +-
.../components/entity/fieldset/PropertyGroup.java | 2 +-
26 files changed, 55 insertions(+), 102 deletions(-)
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/bookmarkpolicy/bookmarkable/BookmarkPolicyFacetFallbackFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/bookmarkpolicy/bookmarkable/BookmarkPolicyFacetFallbackFactory.java
index 8232480..bf646ff 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/bookmarkpolicy/bookmarkable/BookmarkPolicyFacetFallbackFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/bookmarkpolicy/bookmarkable/BookmarkPolicyFacetFallbackFactory.java
@@ -19,8 +19,6 @@
package org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.bookmarkable;
-import java.util.stream.Stream;
-
import org.apache.isis.applib.annotation.BookmarkPolicy;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facetapi.MetaModelRefiner;
@@ -30,7 +28,6 @@ import org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolic
import org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback;
import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
import org.apache.isis.core.metamodel.spec.feature.MixedIn;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
public class BookmarkPolicyFacetFallbackFactory extends FacetFactoryAbstract
implements MetaModelRefiner {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservice/annotation/DomainServiceFacetAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservice/annotation/DomainServiceFacetAnnotationFactory.java
index 120ef9e..de15e67 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservice/annotation/DomainServiceFacetAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservice/annotation/DomainServiceFacetAnnotationFactory.java
@@ -20,7 +20,6 @@ package org.apache.isis.core.metamodel.facets.object.domainservice.annotation;
import java.util.stream.Collectors;
-import java.util.stream.Stream;
import org.apache.isis.applib.annotation.DomainService;
import org.apache.isis.core.metamodel.context.MetaModelContext;
@@ -92,9 +91,8 @@ implements MetaModelRefiner {
return;
}
- final Stream<ObjectAssociation> associations = thisSpec.streamDeclaredAssociations(MixedIn.EXCLUDED);
-
- final String associationNames = associations
+ final String associationNames = thisSpec
+ .streamAssociations(MixedIn.EXCLUDED)
.map(ObjectAssociation::getName)
// it's okay to have an "association" called "Id" (corresponding to getId() method)
.filter(associationName->!"Id".equalsIgnoreCase(associationName))
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/create/ObjectCreator_builtinHandlers.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/create/ObjectCreator_builtinHandlers.java
index 5814ddc..ea2cd0d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/create/ObjectCreator_builtinHandlers.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/create/ObjectCreator_builtinHandlers.java
@@ -100,7 +100,7 @@ final class ObjectCreator_builtinHandlers {
private ManagedObject initializePropertiesAndDoCallback(ManagedObject adapter) {
// initialize new object
- adapter.getSpecification().streamDeclaredAssociations(MixedIn.EXCLUDED)
+ adapter.getSpecification().streamAssociations(MixedIn.EXCLUDED)
.forEach(field->field.toDefault(adapter));
val pojo = adapter.getPojo();
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java
index da4eda7..21dc89f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java
@@ -38,7 +38,6 @@ import org.apache.isis.applib.services.grid.GridSystemService;
import org.apache.isis.applib.services.i18n.TranslationService;
import org.apache.isis.applib.services.jaxb.JaxbService;
import org.apache.isis.applib.services.message.MessageService;
-import org.apache.isis.commons.internal.base._Casts;
import org.apache.isis.commons.internal.collections._Sets;
import org.apache.isis.core.config.environment.IsisSystemEnvironment;
import org.apache.isis.core.metamodel.facetapi.Facet;
@@ -79,7 +78,6 @@ import org.apache.isis.core.metamodel.facets.properties.propertylayout.Unchangin
import org.apache.isis.core.metamodel.layout.LayoutFacetUtil.MetamodelToGridOverridingVisitor;
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.ObjectMember;
import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
@@ -325,19 +323,11 @@ implements GridSystemService<G> {
}
protected static Stream<OneToOneAssociation> getOneToOneAssociations(final ObjectSpecification objectSpec) {
- @SuppressWarnings("rawtypes")
- Stream associations = objectSpec
- .streamDeclaredAssociations(MixedIn.INCLUDED)
- .filter(ObjectAssociation.Predicates.PROPERTIES);
- return _Casts.uncheckedCast(associations);
+ return objectSpec.streamProperties(MixedIn.INCLUDED);
}
protected static Stream<OneToManyAssociation> getOneToManyAssociations(final ObjectSpecification objectSpec) {
- @SuppressWarnings("rawtypes")
- Stream associations = objectSpec
- .streamDeclaredAssociations(MixedIn.INCLUDED)
- .filter(ObjectAssociation.Predicates.COLLECTIONS);
- return _Casts.uncheckedCast(associations);
+ return objectSpec.streamCollections(MixedIn.INCLUDED);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java
index 550322d..38bcdb0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java
@@ -595,7 +595,7 @@ public interface ObjectAction extends ObjectMember {
final Set<String> associationNamesAndIds = _Sets.newHashSet();
- adapterSpec.streamDeclaredAssociations(MixedIn.INCLUDED)
+ adapterSpec.streamAssociations(MixedIn.INCLUDED)
.forEach(ass->{
associationNamesAndIds.add(_Strings.lower(ass.getName()));
associationNamesAndIds.add(_Strings.lower(ass.getId()));
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAssociationContainer.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAssociationContainer.java
index a6c8112..35ecef8 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAssociationContainer.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAssociationContainer.java
@@ -35,11 +35,9 @@ public interface ObjectAssociationContainer {
*
* @implSpec If not found on the current 'type' search for the 'nearest' match in super-types,
* and if nothing found there, search the interfaces.
- * TODO make sure callers don't instead want the non recursive variant
*/
Optional<ObjectAssociation> getAssociation(String id);
- // TODO make sure callers don't instead want the non recursive variant
default ObjectAssociation getAssociationElseFail(String id) {
return getAssociation(id)
.orElseThrow(()->_Exceptions.noSuchElement("id=%s", id));
@@ -53,7 +51,6 @@ public interface ObjectAssociationContainer {
*
* Throw a {@link ObjectSpecificationException} if no such association
* exists.
- * TODO make sure callers don't instead want the recursive variant
*/
Optional<ObjectAssociation> getDeclaredAssociation(String id);
@@ -65,9 +62,6 @@ public interface ObjectAssociationContainer {
*
* @implSpec Walk through the type hierarchy nearest to farthest and add any ObjectAssociation to the stream,
* except don't add ObjectAssociations that already have been added (due to inheritance).
- *
- * TODO make sure callers don't instead want the non-recursive variant
- *
*/
Stream<ObjectAssociation> streamAssociations(MixedIn contributed);
@@ -75,7 +69,6 @@ public interface ObjectAssociationContainer {
/**
* All {@link ObjectAssociation association}s that represent
* {@link OneToOneAssociation properties}.
- * TODO make sure callers don't instead want the non recursive variant
*/
default Stream<OneToOneAssociation> streamProperties(MixedIn contributed) {
return streamAssociations(contributed)
@@ -86,7 +79,6 @@ public interface ObjectAssociationContainer {
/**
* All {@link ObjectAssociation association}s that represents
* {@link OneToManyAssociation collections}.
- * TODO make sure callers don't instead want the non recursive variant
*/
default Stream<OneToManyAssociation> streamCollections(MixedIn contributed){
return streamAssociations(contributed)
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
index fe02cab..09e7624 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
@@ -35,7 +35,6 @@ import org.apache.isis.commons.internal.collections._Maps;
import org.apache.isis.core.metamodel.commons.StringExtensions;
import org.apache.isis.core.metamodel.commons.ToString;
import org.apache.isis.core.metamodel.context.MetaModelContext;
-import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.FacetedMethod;
import org.apache.isis.core.metamodel.facets.ImperativeFacet;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/snapshot/XmlSnapshot.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/snapshot/XmlSnapshot.java
index 9f7b12f..c3bd5ee 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/snapshot/XmlSnapshot.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/snapshot/XmlSnapshot.java
@@ -484,7 +484,7 @@ public class XmlSnapshot implements Snapshot {
if (field instanceof OneToOneAssociation) {
- if (field.getSpecification().streamDeclaredAssociations(MixedIn.INCLUDED).limit(1).count() == 0L) {
+ if (field.getSpecification().streamAssociations(MixedIn.INCLUDED).limit(1).count() == 0L) {
if (log.isDebugEnabled()) {
log.debug("includeField(Pl, Vec, Str): field is value; done");
}
@@ -653,7 +653,7 @@ public class XmlSnapshot implements Snapshot {
isisMetaModel.setAttributesForClass(element, oidAsString(adapter).toString());
- final List<ObjectAssociation> fields = nos.streamDeclaredAssociations(MixedIn.INCLUDED)
+ final List<ObjectAssociation> fields = nos.streamAssociations(MixedIn.INCLUDED)
.collect(Collectors.toList());
if (log.isDebugEnabled()) {
log.debug("objectToElement(NO): processing fields");
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandExecutorServiceDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandExecutorServiceDefault.java
index 16ebd95..2e58fe5 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandExecutorServiceDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandExecutorServiceDefault.java
@@ -20,7 +20,6 @@ package org.apache.isis.core.runtimeservices.command;
import java.sql.Timestamp;
import java.util.List;
-import java.util.Objects;
import java.util.Optional;
import java.util.regex.Pattern;
import java.util.stream.Stream;
@@ -63,7 +62,6 @@ import org.apache.isis.core.metamodel.objectmanager.load.ObjectLoader;
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.OneToOneAssociation;
@@ -354,17 +352,10 @@ public class CommandExecutorServiceDefault implements CommandExecutorService {
final ObjectSpecification specification,
final String localPropertyId) {
- final Stream<ObjectAssociation> associations = specification.streamDeclaredAssociations(MixedIn.INCLUDED);
-
- return associations
- .filter(association->
- Objects.equals(association.getId(), localPropertyId) &&
- association instanceof OneToOneAssociation
- )
- .findAny()
- .map(association->(OneToOneAssociation) association)
+ return specification.getAssociation(localPropertyId)
+ .filter(ObjectAssociation::isOneToOneAssociation)
+ .map(OneToOneAssociation.class::cast)
.orElse(null);
-
}
private Can<ManagedObject> argAdaptersFor(final ActionDto actionDto) {
diff --git a/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/EntityChangeTrackerDefault.java b/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/EntityChangeTrackerDefault.java
index e2561b3..fdf4fbd 100644
--- a/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/EntityChangeTrackerDefault.java
+++ b/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/EntityChangeTrackerDefault.java
@@ -68,8 +68,6 @@ import org.apache.isis.core.metamodel.facets.object.publish.entitychange.EntityC
import org.apache.isis.core.metamodel.spec.ManagedObject;
import org.apache.isis.core.metamodel.spec.ManagedObjects.EntityUtil;
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.transaction.changetracking.events.IsisTransactionPlaceholder;
import org.apache.isis.core.transaction.events.TransactionBeforeCompletionEvent;
@@ -267,10 +265,7 @@ implements
log.debug("enlist entity's property changes for auditing {}", entity);
- entity.getSpecification()
- .streamDeclaredAssociations(MixedIn.EXCLUDED)
- .filter(ObjectAssociation.Predicates.PROPERTIES)
- .map(OneToOneAssociation.class::cast)
+ entity.getSpecification().streamProperties(MixedIn.EXCLUDED)
.filter(property->!property.isNotPersisted())
.map(property->AdapterAndProperty.of(entity, property))
.filter(aap->!enlistedEntityPropertiesForAuditing.containsKey(aap)) // already enlisted, so ignore
diff --git a/persistence/jdo/integration/src/main/java/org/apache/isis/persistence/jdo/integration/metamodel/JdoPropertyUtils.java b/persistence/jdo/integration/src/main/java/org/apache/isis/persistence/jdo/integration/metamodel/JdoPropertyUtils.java
index 5b11732..7045f72 100644
--- a/persistence/jdo/integration/src/main/java/org/apache/isis/persistence/jdo/integration/metamodel/JdoPropertyUtils.java
+++ b/persistence/jdo/integration/src/main/java/org/apache/isis/persistence/jdo/integration/metamodel/JdoPropertyUtils.java
@@ -63,7 +63,7 @@ public final class JdoPropertyUtils {
final List<ObjectAssociation> propertyList = objSpec
- .streamDeclaredAssociations(MixedIn.EXCLUDED)
+ .streamAssociations(MixedIn.EXCLUDED)
.filter(predicate)
.limit(2)
.collect(Collectors.toList());
diff --git a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/BigDecimalDerivedFromJdoColumnAnnotationFacetFactory.java b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/BigDecimalDerivedFromJdoColumnAnnotationFacetFactory.java
index 7f80434..3065680 100644
--- a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/BigDecimalDerivedFromJdoColumnAnnotationFacetFactory.java
+++ b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/BigDecimalDerivedFromJdoColumnAnnotationFacetFactory.java
@@ -19,7 +19,6 @@
package org.apache.isis.persistence.jdo.metamodel.facets.prop.column;
import java.math.BigDecimal;
-import java.util.stream.Stream;
import javax.jdo.annotations.Column;
import javax.jdo.annotations.IdentityType;
@@ -124,10 +123,7 @@ implements MetaModelRefiner {
return;
}
- final Stream<ObjectAssociation> associations = objectSpec.streamDeclaredAssociations(MixedIn.EXCLUDED)
- .filter(ObjectAssociation.Predicates.PROPERTIES);
-
- associations
+ objectSpec.streamProperties(MixedIn.EXCLUDED)
// skip checks if annotated with JDO @NotPersistent
.filter(association->!association.containsNonFallbackFacet(JdoNotPersistentFacet.class))
.forEach(association->{
diff --git a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/MandatoryFromJdoColumnAnnotationFacetFactory.java b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/MandatoryFromJdoColumnAnnotationFacetFactory.java
index a1aae29..c811a9a 100644
--- a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/MandatoryFromJdoColumnAnnotationFacetFactory.java
+++ b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/MandatoryFromJdoColumnAnnotationFacetFactory.java
@@ -142,7 +142,7 @@ implements MetaModelRefiner {
}
final Stream<ObjectAssociation> associations = objectSpec
- .streamDeclaredAssociations(MixedIn.EXCLUDED)
+ .streamAssociations(MixedIn.EXCLUDED)
.filter(ObjectAssociation.Predicates.PROPERTIES);
associations
diff --git a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/MaxLengthDerivedFromJdoColumnAnnotationFacetFactory.java b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/MaxLengthDerivedFromJdoColumnAnnotationFacetFactory.java
index 6a00d34..85a9a5e 100644
--- a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/MaxLengthDerivedFromJdoColumnAnnotationFacetFactory.java
+++ b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/MaxLengthDerivedFromJdoColumnAnnotationFacetFactory.java
@@ -114,7 +114,7 @@ implements MetaModelRefiner {
}
final Stream<ObjectAssociation> associations = objectSpec
- .streamDeclaredAssociations(MixedIn.EXCLUDED)
+ .streamAssociations(MixedIn.EXCLUDED)
.filter(ObjectAssociation.Predicates.PROPERTIES);
associations.forEach(association->{
diff --git a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/ExcelConverter.java b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/ExcelConverter.java
index 0dde58f..89412d7 100644
--- a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/ExcelConverter.java
+++ b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/ExcelConverter.java
@@ -32,7 +32,6 @@ import java.util.Set;
import java.util.UUID;
import java.util.function.Predicate;
import java.util.stream.Collectors;
-import java.util.stream.Stream;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.Cell;
@@ -156,7 +155,7 @@ class ExcelConverter {
final List<ManagedObject> adapters = domainObjects.stream().map(objectManager::adapt).collect(Collectors.toList());
- final List<ObjectAssociation> propertyList = objectSpec.streamDeclaredAssociations(MixedIn.INCLUDED)
+ final List<ObjectAssociation> propertyList = objectSpec.streamAssociations(MixedIn.INCLUDED)
.filter(VISIBLE_PROPERTIES)
.collect(Collectors.toList());
@@ -248,7 +247,7 @@ class ExcelConverter {
final ObjectSpecification objectSpec = specificationLoader.loadSpecification(factory.getCls());
- final List<ObjectAssociation> propertyList = objectSpec.streamDeclaredAssociations(MixedIn.INCLUDED)
+ final List<ObjectAssociation> propertyList = objectSpec.streamAssociations(MixedIn.INCLUDED)
.filter(VISIBLE_PROPERTIES)
.collect(Collectors.toList());
@@ -543,15 +542,15 @@ class ExcelConverter {
throw new IllegalArgumentException(String.format("Could not locate sheet named any of: '%s'", sheetNames));
}
- private static OneToOneAssociation getAssociation(final ObjectSpecification objectSpec, final String propertyNameOrId) {
- final Stream<ObjectAssociation> associations = objectSpec.streamDeclaredAssociations(MixedIn.INCLUDED);
- return associations
- .filter(OneToOneAssociation.class::isInstance)
- .map(OneToOneAssociation.class::cast)
- .filter(association -> propertyNameOrId.equalsIgnoreCase(association.getName())
- || propertyNameOrId.equalsIgnoreCase(association.getId()))
- .findFirst()
- .orElse(null);
+ private static OneToOneAssociation getAssociation(
+ final ObjectSpecification objectSpec,
+ final String propertyNameOrId) {
+
+ return objectSpec.streamProperties(MixedIn.INCLUDED)
+ .filter(association -> propertyNameOrId.equalsIgnoreCase(association.getName())
+ || propertyNameOrId.equalsIgnoreCase(association.getId()))
+ .findFirst()
+ .orElse(null);
}
@ToString(of = {"name", "type", "currentValue"})
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 f071cd7..35504c1 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
@@ -290,7 +290,7 @@ public class DomainObjectReprRenderer extends ReprRendererAbstract<DomainObjectR
final JsonRepresentation appendTo =
mode.isUpdatePropertiesLinkArgs() ? representation : JsonRepresentation.newMap();
final List<ObjectAssociation> associations = objectAdapter.getSpecification()
- .streamDeclaredAssociations(MixedIn.INCLUDED)
+ .streamAssociations(MixedIn.INCLUDED)
.collect(Collectors.toList());
addProperties(objectAdapter, appendTo, associations);
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/DomainTypeReprRenderer.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/DomainTypeReprRenderer.java
index 051dd14..901ac61 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/DomainTypeReprRenderer.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/DomainTypeReprRenderer.java
@@ -26,7 +26,6 @@ import org.apache.isis.commons.internal.base._Strings;
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.viewer.restfulobjects.applib.JsonRepresentation;
@@ -97,9 +96,9 @@ public class DomainTypeReprRenderer extends ReprRendererAbstract<DomainTypeReprR
private void addMembers() {
final JsonRepresentation membersList = JsonRepresentation.newArray();
representation.mapPut("members", membersList);
- final Stream<ObjectAssociation> associations = objectSpecification.streamDeclaredAssociations(MixedIn.EXCLUDED);
-
- associations.forEach(association->{
+
+ objectSpecification.streamAssociations(MixedIn.EXCLUDED)
+ .forEach(association->{
if (association.isOneToOneAssociation()) {
final OneToOneAssociation property = (OneToOneAssociation) association;
final LinkBuilder linkBuilder = PropertyDescriptionReprRenderer.newLinkToBuilder(getResourceContext(), Rel.PROPERTY, objectSpecification, property);
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/swagger/internal/Util.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/swagger/internal/Util.java
index 45ab194..a91e47d 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/swagger/internal/Util.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/swagger/internal/Util.java
@@ -130,12 +130,10 @@ public final class Util {
final ObjectSpecification objectSpecification,
final Predicate<ObjectAssociation> associationPredicate, final SwaggerService.Visibility visibility) {
- final List<ObjectAssociation> list =
- objectSpecification.streamDeclaredAssociations(MixedIn.INCLUDED)
+ return objectSpecification.streamAssociations(MixedIn.INCLUDED)
.filter(associationPredicate.and(associationsWith(visibility)))
+ .map(x->_Casts.<T>uncheckedCast(x))
.collect(Collectors.toList());
-
- return _Casts.uncheckedCast(list);
}
static List<ObjectAction> actionsOf(
diff --git a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainTypeResourceServerside.java b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainTypeResourceServerside.java
index b8569a6..e84c6bf 100644
--- a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainTypeResourceServerside.java
+++ b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainTypeResourceServerside.java
@@ -165,7 +165,7 @@ public class DomainTypeResourceServerside extends ResourceAbstract implements Do
throw RestfulObjectsApplicationException.create(HttpStatusCode.NOT_FOUND);
}
- val objectMember = parentSpec.getDeclaredAssociation(propertyId)
+ val objectMember = parentSpec.getAssociation(propertyId)
.orElseThrow(()->RestfulObjectsApplicationException.create(HttpStatusCode.NOT_FOUND));
if (objectMember.isOneToManyAssociation()) {
@@ -193,7 +193,7 @@ public class DomainTypeResourceServerside extends ResourceAbstract implements Do
throw RestfulObjectsApplicationException.create(HttpStatusCode.NOT_FOUND);
}
- val objectMember = parentSpec.getDeclaredAssociation(collectionId)
+ val objectMember = parentSpec.getAssociation(collectionId)
.orElseThrow(()->RestfulObjectsApplicationException.create(HttpStatusCode.NOT_FOUND));
if (objectMember.isOneToOneAssociation()) {
diff --git a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/ObjectAdapterUpdateHelper.java b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/ObjectAdapterUpdateHelper.java
index 52832a7..b840757 100644
--- a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/ObjectAdapterUpdateHelper.java
+++ b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/ObjectAdapterUpdateHelper.java
@@ -18,8 +18,7 @@
*/
package org.apache.isis.viewer.restfulobjects.viewer.resources;
-import java.util.stream.Stream;
-
+import org.apache.isis.commons.internal.base._Refs;
import org.apache.isis.core.metamodel.consent.Consent;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.core.metamodel.spec.ManagedObject;
@@ -30,6 +29,8 @@ import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
import org.apache.isis.viewer.restfulobjects.viewer.context.ResourceContext;
+import lombok.val;
+
/**
* Utility class that encapsulates the logic for updating an
* {@link ManagedObject}'s with the
@@ -62,17 +63,16 @@ public class ObjectAdapterUpdateHelper {
final JsonRepresentation propertiesMap,
final Intent intent) {
- final ObjectSpecification objectSpec = objectAdapter.getSpecification();
- final Stream<ObjectAssociation> properties = objectSpec.streamDeclaredAssociations(MixedIn.EXCLUDED)
- .filter(ObjectAssociation.Predicates.PROPERTIES);
-
- final boolean[] allOk = {true}; // simply a non-thread-safe value reference
-
- properties.forEach(association->{
- allOk[0] &= copyOverProperty(association, propertiesMap, intent);
+ val allOk = _Refs.booleanRef(true); // simply a non-thread-safe boolean reference
+
+ objectAdapter.getSpecification().streamAssociations(MixedIn.EXCLUDED)
+ .filter(ObjectAssociation.Predicates.PROPERTIES) // properties only
+ .forEach(association->{
+
+ allOk.update(ok->ok &= copyOverProperty(association, propertiesMap, intent));
});
- return allOk[0];
+ return allOk.isTrue();
}
private boolean copyOverProperty(
diff --git a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkTreeNode.java b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkTreeNode.java
index 3d1236e..7dc751c 100644
--- a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkTreeNode.java
+++ b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkTreeNode.java
@@ -197,11 +197,10 @@ public class BookmarkTreeNode implements Serializable {
if(candidateBookmarkableModel instanceof EntityModel) {
val entityModel = (EntityModel) candidateBookmarkableModel;
val candidateAdapter = entityModel.getObject();
- final Stream<ObjectAssociation> properties = candidateAdapter.getSpecification()
- .streamDeclaredAssociations(MixedIn.EXCLUDED)
- .filter(ObjectAssociation.Predicates.REFERENCE_PROPERTIES);
-
- properties
+
+ candidateAdapter.getSpecification()
+ .streamAssociations(MixedIn.EXCLUDED)
+ .filter(ObjectAssociation.Predicates.REFERENCE_PROPERTIES) // properties only
.map(objectAssoc->{
val parentAdapter =
objectAssoc.get(candidateAdapter, InteractionInitiatedBy.USER);
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java
index 5efc760..78e4d8e 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java
@@ -204,7 +204,7 @@ implements CollectionCountProvider {
.and(associationDoesNotReferenceParent(parentSpecIfAny));
final Stream<? extends ObjectAssociation> propertyList =
- typeOfSpec.streamDeclaredAssociations(MixedIn.INCLUDED)
+ typeOfSpec.streamAssociations(MixedIn.INCLUDED)
.filter(predicate);
final Map<String, ObjectAssociation> propertyById = _Maps.newLinkedHashMap();
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsSortableDataProvider.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsSortableDataProvider.java
index ac13c06..baa9a90 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsSortableDataProvider.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsSortableDataProvider.java
@@ -127,7 +127,7 @@ public class CollectionContentsSortableDataProvider extends SortableDataProvider
val elementSpec = model.getTypeOfSpecification();
val sortPropertyId = sort.getProperty();
- return elementSpec.getDeclaredAssociation(sortPropertyId).orElse(null); // eg invalid propertyId
+ return elementSpec.getAssociation(sortPropertyId).orElse(null); // eg invalid propertyId
}
private Predicate<ManagedObject> ignoreHidden() {
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/summary/CollectionContentsAsSummary.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/summary/CollectionContentsAsSummary.java
index f9843c1..1174470 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/summary/CollectionContentsAsSummary.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/summary/CollectionContentsAsSummary.java
@@ -86,7 +86,7 @@ public class CollectionContentsAsSummary extends PanelAbstract<EntityCollectionM
addOrReplace(feedback);
final Stream<ObjectAssociation> numberAssociations = elementSpec
- .streamDeclaredAssociations(MixedIn.EXCLUDED)
+ .streamAssociations(MixedIn.EXCLUDED)
.filter(CollectionContentsAsSummaryFactory.OF_TYPE_BIGDECIMAL);
final RepeatingView repeating = new RepeatingView(ID_REPEATING_SUMMARY);
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/summary/CollectionContentsAsSummaryFactory.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/summary/CollectionContentsAsSummaryFactory.java
index 4f8e569..ed85583 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/summary/CollectionContentsAsSummaryFactory.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/summary/CollectionContentsAsSummaryFactory.java
@@ -65,7 +65,7 @@ public class CollectionContentsAsSummaryFactory extends ComponentFactoryAbstract
}
final EntityCollectionModel entityCollectionModel = (EntityCollectionModel) model;
final ObjectSpecification elementSpec = entityCollectionModel.getTypeOfSpecification();
- final Stream<ObjectAssociation> associations = elementSpec.streamDeclaredAssociations(MixedIn.EXCLUDED);
+ final Stream<ObjectAssociation> associations = elementSpec.streamAssociations(MixedIn.EXCLUDED);
return appliesIf(associations.anyMatch(OF_TYPE_BIGDECIMAL));
}
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/fieldset/PropertyGroup.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/fieldset/PropertyGroup.java
index f9550cd..9f4ce91 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/fieldset/PropertyGroup.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/fieldset/PropertyGroup.java
@@ -174,7 +174,7 @@ public class PropertyGroup extends PanelAbstract<EntityModel> implements HasDyna
.filter(propertyLayoutData -> propertyLayoutData.getMetadataError() == null)
.map(propertyLayoutData ->
adapter.getSpecification()
- .getDeclaredAssociation(propertyLayoutData.getId())
+ .getAssociation(propertyLayoutData.getId())
.orElse(null)
)
.filter(_NullSafe::isPresent)