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/03/25 14:48:15 UTC
[isis] branch master updated: ISIS-1930 allow lazy message string
generation
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 9fff9f6 ISIS-1930 allow lazy message string generation
9fff9f6 is described below
commit 9fff9f66e99b54889f07ba8303db33f3e54de8e2
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sun Mar 25 16:48:11 2018 +0200
ISIS-1930 allow lazy message string generation
also replaced some hamcrest idioms by java language equivalent
---
.../org/apache/isis/core/commons/ensure/Ensure.java | 9 +++++++++
.../core/runtime/persistence/adapter/PojoAdapter.java | 5 ++---
.../runtime/system/persistence/PersistenceSession4.java | 12 ++++++------
.../core/runtime/persistence/adapter/PojoAdapter.java | 7 +++----
.../runtime/system/persistence/PersistenceSession5.java | 17 ++++++++++-------
5 files changed, 30 insertions(+), 20 deletions(-)
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/commons/ensure/Ensure.java b/core/metamodel/src/main/java/org/apache/isis/core/commons/ensure/Ensure.java
index 6bfca7e..98b615d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/commons/ensure/Ensure.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/commons/ensure/Ensure.java
@@ -19,6 +19,8 @@
package org.apache.isis.core.commons.ensure;
+import java.util.function.Supplier;
+
import org.hamcrest.Matcher;
import org.hamcrest.StringDescription;
@@ -77,6 +79,13 @@ public final class Ensure {
return arg;
}
+ public static <T> T ensureThatArg(final T arg, final Matcher<T> matcher, final Supplier<String> message) {
+ if (!matcher.matches(arg)) {
+ throw new IllegalArgumentException(message.get());
+ }
+ return arg;
+ }
+
/**
* To ensure that the current state of this object (instance fields) is
* correct.
diff --git a/core/plugins/jdo-datanucleus-4/src/main/java/org/apache/isis/core/runtime/persistence/adapter/PojoAdapter.java b/core/plugins/jdo-datanucleus-4/src/main/java/org/apache/isis/core/runtime/persistence/adapter/PojoAdapter.java
index fab2a31..47877dd 100644
--- a/core/plugins/jdo-datanucleus-4/src/main/java/org/apache/isis/core/runtime/persistence/adapter/PojoAdapter.java
+++ b/core/plugins/jdo-datanucleus-4/src/main/java/org/apache/isis/core/runtime/persistence/adapter/PojoAdapter.java
@@ -19,8 +19,7 @@
package org.apache.isis.core.runtime.persistence.adapter;
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.CoreMatchers.notNullValue;
+import java.util.Objects;
import org.apache.isis.core.commons.authentication.AuthenticationSession;
import org.apache.isis.core.commons.ensure.Ensure;
@@ -133,7 +132,7 @@ public class PojoAdapter extends InstanceAbstract implements ObjectAdapter {
@Override
public void replaceOid(Oid persistedOid) {
- Ensure.ensureThatArg(oid, is(notNullValue())); // values have no oid, so cannot be replaced
+ Objects.requireNonNull(oid); // values have no oid, so cannot be replaced
this.oid = persistedOid;
}
diff --git a/core/plugins/jdo-datanucleus-4/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession4.java b/core/plugins/jdo-datanucleus-4/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession4.java
index 691e06e..87895fb 100644
--- a/core/plugins/jdo-datanucleus-4/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession4.java
+++ b/core/plugins/jdo-datanucleus-4/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession4.java
@@ -20,7 +20,6 @@ package org.apache.isis.core.runtime.system.persistence;
import static org.apache.isis.core.commons.ensure.Ensure.ensureThatArg;
import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.CoreMatchers.notNullValue;
import java.lang.reflect.Array;
import java.lang.reflect.Modifier;
@@ -30,6 +29,7 @@ import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.UUID;
import javax.jdo.FetchGroup;
@@ -723,7 +723,7 @@ implements IsisLifecycleListener2.PersistenceSessionLifecycleManagement {
// can be either a view model or a persistent entity.
- ensureThatArg(oid, is(notNullValue()));
+ Objects.requireNonNull(oid);
final ObjectAdapter adapter = getAdapterFor(oid);
if (adapter != null) {
@@ -1127,14 +1127,14 @@ implements IsisLifecycleListener2.PersistenceSessionLifecycleManagement {
@Override
public ObjectAdapter getAdapterFor(final Object pojo) {
- ensureThatArg(pojo, is(notNullValue()));
+ Objects.requireNonNull(pojo);
return pojoAdapterMap.getAdapter(pojo);
}
@Override
public ObjectAdapter getAdapterFor(final Oid oid) {
- ensureThatArg(oid, is(notNullValue()));
+ Objects.requireNonNull(oid);
ensureMapsConsistent(oid);
return oidAdapterMap.getAdapter(oid);
@@ -1195,7 +1195,7 @@ implements IsisLifecycleListener2.PersistenceSessionLifecycleManagement {
* Fail early if any problems.
*/
private void ensureMapsConsistent(final Oid oid) {
- ensureThatArg(oid, is(notNullValue()));
+ Objects.requireNonNull(oid);
final ObjectAdapter adapter = oidAdapterMap.getAdapter(oid);
if (adapter == null) {
@@ -1243,7 +1243,7 @@ implements IsisLifecycleListener2.PersistenceSessionLifecycleManagement {
}
ensureThatArg(
adapter, is(adapterAccordingToMap),
- "mismatch in "
+ ()->"mismatch in "
+ mapName
+ ": provided adapter's OID: " + adapterOid + ", \n"
+ "but map's adapter's OID was: " + adapterAccordingToMap.getOid());
diff --git a/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/core/runtime/persistence/adapter/PojoAdapter.java b/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/core/runtime/persistence/adapter/PojoAdapter.java
index f5cb832..f9ad222 100644
--- a/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/core/runtime/persistence/adapter/PojoAdapter.java
+++ b/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/core/runtime/persistence/adapter/PojoAdapter.java
@@ -23,6 +23,8 @@ import org.datanucleus.enhancement.Persistable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.util.Objects;
+
import org.apache.isis.core.commons.authentication.AuthenticationSession;
import org.apache.isis.core.commons.ensure.Ensure;
import org.apache.isis.core.commons.exceptions.IsisException;
@@ -44,9 +46,6 @@ import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
import org.apache.isis.core.runtime.system.persistence.PersistenceSession5;
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.CoreMatchers.notNullValue;
-
public class PojoAdapter extends InstanceAbstract implements ObjectAdapter {
private final static Logger LOG = LoggerFactory.getLogger(PojoAdapter.class);
@@ -134,7 +133,7 @@ public class PojoAdapter extends InstanceAbstract implements ObjectAdapter {
@Override
public void replaceOid(Oid persistedOid) {
- Ensure.ensureThatArg(oid, is(notNullValue())); // values have no oid, so cannot be replaced
+ Objects.requireNonNull(oid); // values have no oid, so cannot be replaced
this.oid = persistedOid;
}
diff --git a/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession5.java b/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession5.java
index b2cc655..06cf1cc 100644
--- a/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession5.java
+++ b/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession5.java
@@ -20,7 +20,6 @@ package org.apache.isis.core.runtime.system.persistence;
import static org.apache.isis.core.commons.ensure.Ensure.ensureThatArg;
import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.CoreMatchers.notNullValue;
import java.lang.reflect.Array;
import java.lang.reflect.Modifier;
@@ -30,6 +29,7 @@ import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.UUID;
import javax.jdo.FetchGroup;
@@ -41,6 +41,7 @@ import javax.jdo.listener.InstanceLifecycleListener;
import org.apache.isis.applib.internal.collections._Lists;
import org.apache.isis.applib.internal.collections._Maps;
+import org.apache.isis.applib.internal.exceptions._Exceptions;
import org.apache.isis.applib.query.Query;
import org.apache.isis.applib.services.bookmark.Bookmark;
import org.apache.isis.applib.services.bookmark.BookmarkService;
@@ -723,7 +724,7 @@ implements IsisLifecycleListener2.PersistenceSessionLifecycleManagement {
// can be either a view model or a persistent entity.
- ensureThatArg(oid, is(notNullValue()));
+ Objects.requireNonNull(oid);
final ObjectAdapter adapter = getAdapterFor(oid);
if (adapter != null) {
@@ -1127,14 +1128,14 @@ implements IsisLifecycleListener2.PersistenceSessionLifecycleManagement {
@Override
public ObjectAdapter getAdapterFor(final Object pojo) {
- ensureThatArg(pojo, is(notNullValue()));
+ Objects.requireNonNull(pojo);
return pojoAdapterMap.getAdapter(pojo);
}
@Override
public ObjectAdapter getAdapterFor(final Oid oid) {
- ensureThatArg(oid, is(notNullValue()));
+ Objects.requireNonNull(oid);
ensureMapsConsistent(oid);
return oidAdapterMap.getAdapter(oid);
@@ -1195,7 +1196,7 @@ implements IsisLifecycleListener2.PersistenceSessionLifecycleManagement {
* Fail early if any problems.
*/
private void ensureMapsConsistent(final Oid oid) {
- ensureThatArg(oid, is(notNullValue()));
+ Objects.requireNonNull(oid);
final ObjectAdapter adapter = oidAdapterMap.getAdapter(oid);
if (adapter == null) {
@@ -1241,15 +1242,17 @@ implements IsisLifecycleListener2.PersistenceSessionLifecycleManagement {
+ mapName
+ ": provided adapter's OID: " + adapterOid + "; but no adapter found in map");
}
+
ensureThatArg(
adapter, is(adapterAccordingToMap),
- "mismatch in "
+ ()->"mismatch in "
+ mapName
+ ": provided adapter's OID: " + adapterOid + ", \n"
+ "but map's adapter's OID was: " + adapterAccordingToMap.getOid());
}
+
- @Override
+ @Override
public ObjectAdapter adapterForAny(RootOid rootOid) {
final ObjectSpecId specId = rootOid.getObjectSpecId();
--
To stop receiving notification emails like this one, please contact
ahuber@apache.org.