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 414d902e0b ISIS-3172: remove shallow ChoiceProviders
414d902e0b is described below

commit 414d902e0be246a7c772a935223e7f0b921acd45
Author: Andi Huber <[email protected]>
AuthorDate: Thu Aug 25 14:14:54 2022 +0200

    ISIS-3172: remove shallow ChoiceProviders
---
 .../scalars/reference/ReferencePanel.java          | 15 +----
 .../valuechoices/ValueChoicesSelect2Panel.java     |  4 +-
 .../widgets/select2/Select2ChoiceExt.java          |  4 +-
 .../widgets/select2/Select2MultiChoiceExt.java     |  4 +-
 ...va => ChoiceProviderAbstactForScalarModel.java} | 11 +++-
 .../select2/providers/ChoiceProviderAbstract.java  | 40 +++++++++++++
 ...plete.java => ChoiceProviderForReferences.java} | 54 ++++++++++++++----
 ...ueChoices.java => ChoiceProviderForValues.java} |  8 +--
 .../select2/providers/EmptyChoiceProvider.java     | 51 -----------------
 .../ObjectAdapterMementoProviderAbstract.java      | 66 ----------------------
 ...tAdapterMementoProviderForReferenceChoices.java | 46 ---------------
 ...entoProviderForReferenceObjectAutoComplete.java | 45 ---------------
 ...tAdapterMementoProviderForValueChoicesTest.java |  6 +-
 13 files changed, 107 insertions(+), 247 deletions(-)

diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
 
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
index c12e8116b8..0585c1a53c 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
@@ -45,9 +45,7 @@ import 
org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelAbstract;
 import 
org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelSelectAbstract;
 import 
org.apache.isis.viewer.wicket.ui.components.widgets.entitysimplelink.EntityLinkSimplePanel;
 import org.apache.isis.viewer.wicket.ui.components.widgets.select2.Select2;
-import 
org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers.ObjectAdapterMementoProviderForReferenceChoices;
-import 
org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers.ObjectAdapterMementoProviderForReferenceObjectAutoComplete;
-import 
org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers.ObjectAdapterMementoProviderForReferenceParamOrPropertyAutoComplete;
+import 
org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers.ChoiceProviderForReferences;
 import org.apache.isis.viewer.wicket.ui.util.Wkt;
 import org.apache.isis.viewer.wicket.ui.util.Wkt.EventTopic;
 import org.apache.isis.viewer.wicket.ui.util.WktComponents;
@@ -258,16 +256,7 @@ public class ReferencePanel extends 
ScalarPanelSelectAbstract {
 
     @Override
     protected ChoiceProvider<ObjectMemento> buildChoiceProvider() {
-
-        val scalarModel = scalarModel();
-
-        if (scalarModel.hasChoices()) {
-            return new 
ObjectAdapterMementoProviderForReferenceChoices(scalarModel);
-        }
-        if(scalarModel.hasAutoComplete()) {
-            return new 
ObjectAdapterMementoProviderForReferenceParamOrPropertyAutoComplete(scalarModel);
-        }
-        return new 
ObjectAdapterMementoProviderForReferenceObjectAutoComplete(scalarModel);
+        return new ChoiceProviderForReferences(scalarModel());
     }
 
     // -- GET INPUT AS TITLE
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.java
 
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.java
index 5b429fe799..e643170047 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.java
@@ -32,7 +32,7 @@ import 
org.apache.isis.viewer.commons.model.StringForRendering;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
 import 
org.apache.isis.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.InputFragment;
 import 
org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelSelectAbstract;
-import 
org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers.ObjectAdapterMementoProviderForValueChoices;
+import 
org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers.ChoiceProviderForValues;
 import org.apache.isis.viewer.wicket.ui.util.Wkt;
 import org.apache.isis.viewer.wicket.ui.util.WktTooltips;
 
@@ -143,7 +143,7 @@ extends ScalarPanelSelectAbstract {
     // (choice vs autoComplete).  Here though - because values don't currently 
support autoComplete - no branch is required
     @Override
     protected ChoiceProvider<ObjectMemento> buildChoiceProvider() {
-        return new ObjectAdapterMementoProviderForValueChoices(scalarModel());
+        return new ChoiceProviderForValues(scalarModel());
     }
 
 
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2ChoiceExt.java
 
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2ChoiceExt.java
index 00ce375b7b..937522b358 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2ChoiceExt.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2ChoiceExt.java
@@ -24,7 +24,7 @@ import org.wicketstuff.select2.Select2Choice;
 import org.apache.isis.applib.id.LogicalType;
 import org.apache.isis.core.metamodel.objectmanager.memento.ObjectMemento;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
-import 
org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers.EmptyChoiceProvider;
+import 
org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers.ChoiceProviderAbstract;
 
 import lombok.Getter;
 
@@ -47,7 +47,7 @@ implements ChoiceExt {
             final String id,
             final IModel<ObjectMemento> model,
             final ScalarModel scalarModel) {
-        super(id, model, EmptyChoiceProvider.INSTANCE);
+        super(id, model, ChoiceProviderAbstract.empty());
         logicalType = scalarModel.getScalarTypeSpec().getLogicalType();
 
         getSettings().setCloseOnSelect(true);
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2MultiChoiceExt.java
 
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2MultiChoiceExt.java
index 7cec176803..99de1721ff 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2MultiChoiceExt.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2MultiChoiceExt.java
@@ -28,7 +28,7 @@ import org.apache.isis.applib.id.LogicalType;
 import org.apache.isis.commons.internal.base._Casts;
 import org.apache.isis.core.metamodel.objectmanager.memento.ObjectMemento;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
-import 
org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers.EmptyChoiceProvider;
+import 
org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers.ChoiceProviderAbstract;
 
 import lombok.Getter;
 import lombok.val;
@@ -55,7 +55,7 @@ implements
             final IModel<Collection<ObjectMemento>> model,
             final ScalarModel scalarModel) {
 
-        super(id, model, EmptyChoiceProvider.INSTANCE);
+        super(id, model, ChoiceProviderAbstract.empty());
         logicalType = scalarModel.getScalarTypeSpec().getLogicalType();
 
         getSettings().setCloseOnSelect(true);
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderForScalarModel.java
 
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderAbstactForScalarModel.java
similarity index 83%
rename from 
viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderForScalarModel.java
rename to 
viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderAbstactForScalarModel.java
index 8fce0d765c..01da18d3d8 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderForScalarModel.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderAbstactForScalarModel.java
@@ -23,13 +23,14 @@ import 
org.apache.isis.core.metamodel.objectmanager.memento.ObjectMemento;
 import org.apache.isis.core.runtime.context.IsisAppCommonContext;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
 
+import lombok.AccessLevel;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import lombok.val;
 import lombok.experimental.Accessors;
 
-@RequiredArgsConstructor
-public abstract class ChoiceProviderForScalarModel
+@RequiredArgsConstructor(access = AccessLevel.PROTECTED)
+public abstract class ChoiceProviderAbstactForScalarModel
 extends ChoiceProviderAbstract {
 
     private static final long serialVersionUID = 1L;
@@ -51,7 +52,11 @@ extends ChoiceProviderAbstract {
     protected ObjectMemento mementoFromId(final String id) {
         val memento = Bookmark.parse(id)
                 .map(getCommonContext()::mementoForBookmark)
-                .orElse(null); // FIXME if can't recreated from bookmark, 
there might be a bug
+                .orElseGet(()->{
+                    // FIXME if can't be recreated from bookmark, there might 
be a bug
+                    System.err.printf("cannot recreate ObjectMemento from 
id=%s%n", id);
+                    return null;
+                });
         return memento;
     }
 
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderAbstract.java
 
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderAbstract.java
index cf9da8dd01..1b485d2b3b 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderAbstract.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderAbstract.java
@@ -1,3 +1,21 @@
+/*
+ *  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.viewer.wicket.ui.components.widgets.select2.providers;
 
 import java.util.Collection;
@@ -6,6 +24,7 @@ import java.util.stream.Collectors;
 import org.apache.wicket.util.string.Strings;
 import org.springframework.lang.Nullable;
 import org.wicketstuff.select2.ChoiceProvider;
+import org.wicketstuff.select2.Response;
 
 import org.apache.isis.applib.services.i18n.TranslationContext;
 import org.apache.isis.applib.services.placeholder.PlaceholderRenderService;
@@ -25,6 +44,27 @@ extends ChoiceProvider<ObjectMemento>
 implements HasCommonContext {
     private static final long serialVersionUID = 1L;
 
+    // -- EMPTY CHOICE PROVIDER
+
+    public static class EmptyChoiceProvider extends 
ChoiceProvider<ObjectMemento> {
+        private static final long serialVersionUID = 1L;
+        @Override public String getDisplayValue(final ObjectMemento object) {
+            return null; }
+        @Override public String getIdValue(final ObjectMemento object) {
+            return null; }
+        @Override public void query(
+                final String term, final int page, final 
Response<ObjectMemento> response) {}
+        @Override public Collection<ObjectMemento> toChoices(final 
Collection<String> ids) {
+            return null;}
+    }
+    private static final EmptyChoiceProvider EMPTY = new EmptyChoiceProvider();
+
+    public static EmptyChoiceProvider empty() {
+        return EMPTY;
+    }
+
+    // --
+
     /** arbitrary string */
     private static final String NULL_ID = "VGN6r6zKTiLhUsA0WkdQ17LvMU1IYdb0";
 
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceParamOrPropertyAutoComplete.java
 
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderForReferences.java
similarity index 66%
rename from 
viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceParamOrPropertyAutoComplete.java
rename to 
viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderForReferences.java
index efd976bc32..2b749ed4df 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceParamOrPropertyAutoComplete.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderForReferences.java
@@ -20,30 +20,65 @@ package 
org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers;
 
 import org.apache.isis.commons.collections.Can;
 import org.apache.isis.commons.internal.base._NullSafe;
-import org.apache.isis.commons.internal.exceptions._Exceptions;
 import org.apache.isis.core.metamodel.objectmanager.memento.ObjectMemento;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
+import org.apache.isis.core.metamodel.util.Facets;
 import org.apache.isis.viewer.commons.model.feature.ParameterUiModel;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
 
 import lombok.val;
 
-public class 
ObjectAdapterMementoProviderForReferenceParamOrPropertyAutoComplete
-extends ObjectAdapterMementoProviderAbstract {
+public class ChoiceProviderForReferences
+extends ChoiceProviderAbstactForScalarModel {
 
     private static final long serialVersionUID = 1L;
 
-    public 
ObjectAdapterMementoProviderForReferenceParamOrPropertyAutoComplete(final 
ScalarModel scalarModel) {
-        super(scalarModel);
-        if(!scalarModel.hasAutoComplete()) {
-            throw _Exceptions.illegalArgument("Cannot create auto-complete 
provider, "
-                    + "when model has no auto-complete %s", scalarModel);
+    static enum Mode {
+        CHOICES,
+        AUTO_COMPLETE,
+        FALLBACK;
+        static Mode valueOf(final ScalarModel scalarModel) {
+            if (scalarModel.hasChoices()) {
+                return Mode.CHOICES;
+            } else if(scalarModel.hasAutoComplete()) {
+                return Mode.AUTO_COMPLETE;
+            } else {
+                return Mode.FALLBACK;
+            }
         }
     }
 
+    private final Mode mode;
+
+    public ChoiceProviderForReferences(
+            final ScalarModel scalarModel) {
+        super(scalarModel);
+        this.mode = Mode.valueOf(scalarModel);
+    }
+
     @Override
     protected Can<ObjectMemento> query(final String term) {
+        switch(mode) {
+        case CHOICES:
+            return super.filter(term, queryAll());
+        case AUTO_COMPLETE:
+            return queryWithAutoComplete(term);
+        case FALLBACK:
+            // fall through
+        }
+        val scalarTypeSpec = scalarModel().getScalarTypeSpec();
+        val autoCompleteAdapters = Facets.autoCompleteExecute(scalarTypeSpec, 
term);
+        return autoCompleteAdapters.map(getCommonContext()::mementoFor);
+    }
 
+    // -- HELPER
+
+    private Can<ObjectMemento> queryAll() {
+        return scalarModel().getChoices() // must not return detached entities
+                .map(getCommonContext()::mementoForParameter);
+    }
+
+    private Can<ObjectMemento> queryWithAutoComplete(final String term) {
         val commonContext = getCommonContext();
         val scalarModel = scalarModel();
         val pendingArgs = scalarModel.isParameter()
@@ -67,8 +102,6 @@ extends ObjectAdapterMementoProviderAbstract {
                 .map(commonContext::mementoFor);
     }
 
-    // -- HELPER
-
     private Can<ManagedObject> reconstructPendingArgs(
             final ParameterUiModel parameterModel,
             final Can<ObjectMemento> pendingArgMementos) {
@@ -82,4 +115,5 @@ extends ObjectAdapterMementoProviderAbstract {
        return pendingArgsList;
     }
 
+
 }
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForValueChoices.java
 
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderForValues.java
similarity index 89%
rename from 
viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForValueChoices.java
rename to 
viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderForValues.java
index b6592e1120..b0dc468a1b 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForValueChoices.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderForValues.java
@@ -26,19 +26,19 @@ import 
org.apache.isis.viewer.wicket.model.models.ScalarModel;
 
 import lombok.val;
 
-public class ObjectAdapterMementoProviderForValueChoices
-extends ObjectAdapterMementoProviderAbstract {
+public class ChoiceProviderForValues
+extends ChoiceProviderAbstactForScalarModel {
 
     private static final long serialVersionUID = 1L;
 
-    public ObjectAdapterMementoProviderForValueChoices(
+    public ChoiceProviderForValues(
             final ScalarModel scalarModel) {
         super(scalarModel);
     }
 
     @Override
     protected Can<ObjectMemento> query(final String term) {
-        return obtainMementos(term, queryAll());
+        return filter(term, queryAll());
     }
 
     @Override
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/EmptyChoiceProvider.java
 
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/EmptyChoiceProvider.java
deleted file mode 100644
index c9ad4baea6..0000000000
--- 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/EmptyChoiceProvider.java
+++ /dev/null
@@ -1,51 +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.viewer.wicket.ui.components.widgets.select2.providers;
-
-import java.util.Collection;
-
-import org.wicketstuff.select2.ChoiceProvider;
-import org.wicketstuff.select2.Response;
-
-import org.apache.isis.core.metamodel.objectmanager.memento.ObjectMemento;
-
-public class EmptyChoiceProvider extends ChoiceProvider<ObjectMemento> {
-    private static final long serialVersionUID = 1L;
-
-    public static final EmptyChoiceProvider INSTANCE = new 
EmptyChoiceProvider();
-
-    @Override
-    public String getDisplayValue(ObjectMemento object) {
-        return null;
-    }
-
-    @Override
-    public String getIdValue(ObjectMemento object) {
-        return null;
-    }
-
-    @Override
-    public void query(String term, int page, Response<ObjectMemento> response) 
{
-    }
-
-    @Override
-    public Collection<ObjectMemento> toChoices(Collection<String> ids) {
-        return null;
-    }
-}
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderAbstract.java
 
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderAbstract.java
deleted file mode 100644
index 6bced0896c..0000000000
--- 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderAbstract.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.viewer.wicket.ui.components.widgets.select2.providers;
-
-import org.apache.wicket.util.string.Strings;
-import org.springframework.lang.Nullable;
-
-import org.apache.isis.applib.services.bookmark.Bookmark;
-import org.apache.isis.commons.collections.Can;
-import org.apache.isis.core.metamodel.objectmanager.memento.ObjectMemento;
-import org.apache.isis.core.metamodel.spec.ManagedObject;
-import org.apache.isis.viewer.wicket.model.models.ScalarModel;
-
-import lombok.val;
-
-public abstract class ObjectAdapterMementoProviderAbstract
-extends ChoiceProviderForScalarModel {
-
-    private static final long serialVersionUID = 1L;
-
-    protected ObjectAdapterMementoProviderAbstract(final ScalarModel 
scalarModel) {
-        super(scalarModel);
-    }
-
-    /**
-     * Filters all choices against a term by using their
-     * {@link ManagedObject#titleString() title string}
-     *
-     * @param term The term entered by the user
-     * @param choicesMementos The collections of choices to filter
-     * @return A list of all matching choices
-     */
-    protected final Can<ObjectMemento> obtainMementos(
-            final String term,
-            final Can<ObjectMemento> choicesMementos) {
-
-        if (Strings.isEmpty(term)) {
-            return choicesMementos;
-        }
-        return super.filter(term, choicesMementos);
-    }
-
-    protected @Nullable ObjectMemento idToMemento(final String id) {
-        val memento = Bookmark.parse(id)
-                .map(getCommonContext()::mementoForBookmark)
-                .orElse(null); //FIXME did something go wrong?
-        return memento;
-    }
-
-}
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceChoices.java
 
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceChoices.java
deleted file mode 100644
index c3fa1d0a45..0000000000
--- 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceChoices.java
+++ /dev/null
@@ -1,46 +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.viewer.wicket.ui.components.widgets.select2.providers;
-
-import org.apache.isis.commons.collections.Can;
-import org.apache.isis.core.metamodel.objectmanager.memento.ObjectMemento;
-import org.apache.isis.viewer.wicket.model.models.ScalarModel;
-
-public class ObjectAdapterMementoProviderForReferenceChoices
-extends ObjectAdapterMementoProviderAbstract {
-
-    private static final long serialVersionUID = 1L;
-
-    public ObjectAdapterMementoProviderForReferenceChoices(
-            final ScalarModel scalarModel) {
-        super(scalarModel);
-    }
-
-    @Override
-    protected Can<ObjectMemento> query(final String term) {
-        return super.obtainMementos(term, queryAll());
-    }
-
-    private Can<ObjectMemento> queryAll() {
-        return scalarModel().getChoices() // must not return detached entities
-                .map(getCommonContext()::mementoForParameter);
-    }
-
-
-}
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceObjectAutoComplete.java
 
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceObjectAutoComplete.java
deleted file mode 100644
index 5b1900f5d5..0000000000
--- 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceObjectAutoComplete.java
+++ /dev/null
@@ -1,45 +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.viewer.wicket.ui.components.widgets.select2.providers;
-
-import org.apache.isis.commons.collections.Can;
-import org.apache.isis.core.metamodel.objectmanager.memento.ObjectMemento;
-import org.apache.isis.core.metamodel.util.Facets;
-import org.apache.isis.viewer.wicket.model.models.ScalarModel;
-
-import lombok.val;
-
-public class ObjectAdapterMementoProviderForReferenceObjectAutoComplete
-extends ObjectAdapterMementoProviderAbstract {
-
-    private static final long serialVersionUID = 1L;
-
-    public ObjectAdapterMementoProviderForReferenceObjectAutoComplete(final 
ScalarModel model) {
-        super(model);
-    }
-
-    @Override
-    protected Can<ObjectMemento> query(final String term) {
-        val scalarTypeSpec = scalarModel().getScalarTypeSpec();
-        val autoCompleteAdapters = Facets.autoCompleteExecute(scalarTypeSpec, 
term);
-        return autoCompleteAdapters.map(getCommonContext()::mementoFor);
-    }
-
-
-}
diff --git 
a/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ObjectAdapterMementoProviderForValueChoicesTest.java
 
b/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ObjectAdapterMementoProviderForValueChoicesTest.java
index 0fd9e71535..de2cc76b3a 100644
--- 
a/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ObjectAdapterMementoProviderForValueChoicesTest.java
+++ 
b/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ObjectAdapterMementoProviderForValueChoicesTest.java
@@ -40,7 +40,7 @@ import 
org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.core.runtime.context.IsisAppCommonContext;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
-import 
org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers.ObjectAdapterMementoProviderForValueChoices;
+import 
org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers.ChoiceProviderForValues;
 
 import lombok.val;
 
@@ -53,7 +53,7 @@ public class ObjectAdapterMementoProviderForValueChoicesTest {
 
     private ObjectMemento mockMemento1;
     private ObjectMemento mockMemento2;
-    private ObjectAdapterMementoProviderForValueChoices provider;
+    private ChoiceProviderForValues provider;
 
     @Mock private SpecificationLoader mockSpecificationLoader;
     @Mock private ObjectSpecification mockSpec;
@@ -86,7 +86,7 @@ public class ObjectAdapterMementoProviderForValueChoicesTest {
             will(returnValue(true));
         }});
 
-        provider = new 
ObjectAdapterMementoProviderForValueChoices(mockScalarModel) {
+        provider = new ChoiceProviderForValues(mockScalarModel) {
             private static final long serialVersionUID = 1L;
             @Override public 
org.apache.isis.commons.collections.Can<ObjectMemento> queryAll() {
                 return mementos; };

Reply via email to