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/18 11:43:23 UTC
[isis] branch master updated: ISIS-2158: remove leftovers of
FreeStandingList (temp type: Container)
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 c0696cc ISIS-2158: remove leftovers of FreeStandingList (temp type: Container)
c0696cc is described below
commit c0696cc291cc858d76aaf8f43dc8f886119370ed
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sat Jan 18 12:43:10 2020 +0100
ISIS-2158: remove leftovers of FreeStandingList (temp type: Container)
---
.../ClassSubstitutorForCollections.java | 4 -
.../apache/isis/core/metamodel/spec/Container.java | 36 ----
.../specloader/SpecificationLoaderDefault.java | 29 +---
.../specimpl/ObjectSpecificationAbstract.java | 1 -
.../standalonelist/CollectionFacetOnContainer.java | 66 --------
.../ObjectSpecificationOnContainer.java | 185 ---------------------
.../ValueTypeProviderForCollections.java | 4 +-
7 files changed, 10 insertions(+), 315 deletions(-)
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/classsubstitutor/ClassSubstitutorForCollections.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/classsubstitutor/ClassSubstitutorForCollections.java
index 032c346..920e61d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/classsubstitutor/ClassSubstitutorForCollections.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/classsubstitutor/ClassSubstitutorForCollections.java
@@ -31,7 +31,6 @@ import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import org.apache.isis.applib.annotation.OrderPrecedence;
-import org.apache.isis.core.metamodel.spec.Container;
import lombok.NonNull;
@@ -42,9 +41,6 @@ public class ClassSubstitutorForCollections implements ClassSubstitutor {
@Override
public Substitution getSubstitution(@NonNull Class<?> cls) {
- if(Container.class.isAssignableFrom(cls)) {
- return Substitution.replaceClass(Container.class);
- }
if(Vector.class.isAssignableFrom(cls)) {
return Substitution.replaceClass(Vector.class);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/Container.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/Container.java
deleted file mode 100644
index b506f22..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/Container.java
+++ /dev/null
@@ -1,36 +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.spec;
-
-import java.util.stream.Stream;
-
-/**
- * Possibly just temporary for refactoring, as of FreeStandingList being removed.
- *
- * @since 2.0
- */
-public interface Container {
-
- ObjectSpecification getElementSpecification();
-
- String titleString();
-
- Stream<ManagedObject> stream(Object query);
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationLoaderDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationLoaderDefault.java
index 8480b7a..b166bab 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationLoaderDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationLoaderDefault.java
@@ -56,15 +56,12 @@ import org.apache.isis.core.metamodel.services.classsubstitutor.ClassSubstitutor
import org.apache.isis.core.metamodel.services.classsubstitutor.ClassSubstitutorDefault;
import org.apache.isis.core.metamodel.services.classsubstitutor.ClassSubstitutorForCollections;
import org.apache.isis.core.metamodel.services.classsubstitutor.ClassSubstitutorRegistry;
-import org.apache.isis.core.metamodel.spec.Container;
import org.apache.isis.core.metamodel.spec.ObjectSpecId;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.specloader.facetprocessor.FacetProcessor;
import org.apache.isis.core.metamodel.specloader.postprocessor.PostProcessor;
import org.apache.isis.core.metamodel.specloader.specimpl.IntrospectionState;
-import org.apache.isis.core.metamodel.specloader.specimpl.ObjectSpecificationAbstract;
import org.apache.isis.core.metamodel.specloader.specimpl.dflt.ObjectSpecificationDefault;
-import org.apache.isis.core.metamodel.specloader.specimpl.standalonelist.ObjectSpecificationOnContainer;
import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorAbstract;
import org.apache.isis.core.metamodel.specloader.validator.ValidationFailures;
import org.apache.isis.core.metamodel.valuetypes.ValueTypeProviderDefault;
@@ -475,25 +472,17 @@ public class SpecificationLoaderDefault implements SpecificationLoader {
}
// ... and create the specs
- final ObjectSpecificationAbstract objectSpec;
- if (Container.class.isAssignableFrom(cls)) {
- objectSpec = new ObjectSpecificationOnContainer(facetProcessor, postProcessor);
- objectSpec.setMetaModelContext(metaModelContext);
-
- } else {
-
- val typeRegistry = isisBeanTypeRegistryHolder.getIsisBeanTypeRegistry();
+ val typeRegistry = isisBeanTypeRegistryHolder.getIsisBeanTypeRegistry();
- val managedBeanNameIfAny = typeRegistry.getManagedBeanNameForType(cls);
- objectSpec = new ObjectSpecificationDefault(
- cls,
- metaModelContext,
- facetProcessor,
- managedBeanNameIfAny.orElse(null),
- postProcessor,
- classSubstitutorRegistry);
- }
+ val managedBeanNameIfAny = typeRegistry.getManagedBeanNameForType(cls);
+ val objectSpec = new ObjectSpecificationDefault(
+ cls,
+ metaModelContext,
+ facetProcessor,
+ managedBeanNameIfAny.orElse(null),
+ postProcessor,
+ classSubstitutorRegistry);
return objectSpec;
}
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 fecdf8d..afdce5f 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
@@ -88,7 +88,6 @@ import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
import org.apache.isis.core.metamodel.specloader.facetprocessor.FacetProcessor;
import org.apache.isis.core.metamodel.specloader.postprocessor.PostProcessor;
-import org.apache.isis.core.metamodel.specloader.specimpl.standalonelist.ObjectSpecificationOnContainer;
import org.apache.isis.core.security.authentication.AuthenticationSession;
import static org.apache.isis.core.commons.internal.base._NullSafe.stream;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/standalonelist/CollectionFacetOnContainer.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/standalonelist/CollectionFacetOnContainer.java
deleted file mode 100644
index c2f1607..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/standalonelist/CollectionFacetOnContainer.java
+++ /dev/null
@@ -1,66 +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.specloader.specimpl.standalonelist;
-
-import java.util.function.Supplier;
-import java.util.stream.Stream;
-
-import org.apache.isis.core.commons.internal.exceptions._Exceptions;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.collections.CollectionFacetAbstract;
-import org.apache.isis.core.metamodel.spec.Container;
-import org.apache.isis.core.metamodel.spec.ManagedObject;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-
-public class CollectionFacetOnContainer extends CollectionFacetAbstract {
-
- public CollectionFacetOnContainer(final FacetHolder holder) {
- super(holder);
- }
-
- @Override
- public Stream<ManagedObject> stream(ManagedObject wrappedContainer) {
- // TODO instead create and subclass a ContainerFacet
- return unwrap(wrappedContainer).stream(null);
- }
-
- @Override
- public int size(final ManagedObject wrappedContainer) {
- // TODO instead create and subclass a ContainerFacet
- throw _Exceptions.unsupportedOperation();
- }
-
- @Override
- public Object populatePojo(
- Supplier<Object> emptyCollectionPojoFactory,
- ObjectSpecification collectionSpec,
- Stream<ManagedObject> elements,
- int elementCount) {
-
- throw _Exceptions.unexpectedCodeReach();
- }
-
- // -- HELPER
-
- private Container unwrap(final ManagedObject wrappedContainer) {
- return (Container) wrappedContainer.getPojo();
- }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/standalonelist/ObjectSpecificationOnContainer.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/standalonelist/ObjectSpecificationOnContainer.java
deleted file mode 100644
index 3d76697..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/standalonelist/ObjectSpecificationOnContainer.java
+++ /dev/null
@@ -1,185 +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.specloader.specimpl.standalonelist;
-
-import org.apache.isis.core.commons.collections.Can;
-import org.apache.isis.core.commons.internal.base._Lazy;
-import org.apache.isis.core.commons.internal.ioc.BeanSort;
-import org.apache.isis.core.metamodel.facetapi.FacetUtil;
-import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet;
-import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacetDefaultToObject;
-import org.apache.isis.core.metamodel.facets.object.objectspecid.classname.ObjectSpecIdFacetOnStandaloneList;
-import org.apache.isis.core.metamodel.spec.ActionType;
-import org.apache.isis.core.metamodel.spec.Container;
-import org.apache.isis.core.metamodel.spec.ElementSpecificationProvider;
-import org.apache.isis.core.metamodel.spec.ManagedObject;
-import org.apache.isis.core.metamodel.spec.ObjectSpecId;
-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.ObjectAssociation;
-import org.apache.isis.core.metamodel.specloader.facetprocessor.FacetProcessor;
-import org.apache.isis.core.metamodel.specloader.postprocessor.PostProcessor;
-import org.apache.isis.core.metamodel.specloader.specimpl.ObjectSpecificationAbstract;
-
-import static org.apache.isis.core.commons.internal.base._With.mapIfPresentElse;
-
-/**
- * A custom {@link ObjectSpecification} that is designed to treat the
- * {@link Container} class as a "standalone" collection.
- */
-public class ObjectSpecificationOnContainer extends ObjectSpecificationAbstract {
-
- private static final String NAME = "Instances";
- private static final String DESCRIBED_AS = "Typed instances";
- private static final String ICON_NAME = "instances";
-
- // -- constructor
-
- public ObjectSpecificationOnContainer(
- final FacetProcessor facetProcessor,
- final PostProcessor postProcessor) {
- super(Container.class, NAME, facetProcessor, postProcessor);
- this.specId = ObjectSpecId.of(getCorrespondingClass().getName());
-
- FacetUtil.addFacet(
- new ObjectSpecIdFacetOnStandaloneList(specId, this));
- }
-
-
-
- // -- Introspection
-
- @Override
- protected void introspectTypeHierarchy() {
- loadSpecOfSuperclass(Object.class);
-
- addFacet(new CollectionFacetOnContainer(this));
- addFacet(new TypeOfFacetDefaultToObject(this) {});
-
- // ObjectList specific
- FacetUtil.addFacet(new NamedFacetOnStandaloneList(NAME, this));
- FacetUtil.addFacet(new PluralFacetOnStandaloneList(NAME, this));
- FacetUtil.addFacet(new DescribedAsFacetOnStandaloneList(DESCRIBED_AS, this));
- FacetUtil.addFacet(new ObjectSpecIdFacetOnStandaloneList(specId, this));
- // don't install anything for NotPersistableFacet
- }
-
- @Override
- protected void introspectMembers() {
- // no-op.
- }
-
- @Override
- public BeanSort getBeanSort() {
- return BeanSort.COLLECTION;
- }
-
- // -- PREDICTATES
-
- @Override
- public boolean isViewModelCloneable(ManagedObject targetAdapter) {
- return false;
- }
-
- @Override
- public boolean isWizard() {
- return false;
- }
-
-
-
- // -- Associations
- /**
- * Review: is this ever called for an instance of this class? If not, then
- * no need to override.
- */
- @Override
- public ObjectAssociation getAssociation(final String id) {
- return null;
- }
-
- // -- Title and Icon
-
- @Override
- public String getTitle(ManagedObject contextAdapterIfAny, ManagedObject targetAdapter) {
- return ((Container) targetAdapter.getPojo()).titleString();
- }
-
- @Override
- public String getIconName(final ManagedObject object) {
- return ICON_NAME;
- }
-
- // -- Object Actions
- /**
- * Review: is it necessary to override for this subclass?
- */
- @Override
- public ObjectAction getObjectAction(
- final ActionType type,
- final String id,
- final Can<ObjectSpecification> parameters) {
-
- return null;
- }
-
- /**
- * Review: is it necessary to override for this subclass?
- */
- @Override
- public ObjectAction getObjectAction(final ActionType type, final String id) {
- return null;
- }
-
- /**
- * Review: is it necessary to override for this subclass?
- */
- @Override
- public ObjectAction getObjectAction(final String nameParmsIdentityString) {
- return null;
- }
-
- // -- ELEMENT SPECIFICATION
-
- private final _Lazy<ObjectSpecification> elementSpecification = _Lazy.of(this::lookupElementSpecification);
-
- @Override
- public ObjectSpecification getElementSpecification() {
- return elementSpecification.get();
- }
-
- private ObjectSpecification lookupElementSpecification() {
- return mapIfPresentElse(
- getFacet(TypeOfFacet.class),
- typeOfFacet -> ElementSpecificationProvider.of(typeOfFacet).getElementType(),
- null);
- }
-
-
-
- @Override
- public String getManagedBeanName() {
- return null; // not a managed-bean
- }
-
- // --
-
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuetypes/ValueTypeProviderForCollections.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuetypes/ValueTypeProviderForCollections.java
index 8939891..fe8b250 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuetypes/ValueTypeProviderForCollections.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuetypes/ValueTypeProviderForCollections.java
@@ -31,7 +31,6 @@ import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import org.apache.isis.applib.annotation.OrderPrecedence;
-import org.apache.isis.core.metamodel.spec.Container;
@Component
@Named("isisMetaModel.ValueTypeProviderCollections")
@@ -43,8 +42,7 @@ public class ValueTypeProviderForCollections implements ValueTypeProvider {
return Collections.unmodifiableList(Arrays.asList(
ValueTypeDefinition.collection(List.class),
ValueTypeDefinition.collection(Set.class),
- ValueTypeDefinition.collection(SortedSet.class),
- ValueTypeDefinition.collection(Container.class)
+ ValueTypeDefinition.collection(SortedSet.class)
));
}