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 94f222a88f ISIS-3198: simplify scalar model (2)
94f222a88f is described below

commit 94f222a88f4235fa62e12bca59ddb0741cceea4d
Author: Andi Huber <[email protected]>
AuthorDate: Thu Sep 15 13:29:30 2022 +0200

    ISIS-3198: simplify scalar model (2)
---
 .../isis/viewer/commons/model/scalar/UiScalar.java |  9 ++++++
 .../viewer/wicket/model/models/ScalarModel.java    | 37 +++-------------------
 2 files changed, 14 insertions(+), 32 deletions(-)

diff --git 
a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/scalar/UiScalar.java
 
b/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/scalar/UiScalar.java
index 7db28747ae..368d23644d 100644
--- 
a/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/scalar/UiScalar.java
+++ 
b/viewers/commons/model/src/main/java/org/apache/isis/viewer/commons/model/scalar/UiScalar.java
@@ -62,6 +62,15 @@ public interface UiScalar extends UiModel, 
HasMetaModelContext {
                 || getMetaModel().getFeatureType() == FeatureType.COLLECTION;
     }
 
+    default boolean isProperty() {
+        return getMetaModel().getFeatureType().isProperty();
+    }
+
+    default boolean isParameter() {
+        return getMetaModel().getFeatureType().isActionParameter();
+    }
+
+
     default Optional<String> getDescribedAs() {
         return getMetaModel().getDescription(this::getOwner);
     }
diff --git 
a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
 
b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
index 3b19990877..91062f24f8 100644
--- 
a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
+++ 
b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
@@ -32,7 +32,6 @@ import org.apache.isis.commons.internal.base._NullSafe;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.commons.internal.debug._Debug;
 import org.apache.isis.commons.internal.debug.xray.XrayUi;
-import org.apache.isis.commons.internal.exceptions._Exceptions;
 import org.apache.isis.core.metamodel.commons.ScalarRepresentation;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.interactions.managed.ManagedValue;
@@ -73,15 +72,6 @@ implements HasRenderingHints, UiScalar, LinksProvider, 
FormExecutorContext {
 
     private static final long serialVersionUID = 1L;
 
-    private enum EitherParamOrProp {
-        PROPERTY,
-        PARAMETER;
-    }
-
-    @Getter @NonNull private final EitherParamOrProp paramOrProp;
-    public boolean isProperty() { return paramOrProp == 
EitherParamOrProp.PROPERTY; }
-    public boolean isParameter() { return paramOrProp == 
EitherParamOrProp.PARAMETER; }
-
     private final UiObjectWkt parentEntityModel;
 
     @Getter(onMethod = @__(@Override))
@@ -99,8 +89,7 @@ implements HasRenderingHints, UiScalar, LinksProvider, 
FormExecutorContext {
      */
     protected ScalarModel(
             final UiObjectWkt parentUiObject) {
-        this(EitherParamOrProp.PARAMETER,
-                parentUiObject, ScalarRepresentation.EDITING, 
RenderingHint.REGULAR);
+        this(parentUiObject, ScalarRepresentation.EDITING, 
RenderingHint.REGULAR);
     }
 
     /**
@@ -109,21 +98,11 @@ implements HasRenderingHints, UiScalar, LinksProvider, 
FormExecutorContext {
      * property.
      */
     protected ScalarModel(
-            final UiObjectWkt parentUiObject,
-            final ScalarRepresentation viewOrEdit,
-            final UiObject.RenderingHint renderingHint) {
-        this(EitherParamOrProp.PROPERTY,
-                parentUiObject, viewOrEdit, renderingHint);
-    }
-
-    private ScalarModel(
-            final @NonNull EitherParamOrProp paramOrProp,
             final @NonNull UiObjectWkt parentEntityModel,
             final @NonNull ScalarRepresentation viewOrEdit,
             final @NonNull UiObject.RenderingHint renderingHint) {
 
         super(parentEntityModel); // the so called target model, we are 
chaining us to
-        this.paramOrProp = paramOrProp;
         this.parentEntityModel = parentEntityModel;
         this.mode = viewOrEdit;
         this.renderingHint = renderingHint;
@@ -131,19 +110,13 @@ implements HasRenderingHints, UiScalar, LinksProvider, 
FormExecutorContext {
 
     /**
      * This instance is either a {@link ScalarParameterModel} or a {@link 
ScalarPropertyModel}.
-     * <p>
-     * Corresponds to the enum {@link #getParamOrProp()}.
      */
     public final Either<ScalarParameterModel, ScalarPropertyModel> 
getSpecialization() {
-        switch(getParamOrProp()) {
-        case PARAMETER: return Either.left((ScalarParameterModel) this);
-        case PROPERTY: return Either.right((ScalarPropertyModel) this);
-        default:
-            throw _Exceptions.unmatchedCase(getParamOrProp());
-        }
+        return this.isParameter()
+                ? Either.left((ScalarParameterModel) this)
+                : Either.right((ScalarPropertyModel) this);
     }
 
-
     public <T> IModel<T> unwrapped(final Class<T> type) {
         return new ScalarUnwrappingModel<T>(type, this);
     }
@@ -313,7 +286,7 @@ implements HasRenderingHints, UiScalar, LinksProvider, 
FormExecutorContext {
      */
     public boolean mustBeEditable() {
         return getMode() == ScalarRepresentation.EDITING
-                || getParamOrProp() == EitherParamOrProp.PARAMETER
+                || isParameter()
                 || hasAssociatedActionWithInlineAsIfEdit();
     }
 

Reply via email to