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

commit 42068daada32e92821652cb05cdb6de9127be7a7
Author: Andi Huber <ahu...@apache.org>
AuthorDate: Mon Sep 5 05:41:45 2022 +0200

    ISIS-3199: simplify ObjectCreator
---
 ...tor_builtinHandlers.java => ObjectCreator.java} | 26 ++++----
 .../metamodel/objectmanager/ObjectManager.java     |  3 +-
 .../objectmanager/ObjectManagerDefault.java        |  1 -
 .../objectmanager/create/ObjectCreator.java        | 74 ----------------------
 .../core/metamodel/spec/ObjectSpecification.java   |  7 +-
 .../memento/_ObjectMementoForScalar.java           |  3 +-
 6 files changed, 18 insertions(+), 96 deletions(-)

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/ObjectCreator.java
similarity index 87%
rename from 
core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/create/ObjectCreator_builtinHandlers.java
rename to 
core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/ObjectCreator.java
index ed44f7c1c0..d36705e147 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/ObjectCreator.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.core.metamodel.objectmanager.create;
+package org.apache.isis.core.metamodel.objectmanager;
 
 import java.lang.reflect.Array;
 import java.lang.reflect.Modifier;
@@ -38,14 +38,22 @@ import lombok.val;
 import lombok.extern.log4j.Log4j2;
 
 /**
+ * Handles injection and lifecycle callbacks.
  *
  * @since 2.0
- *
  */
-final class ObjectCreator_builtinHandlers {
+public interface ObjectCreator {
+
+    ManagedObject createObject(ObjectSpecification objectSpecification);
+
+    // -- FACTORY
+
+    public static ObjectCreator createDefault(final MetaModelContext 
metaModelContext) {
+        return new DefaultCreationHandler(metaModelContext);
+    }
 
     @Value @Log4j2
-    public static class DefaultCreationHandler implements 
ObjectCreator.Handler {
+    public static class DefaultCreationHandler implements ObjectCreator {
 
         @Getter
         private final @NonNull MetaModelContext metaModelContext;
@@ -55,15 +63,9 @@ final class ObjectCreator_builtinHandlers {
             getMetaModelContext().getServiceRegistry()
                     .lookupServiceElseFail(ObjectLifecyclePublisher.class);
 
-        @Override
-        public boolean isHandling(final ObjectCreator.Request 
objectCreateRequest) {
-            return true;
-        }
 
         @Override
-        public ManagedObject handle(final ObjectCreator.Request 
objectCreateRequest) {
-
-            val spec = objectCreateRequest.getObjectSpecification();
+        public ManagedObject createObject(final ObjectSpecification spec) {
 
             if (log.isDebugEnabled()) {
                 log.debug("creating instance of {}", spec);
@@ -107,8 +109,6 @@ final class ObjectCreator_builtinHandlers {
 
         }
 
-
-
     }
 
 }
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/ObjectManager.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/ObjectManager.java
index 5e66ca88d3..82a1240ac7 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/ObjectManager.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/ObjectManager.java
@@ -30,7 +30,6 @@ import org.apache.isis.commons.internal.base._NullSafe;
 import org.apache.isis.commons.internal.exceptions._Exceptions;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.core.metamodel.object.ManagedObject;
-import org.apache.isis.core.metamodel.objectmanager.create.ObjectCreator;
 import org.apache.isis.core.metamodel.objectmanager.detach.ObjectDetacher;
 import org.apache.isis.core.metamodel.objectmanager.load.ObjectLoader;
 import org.apache.isis.core.metamodel.objectmanager.memento.ObjectMemorizer;
@@ -70,7 +69,7 @@ public interface ObjectManager {
      * Creates and initializes an instance conforming to given request 
parameters.
      * @param objectCreateRequest
      */
-    public default ManagedObject createObject(final ObjectCreator.Request 
objectCreateRequest) {
+    public default ManagedObject createObject(final ObjectSpecification 
objectCreateRequest) {
         return getObjectCreator().createObject(objectCreateRequest);
     }
 
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/ObjectManagerDefault.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/ObjectManagerDefault.java
index 29165f0e72..edd62be56f 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/ObjectManagerDefault.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/ObjectManagerDefault.java
@@ -29,7 +29,6 @@ import org.springframework.stereotype.Service;
 import org.apache.isis.applib.annotation.PriorityPrecedence;
 import org.apache.isis.core.metamodel.IsisModuleCoreMetamodel;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
-import org.apache.isis.core.metamodel.objectmanager.create.ObjectCreator;
 import org.apache.isis.core.metamodel.objectmanager.detach.ObjectDetacher;
 import org.apache.isis.core.metamodel.objectmanager.load.ObjectLoader;
 import org.apache.isis.core.metamodel.objectmanager.memento.ObjectMemorizer;
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/create/ObjectCreator.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/create/ObjectCreator.java
deleted file mode 100644
index 029de4a6b2..0000000000
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/create/ObjectCreator.java
+++ /dev/null
@@ -1,74 +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.objectmanager.create;
-
-import org.apache.isis.commons.handler.ChainOfResponsibility;
-import org.apache.isis.commons.internal.collections._Lists;
-import org.apache.isis.core.metamodel.context.HasMetaModelContext;
-import org.apache.isis.core.metamodel.context.MetaModelContext;
-import org.apache.isis.core.metamodel.object.ManagedObject;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-
-import lombok.Value;
-
-/**
- * @since 2.0
- */
-public interface ObjectCreator {
-
-    ManagedObject createObject(Request objectLoadRequest);
-
-    // -- REQUEST (VALUE) TYPE
-
-    @Value(staticConstructor = "of")
-    public static class Request {
-        ObjectSpecification objectSpecification;
-    }
-
-    // -- HANDLER
-
-    static interface Handler
-    extends
-        HasMetaModelContext,
-        ChainOfResponsibility.Handler<ObjectCreator.Request, ManagedObject> {
-
-    }
-
-    // -- FACTORY
-
-    public static ObjectCreator createDefault(final MetaModelContext mmc) {
-
-        return request ->
-        ChainOfResponsibility.named(
-                "ObjectCreator",
-                _Lists.of(
-                        new 
ObjectCreator_builtinHandlers.DefaultCreationHandler(mmc)
-//                      new ObjectCreator_builtinHandlers.GuardAgainstNull(),
-//                      new ObjectCreator_builtinHandlers.LoadService(),
-//                      new ObjectCreator_builtinHandlers.CreateValueDefault(),
-//                      new ObjectCreator_builtinHandlers.CreateViewModel(),
-//                      new ObjectCreator_builtinHandlers.CreateEntity(),
-//                      new ObjectCreator_builtinHandlers.CreateOther()
-                        )
-        )
-        .handle(request);
-
-    }
-
-}
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java
index a220b5adde..3dd6e8f30d 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java
@@ -69,7 +69,6 @@ import 
org.apache.isis.core.metamodel.interactions.ObjectTitleContext;
 import org.apache.isis.core.metamodel.interactions.ObjectValidityContext;
 import org.apache.isis.core.metamodel.object.ManagedObject;
 import org.apache.isis.core.metamodel.objectmanager.ObjectManager;
-import org.apache.isis.core.metamodel.objectmanager.create.ObjectCreator;
 import org.apache.isis.core.metamodel.spec.feature.MixedIn;
 import org.apache.isis.core.metamodel.spec.feature.ObjectActionContainer;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAssociationContainer;
@@ -519,13 +518,11 @@ extends
     }
 
     /**
-     * Delegates to {@link 
ObjectManager#createObject(org.apache.isis.core.metamodel.objectmanager.create.ObjectCreator.Request)}
+     * Delegates to {@link ObjectManager#createObject(ObjectSpecification)}
      * @since 2.0
      */
     default ManagedObject createObject() {
-        val mmc = getMetaModelContext();
-        val objectCreateRequest = ObjectCreator.Request.of(this);
-        val managedObject = 
mmc.getObjectManager().createObject(objectCreateRequest);
+        val managedObject = getObjectManager().createObject(this);
         return managedObject;
     }
 
diff --git 
a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/memento/_ObjectMementoForScalar.java
 
b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/memento/_ObjectMementoForScalar.java
index d728bd76fe..9553ce4494 100644
--- 
a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/memento/_ObjectMementoForScalar.java
+++ 
b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/memento/_ObjectMementoForScalar.java
@@ -96,7 +96,8 @@ implements HasLogicalType, Serializable, ObjectMemento {
 
         val spec = adapter.getSpecification();
 
-        if(spec.isIdentifiable() || spec.isParented() ) {
+        if(spec.isIdentifiable()
+                || spec.isParented() ) {
             val hintId = adapter.getPojo() instanceof HintIdProvider
                  ? ((HintIdProvider) adapter.getPojo()).hintId()
                  : null;

Reply via email to