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 2020/01/16 22:18:10 UTC
[isis] branch master updated: ISIS-2265: refactoring
CollectionUtils into CollectionFacet.Utils
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 4aa672f ISIS-2265: refactoring CollectionUtils into CollectionFacet.Utils
4aa672f is described below
commit 4aa672f8ecd40f80224d484821a8562c4b0a8e51
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Jan 16 23:17:10 2020 +0100
ISIS-2265: refactoring CollectionUtils into CollectionFacet.Utils
---
.../core/metamodel/facets/CollectionUtils.java | 129 -------------------
...ctionInvocationFacetForDomainEventAbstract.java | 18 +--
.../CollectionAccessorFacetViaAccessor.java | 17 ++-
.../facets/collections/modify/CollectionFacet.java | 139 +++++++++++++++++----
.../autocomplete/AutoCompleteFacetAbstract.java | 7 +-
.../ActionParameterAutoCompleteFacetViaMethod.java | 18 ++-
.../method/ActionChoicesFacetViaMethod.java | 20 ++-
.../ActionParameterChoicesFacetViaMethod.java | 18 ++-
.../method/PropertyAutoCompleteFacetMethod.java | 16 +--
.../method/PropertyChoicesFacetViaMethod.java | 39 ++++--
...arameterChoicesFacetFromParentedCollection.java | 3 +-
.../classsubstitutor/ClassSubstitutor.java | 10 ++
.../isis/core/metamodel/spec/ManagedObject.java | 21 ++--
.../specimpl/OneToManyAssociationDefault.java | 3 +-
.../core/metamodel/util/snapshot/IsisSchema.java | 3 +-
.../core/metamodel/util/snapshot/XmlSnapshot.java | 4 +-
...tilsTest.java => CollectionFacetUtilsTest.java} | 15 +--
.../domainobjects/ActionResultReprRenderer.java | 2 +-
.../ObjectCollectionReprRenderer.java | 2 +-
.../ContentNegotiationServiceOrgApacheIsisV1.java | 4 +-
20 files changed, 229 insertions(+), 259 deletions(-)
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/CollectionUtils.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/CollectionUtils.java
deleted file mode 100644
index b84b0b0..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/CollectionUtils.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.core.metamodel.facets;
-
-import java.util.AbstractList;
-import java.util.AbstractSet;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.LinkedHashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.SortedSet;
-import java.util.TreeSet;
-import java.util.concurrent.CopyOnWriteArrayList;
-import java.util.concurrent.CopyOnWriteArraySet;
-import java.util.function.Function;
-import java.util.stream.Stream;
-
-import org.apache.isis.core.commons.internal.base._Casts;
-import org.apache.isis.core.commons.internal.base._With;
-import org.apache.isis.core.commons.internal.collections._Arrays;
-import org.apache.isis.core.commons.internal.collections._Lists;
-import org.apache.isis.core.commons.internal.collections._Sets;
-import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
-import org.apache.isis.core.metamodel.objectmanager.ObjectManager;
-import org.apache.isis.core.metamodel.spec.ManagedObject;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-
-public final class CollectionUtils {
-
- private CollectionUtils() {
- }
-
- public static Object[] getCollectionAsObjectArray(
- final Object optionPojo,
- final ObjectSpecification spec,
- final ObjectManager objectManger) {
-
- final ManagedObject collection = objectManger.adapt(optionPojo);
- final CollectionFacet facet = CollectionFacet.Utils.getCollectionFacetFromSpec(collection);
-
-// {//TODO[2158] migrate
-// val mo = ManagedObject.forPojo(optionPojo);
-// val collectionFacet = CollectionFacet.Utils.getCollectionFacetFromSpec(mo);
-// _Assert.assertEquals("expected same",
-// facet, collectionFacet);
-// }
-
- final Stream<ManagedObject> objectAdapters =
- CollectionFacet.Utils.streamAdapters(collection);
-
- return objectAdapters
- .map(nextElement->nextElement != null? nextElement.getPojo(): null)
- .collect(_Arrays.toArray(Object.class, facet.size(collection)));
- }
-
- private final static Map<Class<?>, Function<Iterable<Object>, Object>> factoriesByType = _With.hashMap(
- map-> {
- // specific list implementations
- map.put(CopyOnWriteArrayList.class, _Lists::newConcurrentList);
- map.put(LinkedList.class, _Lists::newLinkedList);
- map.put(ArrayList.class, _Lists::newArrayList);
- map.put(AbstractList.class, _Lists::newArrayList);
-
- // specific set implementations
- map.put(CopyOnWriteArraySet.class, _Sets::newCopyOnWriteArraySet);
- map.put(LinkedHashSet.class, _Sets::newLinkedHashSet);
- map.put(HashSet.class, _Sets::newHashSet);
- map.put(TreeSet.class, _Sets::newTreeSet);
- map.put(AbstractSet.class, _Sets::newLinkedHashSet);
-
- // interfaces
- map.put(List.class, _Lists::newArrayList);
- map.put(SortedSet.class, _Sets::newTreeSet);
- map.put(Set.class, _Sets::newLinkedHashSet);
- map.put(Collection.class, _Lists::newArrayList);
- });
-
- /**
- * Copies the iterable into the specified type.
- */
- public static Object copyOf(final Iterable<Object> iterable, final Class<?> requiredType) {
-
- if(iterable == null) {
- throw new IllegalArgumentException("Iterable must be provided");
- }
- if(requiredType == null) {
- throw new IllegalArgumentException("RequiredType must be provided");
- }
-
- final Function<Iterable<Object>, Object> factory = factoriesByType.get(requiredType);
- if(factory!=null) {
- return factory.apply(iterable);
- }
-
- // array
- if (requiredType.isArray()) {
- Class<?> componentType = requiredType.getComponentType();
-
- @SuppressWarnings("rawtypes") Iterable rawIterable = iterable;
- return _Arrays.toArray(_Casts.uncheckedCast(rawIterable), componentType);
- }
-
- // not recognized
- return null;
-
- }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java
index 56551e9..3be74a0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java
@@ -26,8 +26,6 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.function.Consumer;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
import org.apache.isis.applib.NonRecoverableException;
import org.apache.isis.applib.RecoverableException;
@@ -57,7 +55,6 @@ import org.apache.isis.core.metamodel.commons.MethodInvocationPreprocessor;
import org.apache.isis.core.metamodel.commons.ThrowableExtensions;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.CollectionUtils;
import org.apache.isis.core.metamodel.facets.DomainEventHelper;
import org.apache.isis.core.metamodel.facets.ImperativeFacet;
import org.apache.isis.core.metamodel.facets.actions.publish.PublishedActionFacet;
@@ -363,15 +360,12 @@ implements ImperativeFacet {
if(result instanceof Collection || result.getClass().isArray()) {
- final Stream<ManagedObject> adapters = CollectionFacet.Utils.streamAdapters(resultAdapter);
-
- final Object visibleObjects =
- CollectionUtils.copyOf(
- adapters
- .filter(ManagedObject.VisibilityUtil.filterOn(interactionInitiatedBy))
- .map(ManagedObject::unwrapSingle)
- .collect(Collectors.toList()),
- method.getReturnType());
+ val requiredContainerType = method.getReturnType();
+
+ val visiblePojoStream = ManagedObject.VisibilityUtil
+ .streamVisiblePojos(resultAdapter, interactionInitiatedBy);
+
+ final Object visibleObjects = CollectionFacet.Utils.collect(visiblePojoStream, requiredContainerType);
if (visibleObjects != null) {
return getObjectManager().adapt(visibleObjects);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/accessor/CollectionAccessorFacetViaAccessor.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/accessor/CollectionAccessorFacetViaAccessor.java
index 1dbd4a0..d5c3aa4 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/accessor/CollectionAccessorFacetViaAccessor.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/accessor/CollectionAccessorFacetViaAccessor.java
@@ -24,11 +24,10 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
-import org.apache.isis.core.commons.internal.collections._Lists;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.CollectionUtils;
import org.apache.isis.core.metamodel.facets.ImperativeFacet;
+import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
import org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacetAbstract;
import org.apache.isis.core.metamodel.spec.ManagedObject;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -76,14 +75,12 @@ implements ImperativeFacet {
final boolean filterForVisibility = getConfiguration().getCore().getMetaModel().isFilterVisibility();
if(filterForVisibility) {
- final List<ManagedObject> visibleAdapters =
- ManagedObject.VisibilityUtil.visibleAdapters(
- collectionAdapter,
- interactionInitiatedBy);
- final Object visibleObjects =
- CollectionUtils.copyOf(
- _Lists.map(visibleAdapters, ManagedObject::unwrapSingle),
- method.getReturnType());
+
+ val visiblePojoStream = ManagedObject.VisibilityUtil
+ .streamVisiblePojos(collectionAdapter, interactionInitiatedBy);
+
+ final Object visibleObjects = CollectionFacet.Utils.collect(visiblePojoStream, method.getReturnType());
+
if (visibleObjects != null) {
return visibleObjects;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/modify/CollectionFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/modify/CollectionFacet.java
index 906d0e1..eadfb88 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/modify/CollectionFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/modify/CollectionFacet.java
@@ -19,20 +19,42 @@
package org.apache.isis.core.metamodel.facets.collections.modify;
+import java.util.AbstractList;
+import java.util.AbstractSet;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.LinkedHashSet;
+import java.util.LinkedList;
import java.util.List;
+import java.util.Map;
import java.util.Optional;
-import java.util.function.Function;
+import java.util.Set;
+import java.util.SortedSet;
+import java.util.TreeSet;
+import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.concurrent.CopyOnWriteArraySet;
import java.util.function.Supplier;
+import java.util.stream.Collector;
import java.util.stream.Collectors;
import java.util.stream.Stream;
-import org.apache.isis.core.commons.internal.base._Casts;
+import javax.annotation.Nullable;
+
+import org.apache.isis.core.commons.internal.base._With;
+import org.apache.isis.core.commons.internal.collections._Arrays;
+import org.apache.isis.core.commons.internal.collections._Lists;
+import org.apache.isis.core.commons.internal.collections._Sets;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet;
+import org.apache.isis.core.metamodel.objectmanager.ObjectManager;
import org.apache.isis.core.metamodel.spec.ManagedObject;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import static org.apache.isis.core.commons.internal.base._With.requires;
+
import lombok.val;
+import lombok.experimental.UtilityClass;
/**
* Attached to {@link ObjectSpecification}s that represent a collection.
@@ -79,34 +101,105 @@ public interface CollectionFacet extends Facet {
* {@link #getFacetHolder() holder}.
*/
TypeOfFacet getTypeOfFacet();
-
- public static class Utils {
-
- public static CollectionFacet getCollectionFacetFromSpec(ManagedObject objectRepresentingCollection) {
- val collectionSpec = objectRepresentingCollection.getSpecification();
- return collectionSpec.getFacet(CollectionFacet.class);
+
+ // -- UTILS
+
+ public static Optional<CollectionFacet> lookup(@Nullable ManagedObject container) {
+ if(container==null) {
+ return Optional.empty();
}
+ val collectionSpec = container.getSpecification();
+ return Optional.ofNullable(collectionSpec.getFacet(CollectionFacet.class));
+ }
- public static int size(ManagedObject collection) {
- val collectionFacet = getCollectionFacetFromSpec(collection);
- return collectionFacet.size(collection);
- }
+ public static int elementCount(@Nullable ManagedObject container) {
+ return lookup(container)
+ .map(collectionFacet->collectionFacet.size(container))
+ .orElse(0);
+ }
+
+ public static Stream<ManagedObject> streamAdapters(ManagedObject container) {
+ return lookup(container)
+ .map(collectionFacet->collectionFacet.stream(container))
+ .orElse(Stream.empty());
+ }
+
+ public static Object[] toArrayOfPojos(ManagedObject container) {
+ val elementAdapters = streamAdapters(container)
+ .collect(Collectors.toList());
+ return ManagedObject.unwrapMultipleAsArray(elementAdapters);
+ }
- public static <T extends ManagedObject> Stream<T> streamAdapters(T collectionAdapter) {
- val collectionFacet = getCollectionFacetFromSpec(collectionAdapter);
- return Utils.<T>downCast(collectionFacet.stream(collectionAdapter));
- }
+ @UtilityClass
+ public static class Utils {
+
+ /**
+ * Copies the iterable into the specified type.
+ */
+ @SuppressWarnings({ "rawtypes", "unchecked" })
+ public static Object collect(
+ final Stream<?> stream,
+ final Class<?> requiredType) {
+
+ requires(stream, "stream");
+ requires(requiredType, "requiredType");
+
+ Stream rawStream = stream;
+
+ val factoryIfAny = factoriesByType.get(requiredType);
+ if(factoryIfAny!=null) {
+ Supplier rawFactory = factoryIfAny;
+ Collector rawCollector = Collectors.toCollection(rawFactory);
+ return rawStream.collect(rawCollector);
+ }
+
+ // array
+ if (requiredType.isArray()) {
+ Class<?> elementType = requiredType.getComponentType();
+ return rawStream.collect(_Arrays.toArray(elementType));
+ }
+
+ // not recognized
+ return null;
- public static <T extends ManagedObject> List<T> toAdapterList(T collectionAdapter) {
- return streamAdapters(collectionAdapter)
- .collect(Collectors.toList());
}
- private static <T extends ManagedObject> Stream<T> downCast(Stream<ManagedObject> stream) {
- final Function<ManagedObject, T> uncheckedCast = _Casts::uncheckedCast;
- return stream.map(uncheckedCast);
+ public static Object[] collectAsPojoArray(
+ final Stream<Object> pojoStream,
+ final ObjectSpecification spec,
+ final ObjectManager objectManger) {
+
+ val optionPojo = pojoStream.collect(Collectors.toList());
+ final ManagedObject collection = objectManger.adapt(optionPojo);
+ return toArrayOfPojos(collection);
}
-
+
+
+ // -- HELPER
+
+ private final static Map<Class<?>, Supplier<Collection<?>>> factoriesByType = _With.hashMap(
+ map-> {
+ // specific list implementations
+ map.put(CopyOnWriteArrayList.class, _Lists::newConcurrentList);
+ map.put(LinkedList.class, _Lists::newLinkedList);
+ map.put(ArrayList.class, _Lists::newArrayList);
+ map.put(AbstractList.class, _Lists::newArrayList);
+
+ // specific set implementations
+ map.put(CopyOnWriteArraySet.class, _Sets::newCopyOnWriteArraySet);
+ map.put(LinkedHashSet.class, _Sets::newLinkedHashSet);
+ map.put(HashSet.class, _Sets::newHashSet);
+ map.put(TreeSet.class, _Sets::newTreeSet);
+ map.put(AbstractSet.class, _Sets::newLinkedHashSet);
+
+ // interfaces
+ map.put(List.class, _Lists::newArrayList);
+ map.put(SortedSet.class, _Sets::newTreeSet);
+ map.put(Set.class, _Sets::newLinkedHashSet);
+ map.put(Collection.class, _Lists::newArrayList);
+ });
+
}
+
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/AutoCompleteFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/AutoCompleteFacetAbstract.java
index f303af6..e1aca1e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/AutoCompleteFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/AutoCompleteFacetAbstract.java
@@ -90,13 +90,12 @@ implements AutoCompleteFacet {
});
// check a collection was returned
- if(CollectionFacet.Utils.getCollectionFacetFromSpec(resultAdapter) == null) {
+ if(CollectionFacet.lookup(resultAdapter) == null) {
return Collections.emptyList();
}
- return CollectionFacet.Utils.streamAdapters(resultAdapter)
- .filter(ManagedObject.VisibilityUtil.filterOn(interactionInitiatedBy))
- .collect(Collectors.toList());
+ return ManagedObject.VisibilityUtil.streamVisibleAdapters(resultAdapter, interactionInitiatedBy)
+ .collect(Collectors.toList());
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethod.java
index f07f92f..ea8ee12 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethod.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethod.java
@@ -25,16 +25,16 @@ import java.util.List;
import java.util.Map;
import org.apache.isis.core.commons.internal._Constants;
-import org.apache.isis.core.commons.internal.collections._Lists;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.CollectionUtils;
import org.apache.isis.core.metamodel.facets.FacetedMethodParameter;
import org.apache.isis.core.metamodel.facets.ImperativeFacet;
+import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
import org.apache.isis.core.metamodel.facets.param.autocomplete.ActionParameterAutoCompleteFacetAbstract;
import org.apache.isis.core.metamodel.facets.param.autocomplete.MinLengthUtil;
import org.apache.isis.core.metamodel.spec.ManagedObject;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+
+import lombok.val;
public class ActionParameterAutoCompleteFacetViaMethod
extends ActionParameterAutoCompleteFacetAbstract
@@ -94,15 +94,11 @@ implements ImperativeFacet {
final FacetedMethodParameter facetedMethodParameter = (FacetedMethodParameter) getFacetHolder();
final Class<?> parameterType = facetedMethodParameter.getType();
- final List<ManagedObject> visibleAdapters =
- ManagedObject.VisibilityUtil.visibleAdapters(
- collectionAdapter,
- interactionInitiatedBy);
- final List<Object> visibleObjects =
- _Lists.map(visibleAdapters, ManagedObject::unwrapSingle);
+ val visiblePojoStream = ManagedObject.VisibilityUtil
+ .streamVisiblePojos(collectionAdapter, interactionInitiatedBy);
- final ObjectSpecification parameterSpec = getSpecification(parameterType);
- return CollectionUtils.getCollectionAsObjectArray(visibleObjects, parameterSpec, getObjectManager());
+ val parameterSpec = getSpecification(parameterType);
+ return CollectionFacet.Utils.collectAsPojoArray(visiblePojoStream, parameterSpec, getObjectManager());
}
@Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/method/ActionChoicesFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/method/ActionChoicesFacetViaMethod.java
index 9f2ddf5..daeff8e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/method/ActionChoicesFacetViaMethod.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/method/ActionChoicesFacetViaMethod.java
@@ -24,15 +24,13 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
-import org.apache.isis.core.commons.internal.collections._Lists;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.CollectionUtils;
import org.apache.isis.core.metamodel.facets.ImperativeFacet;
+import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
import org.apache.isis.core.metamodel.facets.param.choices.ActionChoicesFacetAbstract;
import org.apache.isis.core.metamodel.spec.DomainModelException;
import org.apache.isis.core.metamodel.spec.ManagedObject;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import lombok.val;
@@ -91,21 +89,17 @@ public class ActionChoicesFacetViaMethod extends ActionChoicesFacetAbstract impl
final Object collectionOrArray,
final Class<?> parameterType,
final InteractionInitiatedBy interactionInitiatedBy) {
+
if (collectionOrArray == null) {
return null;
}
- final ManagedObject collectionAdapter = getObjectManager().adapt(collectionOrArray);
-
- final List<ManagedObject> visibleAdapters =
- ManagedObject.VisibilityUtil.visibleAdapters(
- collectionAdapter,
- interactionInitiatedBy);
- final List<Object> filteredObjects =
- _Lists.map(visibleAdapters, ManagedObject::unwrapSingle);
+ val collectionAdapter = getObjectManager().adapt(collectionOrArray);
+ val visiblePojoStream = ManagedObject.VisibilityUtil
+ .streamVisiblePojos(collectionAdapter, interactionInitiatedBy);
- final ObjectSpecification parameterSpec = getSpecification(parameterType);
- return CollectionUtils.getCollectionAsObjectArray(filteredObjects, parameterSpec, getObjectManager());
+ val parameterSpec = getSpecification(parameterType);
+ return CollectionFacet.Utils.collectAsPojoArray(visiblePojoStream, parameterSpec, getObjectManager());
}
@Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/methodnum/ActionParameterChoicesFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/methodnum/ActionParameterChoicesFacetViaMethod.java
index f3571d2..3d6dd22 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/methodnum/ActionParameterChoicesFacetViaMethod.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/methodnum/ActionParameterChoicesFacetViaMethod.java
@@ -25,15 +25,15 @@ import java.util.List;
import java.util.Map;
import org.apache.isis.core.commons.internal._Constants;
-import org.apache.isis.core.commons.internal.collections._Lists;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.CollectionUtils;
import org.apache.isis.core.metamodel.facets.FacetedMethodParameter;
import org.apache.isis.core.metamodel.facets.ImperativeFacet;
+import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
import org.apache.isis.core.metamodel.facets.param.choices.ActionParameterChoicesFacetAbstract;
import org.apache.isis.core.metamodel.spec.ManagedObject;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+
+import lombok.val;
public class ActionParameterChoicesFacetViaMethod
extends ActionParameterChoicesFacetAbstract
@@ -82,15 +82,11 @@ implements ImperativeFacet {
final FacetedMethodParameter facetedMethodParameter = (FacetedMethodParameter) getFacetHolder();
final Class<?> parameterType = facetedMethodParameter.getType();
- final List<ManagedObject> visibleAdapters =
- ManagedObject.VisibilityUtil.visibleAdapters(
- objectAdapter,
- interactionInitiatedBy);
- final List<Object> visibleObjects =
- _Lists.map(visibleAdapters, ManagedObject::unwrapSingle);
+ val visiblePjoStream = ManagedObject.VisibilityUtil
+ .streamVisiblePojos(objectAdapter, interactionInitiatedBy);
- final ObjectSpecification parameterSpec = getSpecification(parameterType);
- return CollectionUtils.getCollectionAsObjectArray(visibleObjects, parameterSpec, getObjectManager());
+ val parameterSpec = getSpecification(parameterType);
+ return CollectionFacet.Utils.collectAsPojoArray(visiblePjoStream, parameterSpec, getObjectManager());
}
@Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/autocomplete/method/PropertyAutoCompleteFacetMethod.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/autocomplete/method/PropertyAutoCompleteFacetMethod.java
index d4e8ee6..a6cfb63 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/autocomplete/method/PropertyAutoCompleteFacetMethod.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/autocomplete/method/PropertyAutoCompleteFacetMethod.java
@@ -24,16 +24,14 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
-import org.apache.isis.core.commons.internal.collections._Lists;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.CollectionUtils;
import org.apache.isis.core.metamodel.facets.FacetedMethod;
import org.apache.isis.core.metamodel.facets.ImperativeFacet;
+import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
import org.apache.isis.core.metamodel.facets.param.autocomplete.MinLengthUtil;
import org.apache.isis.core.metamodel.facets.properties.autocomplete.PropertyAutoCompleteFacetAbstract;
import org.apache.isis.core.metamodel.spec.ManagedObject;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import lombok.val;
@@ -88,15 +86,11 @@ public class PropertyAutoCompleteFacetMethod extends PropertyAutoCompleteFacetAb
final FacetedMethod facetedMethod = (FacetedMethod) getFacetHolder();
final Class<?> propertyType = facetedMethod.getType();
- final List<ManagedObject> visibleAdapters =
- ManagedObject.VisibilityUtil.visibleAdapters(
- collectionAdapter,
- interactionInitiatedBy);
- final List<Object> filteredObjects =
- _Lists.map(visibleAdapters, ManagedObject::unwrapSingle);
+ val visiblePojoStream = ManagedObject.VisibilityUtil
+ .streamVisiblePojos(collectionAdapter, interactionInitiatedBy);
- final ObjectSpecification propertySpec = getSpecification(propertyType);
- return CollectionUtils.getCollectionAsObjectArray(filteredObjects, propertySpec, getObjectManager());
+ val propertySpec = getSpecification(propertyType);
+ return CollectionFacet.Utils.collectAsPojoArray(visiblePojoStream, propertySpec, getObjectManager());
}
@Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/choices/method/PropertyChoicesFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/choices/method/PropertyChoicesFacetViaMethod.java
index cf85c80..72ed3ce 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/choices/method/PropertyChoicesFacetViaMethod.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/choices/method/PropertyChoicesFacetViaMethod.java
@@ -24,14 +24,15 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
-import org.apache.isis.core.metamodel.commons.ObjectExtensions;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.CollectionUtils;
+import org.apache.isis.core.metamodel.facets.FacetedMethod;
import org.apache.isis.core.metamodel.facets.ImperativeFacet;
+import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
import org.apache.isis.core.metamodel.facets.properties.choices.PropertyChoicesFacetAbstract;
import org.apache.isis.core.metamodel.spec.ManagedObject;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+
+import lombok.val;
public class PropertyChoicesFacetViaMethod extends PropertyChoicesFacetAbstract implements ImperativeFacet {
@@ -66,16 +67,36 @@ public class PropertyChoicesFacetViaMethod extends PropertyChoicesFacetAbstract
public Object[] getChoices(
final ManagedObject owningAdapter,
final InteractionInitiatedBy interactionInitiatedBy) {
-
+
+
final Object options = ManagedObject.InvokeUtil.invoke(method, owningAdapter);
if (options == null) {
return null;
}
- if (options.getClass().isArray()) {
- return ObjectExtensions.asArray(options);
- }
- final ObjectSpecification specification = getSpecificationLoader().loadSpecification(choicesClass);
- return CollectionUtils.getCollectionAsObjectArray(options, specification, getObjectManager());
+
+ val collectionAdapter = getObjectManager().adapt(options);
+
+ final FacetedMethod facetedMethod = (FacetedMethod) getFacetHolder();
+ final Class<?> propertyType = facetedMethod.getType();
+
+ val visiblePojoStream = ManagedObject.VisibilityUtil
+ .streamVisiblePojos(collectionAdapter, interactionInitiatedBy);
+
+ val propertySpec = getSpecification(propertyType);
+ return CollectionFacet.Utils.collectAsPojoArray(visiblePojoStream, propertySpec, getObjectManager());
+
+
+ //XXX legacy of
+
+// final Object options = ManagedObject.InvokeUtil.invoke(method, owningAdapter);
+// if (options == null) {
+// return null;
+// }
+// if (options.getClass().isArray()) {
+// return ObjectExtensions.asArray(options);
+// }
+// final ObjectSpecification specification = getSpecificationLoader().loadSpecification(choicesClass);
+// return CollectionUtils.getCollectionAsObjectArray(options, specification, getObjectManager());
}
@Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/ActionParameterChoicesFacetFromParentedCollection.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/ActionParameterChoicesFacetFromParentedCollection.java
index 719fd5c..51701b6 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/ActionParameterChoicesFacetFromParentedCollection.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/ActionParameterChoicesFacetFromParentedCollection.java
@@ -51,8 +51,7 @@ public class ActionParameterChoicesFacetFromParentedCollection extends ActionPar
final ManagedObject parentAdapter = determineParentAdapter(target);
final ManagedObject objectAdapter = otma.get(parentAdapter, interactionInitiatedBy);
- final List<ManagedObject> objectAdapters = CollectionFacet.Utils.toAdapterList(objectAdapter);
- return ManagedObject.unwrapMultipleAsArray(objectAdapters);
+ return CollectionFacet.toArrayOfPojos(objectAdapter);
}
/**
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/classsubstitutor/ClassSubstitutor.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/classsubstitutor/ClassSubstitutor.java
index c870f26..f6290cc 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/classsubstitutor/ClassSubstitutor.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/classsubstitutor/ClassSubstitutor.java
@@ -19,10 +19,20 @@
package org.apache.isis.core.metamodel.services.classsubstitutor;
+import java.util.function.Supplier;
+
+import lombok.Value;
+
/**
* Provides capability to translate or ignore classes.
*/
public interface ClassSubstitutor {
+
+ @Value
+ static class Substitution<S> {
+ Class<S> substitutedType;
+ Supplier<S> factory;
+ }
Class<?> getClass(@lombok.NonNull @org.springframework.lang.NonNull Class<?> cls);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObject.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObject.java
index 3e34ff6..640490d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObject.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObject.java
@@ -26,7 +26,6 @@ import java.util.List;
import java.util.Set;
import java.util.function.Function;
import java.util.function.Predicate;
-import java.util.stream.Collectors;
import java.util.stream.Stream;
import javax.annotation.Nullable;
@@ -366,19 +365,27 @@ public interface ManagedObject {
}
/**
- * Filters a collection (an adapter around either a Collection or an Object[]) and returns a list of
+ * Filters a collection (an adapter around either a Collection or an Object[]) and returns a stream of
* {@link ManagedObject}s of those that are visible (as per any facet(s) installed on the element class
* of the collection).
- * @param collectionAdapter - an adapter around a collection (as returned by a getter of a collection, or of an autoCompleteNXxx() or choicesNXxx() method, etc
+ * @param collectionAdapter - an adapter around a collection (as returned by a getter of a collection, or of an autoCompleteNXxx() or choicesNXxx() method, etc
* @param interactionInitiatedBy
*/
- public static List<ManagedObject> visibleAdapters(
+ public static Stream<ManagedObject> streamVisibleAdapters(
final ManagedObject collectionAdapter,
final InteractionInitiatedBy interactionInitiatedBy) {
- return CollectionFacet.Utils.streamAdapters(collectionAdapter)
- .filter(VisibilityUtil.filterOn(interactionInitiatedBy))
- .collect(Collectors.toList());
+ return CollectionFacet.streamAdapters(collectionAdapter)
+ .filter(VisibilityUtil.filterOn(interactionInitiatedBy));
+ }
+
+ public static Stream<Object> streamVisiblePojos(
+ final ManagedObject collectionAdapter,
+ final InteractionInitiatedBy interactionInitiatedBy) {
+
+ return CollectionFacet.streamAdapters(collectionAdapter)
+ .filter(VisibilityUtil.filterOn(interactionInitiatedBy))
+ .map(ManagedObject::unwrapSingle);
}
/**
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationDefault.java
index 8d26180..1cd5160 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationDefault.java
@@ -177,8 +177,7 @@ extends ObjectAssociationAbstract implements OneToManyAssociation {
// REVIEW should we be able to determine if a collection is empty
// without loading it?
final ManagedObject collection = get(parentAdapter, interactionInitiatedBy);
- final CollectionFacet facet = CollectionFacet.Utils.getCollectionFacetFromSpec(collection);
- return facet.size(collection) == 0;
+ return CollectionFacet.elementCount(collection) == 0;
}
// -- add, clear
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/snapshot/IsisSchema.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/snapshot/IsisSchema.java
index 5f955d5..3523f20 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/snapshot/IsisSchema.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/snapshot/IsisSchema.java
@@ -174,8 +174,7 @@ final class IsisSchema {
void setIsisCollection(final Element element, final String prefix, final String fullyQualifiedClassName, final ManagedObject collection) {
setAttribute(element, "feature", FEATURE_COLLECTION);
setAttribute(element, "type", prefix + ":" + fullyQualifiedClassName);
- final CollectionFacet facet = CollectionFacet.Utils.getCollectionFacetFromSpec(collection);
- setAttribute(element, "size", "" + facet.size(collection));
+ setAttribute(element, "size", "" + CollectionFacet.elementCount(collection));
}
}
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 e48c6cd..42957f4 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
@@ -523,12 +523,12 @@ public class XmlSnapshot implements Snapshot {
if (log.isDebugEnabled()) {
log.debug("includeField(Pl, Vec, Str): 1->M: {}",
- log("collection.size", "" + CollectionFacet.Utils.size(collection)));
+ log("collection.size", "" + CollectionFacet.elementCount(collection)));
}
final boolean[] allFieldsNavigated = { true }; // fast non-thread-safe value reference
- CollectionFacet.Utils.streamAdapters(collection).forEach(referencedObject -> {
+ CollectionFacet.streamAdapters(collection).forEach(referencedObject -> {
final boolean appendedXml = appendXmlThenIncludeRemaining(fieldPlace, referencedObject, names,
annotation);
if (log.isDebugEnabled()) {
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/CollectionUtilsTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/CollectionFacetUtilsTest.java
similarity index 86%
rename from core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/CollectionUtilsTest.java
rename to core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/CollectionFacetUtilsTest.java
index a4b0af3..bb603e9 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/CollectionUtilsTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/CollectionFacetUtilsTest.java
@@ -45,13 +45,14 @@ import static org.hamcrest.CoreMatchers.nullValue;
import static org.junit.Assert.assertThat;
import org.apache.isis.core.commons.internal.collections._Lists;
+import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
-public class CollectionUtilsTest {
+public class CollectionFacetUtilsTest {
@Rule
public ExpectedException expectedException = ExpectedException.none();
- Iterable<Object> iterable;
+ List<Object> iterable;
@Before
public void setUp() throws Exception {
@@ -77,7 +78,7 @@ public class CollectionUtilsTest {
Collection.class
);
for (Class<?> collectionType : collectionTypes) {
- Object o = CollectionUtils.copyOf(iterable, collectionType);
+ Object o = CollectionFacet.Utils.collect(iterable.stream(), collectionType);
assertThat(o, is(not(nullValue())));
assertThat(collectionType.isAssignableFrom(o.getClass()), is(true));
@@ -90,7 +91,7 @@ public class CollectionUtilsTest {
@Test
public void whenArray() throws Exception {
- Object o = CollectionUtils.copyOf(iterable, String[].class);
+ Object o = CollectionFacet.Utils.collect(iterable.stream(), String[].class);
assertThat(o instanceof String[], is(true));
String[] copy = (String[])o;
@@ -99,7 +100,7 @@ public class CollectionUtilsTest {
@Test
public void whenNotSupported() throws Exception {
- Object o = CollectionUtils.copyOf(iterable, Map.class);
+ Object o = CollectionFacet.Utils.collect(iterable.stream(), Map.class);
assertThat(o, is(nullValue()));
}
@@ -108,7 +109,7 @@ public class CollectionUtilsTest {
expectedException.expect(IllegalArgumentException.class);
- CollectionUtils.copyOf(iterable, null);
+ CollectionFacet.Utils.collect(iterable.stream(), null);
}
@Test
@@ -116,7 +117,7 @@ public class CollectionUtilsTest {
expectedException.expect(IllegalArgumentException.class);
- CollectionUtils.copyOf(null, List.class);
+ CollectionFacet.Utils.collect(null, List.class);
}
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ActionResultReprRenderer.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ActionResultReprRenderer.java
index b24a7f3..86530a0 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ActionResultReprRenderer.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ActionResultReprRenderer.java
@@ -137,7 +137,7 @@ public class ActionResultReprRenderer extends ReprRendererAbstract<ActionResultR
case LIST:
final Stream<ManagedObject> collectionAdapters =
- CollectionFacet.Utils.streamAdapters(returnedAdapter);
+ CollectionFacet.streamAdapters(returnedAdapter);
final ListReprRenderer listReprRenderer =
new ListReprRenderer(resourceContext, null, representation).withElementRel(Rel.ELEMENT);
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 626528b..d1d93e7 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
@@ -99,7 +99,7 @@ public class ObjectCollectionReprRenderer extends AbstractObjectMemberReprRender
final LinkFollowSpecs followHref = linkFollower.follow("href");
boolean eagerlyRender = resourceContext.honorUiHints() && renderEagerly(valueAdapter) || !followHref.isTerminated();
- final Stream<ManagedObject> elementAdapters = CollectionFacet.Utils.streamAdapters(valueAdapter);
+ final Stream<ManagedObject> elementAdapters = CollectionFacet.streamAdapters(valueAdapter);
final List<JsonRepresentation> list = _Lists.newArrayList();
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceOrgApacheIsisV1.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceOrgApacheIsisV1.java
index 6aa0bdb..acb6d06 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceOrgApacheIsisV1.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceOrgApacheIsisV1.java
@@ -251,7 +251,7 @@ public class ContentNegotiationServiceOrgApacheIsisV1 extends ContentNegotiation
//final CollectionFacet collectionFacet = returnType.getFacet(CollectionFacet.class);
final Stream<ManagedObject> collectionAdapters =
- CollectionFacet.Utils.streamAdapters(returnedAdapter);
+ CollectionFacet.streamAdapters(returnedAdapter);
appendStreamTo(resourceContext, collectionAdapters, rootRepresentation, suppression);
@@ -400,7 +400,7 @@ public class ContentNegotiationServiceOrgApacheIsisV1 extends ContentNegotiation
return;
}
- final Stream<ManagedObject> adapters = CollectionFacet.Utils.streamAdapters(valueAdapter);
+ final Stream<ManagedObject> adapters = CollectionFacet.streamAdapters(valueAdapter);
appendStreamTo(resourceContext, adapters, representation, suppression);
}