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 2018/09/08 23:13:46 UTC
[isis] 05/06: ISIS-1976: kick in new OidFactory
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch ISIS-1976-rethink-object-adapters
in repository https://gitbox.apache.org/repos/asf/isis.git
commit ef06f4f0afa77a976c366d7835f8aaf9805a92e6
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sun Sep 9 00:15:36 2018 +0200
ISIS-1976: kick in new OidFactory
Task-Url: https://issues.apache.org/jira/browse/ISIS-1976
---
...ObjectAdapterContext_ObjectAdapterProvider.java | 35 +++-------------------
.../factories/OidFactory_Builder.java | 7 ++++-
2 files changed, 10 insertions(+), 32 deletions(-)
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_ObjectAdapterProvider.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_ObjectAdapterProvider.java
index 776c4db..3e1041f 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_ObjectAdapterProvider.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_ObjectAdapterProvider.java
@@ -19,6 +19,7 @@
package org.apache.isis.core.runtime.system.persistence.adaptermanager;
import java.util.List;
+import java.util.Objects;
import java.util.function.Function;
import java.util.stream.Collectors;
@@ -108,37 +109,9 @@ class ObjectAdapterContext_ObjectAdapterProvider implements ObjectAdapterProvide
return existing;
}
- final RootOid rootOid2 = oidFactory.oidFor(pojo);
-
-// if(rootOid2==null) {
-// System.err.println("!!! "+pojo);
-// _Exceptions.throwUnexpectedCodeReach();
-// }
-//
-// if(rootOid2!=null && rootOid2.isValue()) {
-// return objectAdapterContext.getFactories().createRootAdapter(pojo, null);
-// }
-
- // -- legacy code
-
- final ObjectAdapter existingOrValueAdapter = existingOrValueAdapter(pojo);
- if(existingOrValueAdapter != null) {
- return existingOrValueAdapter;
- }
-
- final RootOid rootOid = objectAdapterContext.createTransientOrViewModelOid(pojo);
-
- //at this point we know its not a value
- if(rootOid2==null) {
- System.err.println("!!! expected "+rootOid);
- _Exceptions.throwUnexpectedCodeReach();
- }
-
-
- if(rootOid2!=null && rootOid2.isValue()) {
- Assert.assertEquals("expected same", rootOid, null);
- } else if(!rootOid.isTransient()) {
- Assert.assertEquals("expected same", rootOid, rootOid2);
+ final RootOid rootOid = oidFactory.oidFor(pojo);
+ if(rootOid.isValue()) {
+ return objectAdapterContext.getFactories().createRootAdapter(pojo, null);
}
final ObjectAdapter newAdapter = objectAdapterContext.getFactories().createRootAdapter(pojo, rootOid);
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/factories/OidFactory_Builder.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/factories/OidFactory_Builder.java
index a7bb938..bda33ab 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/factories/OidFactory_Builder.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/factories/OidFactory_Builder.java
@@ -21,6 +21,7 @@ package org.apache.isis.core.runtime.system.persistence.adaptermanager.factories
import java.util.ArrayList;
import java.util.List;
+import java.util.Objects;
import java.util.function.Function;
import org.apache.isis.core.metamodel.adapter.oid.RootOid;
@@ -52,11 +53,15 @@ class OidFactory_Builder implements OidFactoryBuilder {
final ObjectSpecification spec = specProvider.apply(pojo);
- return handler.stream()
+ final RootOid rootOid = handler.stream()
.filter(h->h.isHandling(pojo, spec))
.findFirst()
.map(h->h.oidFor(pojo, spec))
.orElse(null);
+
+ Objects.requireNonNull(rootOid, "Could not create an Oid for pojo: "+pojo);
+
+ return rootOid;
}
};