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 2021/04/15 18:36:19 UTC
[isis] branch master updated: ISIS-2569: remove Oid.empty()
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 eb37524 ISIS-2569: remove Oid.empty()
eb37524 is described below
commit eb37524fde468dcc8bfad016a2d33868053b6ded
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Apr 15 20:36:02 2021 +0200
ISIS-2569: remove Oid.empty()
also fixes issue with BookmarkService after having converted return
types to Optional
---
.../isis/applib/services/bookmark/Bookmark.java | 3 +-
.../isis/core/metamodel/adapter/oid/Oid.java | 10 ----
.../isis/core/metamodel/adapter/oid/_EmptyOid.java | 70 ----------------------
.../core/metamodel/adapter/oid/_OidMarshaller.java | 2 -
.../metamodel/commons/CanonicalParameterUtil.java | 2 +-
...ObjectFacetDeclarativeInitializingAbstract.java | 17 ++----
.../identify/ObjectIdentifier_builtinHandlers.java | 4 +-
.../bookmarks/BookmarkServiceDefault.java | 2 +-
8 files changed, 12 insertions(+), 98 deletions(-)
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/bookmark/Bookmark.java b/api/applib/src/main/java/org/apache/isis/applib/services/bookmark/Bookmark.java
index b37b410..8af8f16 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/bookmark/Bookmark.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/bookmark/Bookmark.java
@@ -95,8 +95,7 @@ public class Bookmark implements Serializable {
/**
* The canonical form of the {@link Bookmark}, that is
- * "{@link #getLogicalTypeName() logical-type-name}{@value #SEPARATOR}{@link #getIdentifier()}".
- *
+ * {@link #getLogicalTypeName() logical-type-name}{@value #SEPARATOR}{@link #getIdentifier() identifier}.
* <p>
* This is parseable by the {@link #parse(String)}.
*/
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid.java
index 486970e..b4f9cb7 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid.java
@@ -45,10 +45,6 @@ public interface Oid extends Serializable {
// -- FACTORIES
- public static Oid empty() {
- return _EmptyOid.INSTANCE;
- }
-
public static Oid of(final LogicalType logicalType, final String identifier) {
return _SimpleOid.of(
logicalType.getLogicalTypeName(),
@@ -121,12 +117,6 @@ public interface Oid extends Serializable {
}
- // -- EMPTY OID
-
- default boolean isEmpty() {
- return false; // default, only overridden by Oid_Value
- }
-
// -- CONVERSION
public default Bookmark asBookmark() {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/_EmptyOid.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/_EmptyOid.java
deleted file mode 100644
index b7abe85..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/_EmptyOid.java
+++ /dev/null
@@ -1,70 +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.adapter.oid;
-
-import org.apache.isis.applib.services.bookmark.Bookmark;
-
-final class _EmptyOid implements Oid {
-
- private static final long serialVersionUID = 2L;
-
- static final _EmptyOid INSTANCE = new _EmptyOid();
-
- @Override
- public String stringify() {
- return null;
- }
-
- @Override
- public boolean isEmpty() {
- return true;
- }
-
- @Override
- public String getLogicalTypeName() {
- return null;
- }
-
- @Override
- public String getIdentifier() {
- return null;
- }
-
- @Override
- public String toString() {
- return "EMPTY_OID";
- }
-
- @Override
- public boolean equals(Object obj) {
- return obj == INSTANCE;
- }
-
- @Override
- public int hashCode() {
- return 0;
- }
-
- @Override
- public Bookmark asBookmark() {
- return null;
- }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/_OidMarshaller.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/_OidMarshaller.java
index 01456c5..2a50c6e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/_OidMarshaller.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/_OidMarshaller.java
@@ -24,7 +24,6 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Stream;
-import org.apache.isis.commons.internal.assertions._Assert;
import org.apache.isis.commons.internal.base._Casts;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.commons.internal.collections._Lists;
@@ -116,7 +115,6 @@ final class _OidMarshaller {
// -- MARSHAL / STRINGIFY
static final String marshal(final @NonNull Oid oid) {
- _Assert.assertFalse(oid.isEmpty(), "cannot marshal an empty OID");
return oid.getLogicalTypeName() + SEPARATOR + oid.getIdentifier();
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/commons/CanonicalParameterUtil.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/commons/CanonicalParameterUtil.java
index e446de5..f5c9f62 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/commons/CanonicalParameterUtil.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/commons/CanonicalParameterUtil.java
@@ -180,7 +180,7 @@ public final class CanonicalParameterUtil {
final String expected = parameterType.getName();
final String actual = parameterValueTypeLiteral;
- sb.append(String.format("param-type[%d]: '%s', got '%s'\n",
+ sb.append(String.format("param-type[%d]: expected '%s', got '%s'\n",
j, expected, actual));
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetDeclarativeInitializingAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetDeclarativeInitializingAbstract.java
index 3e9cb08..c9a8a3d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetDeclarativeInitializingAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetDeclarativeInitializingAbstract.java
@@ -19,8 +19,6 @@
package org.apache.isis.core.metamodel.facets.object.recreatable;
-import java.util.stream.Stream;
-
import org.apache.isis.applib.services.urlencoding.UrlEncodingService;
import org.apache.isis.commons.internal.memento._Mementos;
import org.apache.isis.commons.internal.memento._Mementos.SerializingAdapter;
@@ -30,7 +28,6 @@ import org.apache.isis.core.metamodel.facets.PostConstructMethodCache;
import org.apache.isis.core.metamodel.facets.properties.update.modify.PropertySetterFacet;
import org.apache.isis.core.metamodel.spec.ManagedObject;
import org.apache.isis.core.metamodel.spec.feature.MixedIn;
-import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
import lombok.val;
@@ -66,10 +63,9 @@ extends RecreatableObjectFacetAbstract {
super.getServiceInjector().injectServicesInto(viewModelPojo);
- val propertiesStream = spec.streamProperties(MixedIn.EXCLUDED)
- .filter(property->mementoKeys.contains(property.getId()));
-
- propertiesStream.forEach(property->{
+ spec.streamProperties(MixedIn.EXCLUDED)
+ .filter(property->mementoKeys.contains(property.getId()))
+ .forEach(property->{
val propertyId = property.getId();
val propertyType = property.getSpecification().getCorrespondingClass();
@@ -99,9 +95,7 @@ extends RecreatableObjectFacetAbstract {
val viewModelAdapter = objectManager.adapt(viewModelPojo);
val spec = viewModelAdapter.getSpecification();
- final Stream<OneToOneAssociation> properties = spec.streamProperties(MixedIn.EXCLUDED);
-
- properties
+ spec.streamProperties(MixedIn.EXCLUDED)
// ignore read-only
.filter(property->property.containsNonFallbackFacet(PropertySetterFacet.class))
// ignore those explicitly annotated as @NotPersisted
@@ -109,7 +103,8 @@ extends RecreatableObjectFacetAbstract {
.forEach(property->{
final ManagedObject propertyValue =
property.get(viewModelAdapter, InteractionInitiatedBy.FRAMEWORK);
- if(propertyValue != null && propertyValue.getPojo()!=null) {
+ if(propertyValue != null
+ && propertyValue.getPojo()!=null) {
memento.put(property.getId(), propertyValue.getPojo());
}
});
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/identify/ObjectIdentifier_builtinHandlers.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/identify/ObjectIdentifier_builtinHandlers.java
index a56a61a..3a3fa13 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/identify/ObjectIdentifier_builtinHandlers.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/identify/ObjectIdentifier_builtinHandlers.java
@@ -100,7 +100,9 @@ class ObjectIdentifier_builtinHandlers {
@Override
public Oid handle(ManagedObject managedObject) {
- return Oid.empty();
+ throw _Exceptions.illegalArgument("cannot 'identify' the value type %s, "
+ + "as values have no identifier",
+ managedObject.getSpecification().getCorrespondingClass().getName());
}
}
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/bookmarks/BookmarkServiceDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/bookmarks/BookmarkServiceDefault.java
index 72e41aa..d1cf544 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/bookmarks/BookmarkServiceDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/bookmarks/BookmarkServiceDefault.java
@@ -145,7 +145,7 @@ public class BookmarkServiceDefault implements BookmarkService, SerializingAdapt
if(Bookmark.class.isAssignableFrom(value.getClass())) {
final Bookmark valueBookmark = (Bookmark) value;
- return _Casts.uncheckedCast(lookup(valueBookmark));
+ return _Casts.uncheckedCast(lookup(valueBookmark).orElse(null));
}
return _Casts.uncheckedCast(value);