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/09/16 06:13:43 UTC

[isis] branch master updated: ISIS-2871: Spring managed value semantics for Markup

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 a01e7c6  ISIS-2871: Spring managed value semantics for Markup
a01e7c6 is described below

commit a01e7c683147aeafd3d9f52430fd91e3796a6171
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Sep 16 08:13:36 2021 +0200

    ISIS-2871: Spring managed value semantics for Markup
---
 .../core/metamodel/IsisModuleCoreMetamodel.java    |  8 +-
 .../facets/value/markup/MarkupValueFacet.java      | 29 -------
 ...kupValueFacetUsingSemanticsProviderFactory.java | 46 ----------
 .../facets/value/markup/MarkupValueSemantics.java  | 70 ++++++++++++++++
 .../value/markup/MarkupValueSemanticsProvider.java | 98 ----------------------
 5 files changed, 74 insertions(+), 177 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/IsisModuleCoreMetamodel.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/IsisModuleCoreMetamodel.java
index cb03526..c09cbbd 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/IsisModuleCoreMetamodel.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/IsisModuleCoreMetamodel.java
@@ -32,7 +32,7 @@ import org.apache.isis.core.metamodel.facets.value.blobs.BlobValueSemanticsProvi
 import org.apache.isis.core.metamodel.facets.value.booleans.BooleanValueSemantics;
 import org.apache.isis.core.metamodel.facets.value.clobs.ClobValueSemanticsProvider;
 import org.apache.isis.core.metamodel.facets.value.localrespath.LocalResourcePathValueSemanticsProvider;
-import org.apache.isis.core.metamodel.facets.value.markup.MarkupValueSemanticsProvider;
+import org.apache.isis.core.metamodel.facets.value.markup.MarkupValueSemantics;
 import org.apache.isis.core.metamodel.facets.value.password.PasswordValueSemanticsProvider;
 import org.apache.isis.core.metamodel.facets.value.treenode.TreeNodeValueSemanticsProvider;
 import org.apache.isis.core.metamodel.facets.value.url.URLValueSemantics;
@@ -89,15 +89,15 @@ import org.apache.isis.core.security.IsisModuleCoreSecurity;
         ValueTypeRegistry.class,
 
         // Value Semantics (built-in defaults)
+        BooleanValueSemantics.class,
         BigDecimalValueSemantics.class,
-        UUIDValueSemantics.class,
+        MarkupValueSemantics.class,
         URLValueSemantics.class,
-        BooleanValueSemantics.class,
+        UUIDValueSemantics.class,
         //TODO convert to non-facets ...
         BlobValueSemanticsProvider.class,
         ClobValueSemanticsProvider.class,
         LocalResourcePathValueSemanticsProvider.class,
-        MarkupValueSemanticsProvider.class,
         PasswordValueSemanticsProvider.class,
         TreeNodeValueSemanticsProvider.class,
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/markup/MarkupValueFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/markup/MarkupValueFacet.java
deleted file mode 100644
index 60cb892..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/markup/MarkupValueFacet.java
+++ /dev/null
@@ -1,29 +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.facets.value.markup;
-
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.spec.ManagedObject;
-
-public interface MarkupValueFacet extends Facet {
-
-    String markupValue(ManagedObject object);
-    ManagedObject createValue(ManagedObject object, String html);
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/markup/MarkupValueFacetUsingSemanticsProviderFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/markup/MarkupValueFacetUsingSemanticsProviderFactory.java
deleted file mode 100644
index 1a945fc..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/markup/MarkupValueFacetUsingSemanticsProviderFactory.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.core.metamodel.facets.value.markup;
-
-import javax.inject.Inject;
-
-import org.apache.isis.applib.value.Markup;
-import org.apache.isis.core.metamodel.context.MetaModelContext;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.object.value.vsp.ValueFacetUsingSemanticsProviderFactory;
-
-public class MarkupValueFacetUsingSemanticsProviderFactory
-extends ValueFacetUsingSemanticsProviderFactory<Markup> {
-
-    @Inject
-    public MarkupValueFacetUsingSemanticsProviderFactory(final MetaModelContext mmc) {
-        super(mmc);
-    }
-
-    @Override
-    public void process(final ProcessClassContext processClassContext) {
-        final Class<?> type = processClassContext.getCls();
-        final FacetHolder holder = processClassContext.getFacetHolder();
-
-        if (!(Markup.class.isAssignableFrom(type))) {
-            return;
-        }
-        addValueFacet(new MarkupValueSemanticsProvider(holder));
-    }
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/markup/MarkupValueSemantics.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/markup/MarkupValueSemantics.java
new file mode 100644
index 0000000..ff662a3
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/markup/MarkupValueSemantics.java
@@ -0,0 +1,70 @@
+/*
+ *  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.facets.value.markup;
+
+import org.springframework.stereotype.Component;
+
+import org.apache.isis.applib.adapters.AbstractValueSemanticsProvider;
+import org.apache.isis.applib.adapters.EncoderDecoder;
+import org.apache.isis.applib.adapters.Parser;
+import org.apache.isis.applib.value.Markup;
+
+@Component
+public class MarkupValueSemantics
+extends AbstractValueSemanticsProvider<Markup>
+implements
+    EncoderDecoder<Markup>,
+    Parser<Markup> {
+
+    // -- ENCODER DECODER
+
+    @Override
+    public String toEncodedString(final Markup markup) {
+        return markup.asHtml();
+    }
+
+    @Override
+    public Markup fromEncodedString(final String html) {
+        return new Markup(html);
+    }
+
+    // -- PARSER
+
+    @Override
+    public String presentationValue(final Context context, final Markup value) {
+        return value != null? value.asHtml(): "[null]";
+    }
+
+    @Override
+    public String parseableTextRepresentation(final Context context, final Markup value) {
+        return toEncodedString(value);
+    }
+
+    @Override
+    public Markup parseTextRepresentation(final Context context, final String text) {
+        return fromEncodedString(text);
+    }
+
+    @Override
+    public int typicalLength() {
+        return 0;
+    }
+
+
+}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/markup/MarkupValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/markup/MarkupValueSemanticsProvider.java
deleted file mode 100644
index 8676736..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/markup/MarkupValueSemanticsProvider.java
+++ /dev/null
@@ -1,98 +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.facets.value.markup;
-
-import org.springframework.stereotype.Component;
-
-import org.apache.isis.applib.adapters.Parser;
-import org.apache.isis.applib.value.Markup;
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.object.value.vsp.ValueSemanticsProviderAndFacetAbstract;
-import org.apache.isis.core.metamodel.spec.ManagedObject;
-
-@Component
-public class MarkupValueSemanticsProvider
-extends ValueSemanticsProviderAndFacetAbstract<Markup>
-implements MarkupValueFacet {
-
-    private static final int TYPICAL_LENGTH = 0;
-
-    private static Class<? extends Facet> type() {
-        return MarkupValueFacet.class;
-    }
-
-    private static final Markup DEFAULT_VALUE = null;
-
-    public MarkupValueSemanticsProvider() {
-        this(null);
-    }
-
-    public MarkupValueSemanticsProvider(final FacetHolder holder) {
-        super(type(), holder, Markup.class, TYPICAL_LENGTH, -1, Immutability.IMMUTABLE, EqualByContent.NOT_HONOURED, DEFAULT_VALUE);
-    }
-
-    // //////////////////////////////////////////////////////////////////
-    // Parser
-    // //////////////////////////////////////////////////////////////////
-
-    @Override
-    protected Markup doParse(final Parser.Context context, final String html) {
-        return fromEncodedString(html);
-    }
-
-    @Override
-    public String titleString(final Object object) {
-        return object != null? ((Markup)object).asHtml(): "[null]";
-    }
-
-    // //////////////////////////////////////////////////////////////////
-    // MarkupValueFacet
-    // //////////////////////////////////////////////////////////////////
-
-    @Override
-    public String markupValue(final ManagedObject object) {
-        if (object == null) {
-            return "";
-        }
-        final Markup markup = (Markup) object.getPojo();
-        return markup.asHtml();
-    }
-
-    @Override
-    public ManagedObject createValue(final ManagedObject object, final String html) {
-        final Markup markup = new Markup(html);
-        return getObjectManager().adapt(markup);
-    }
-
-    // //////////////////////////////////////////////////////////////////
-    // EncoderDecoder
-    // //////////////////////////////////////////////////////////////////
-
-    @Override
-    public String toEncodedString(final Markup markup) {
-        return markup.asHtml();
-    }
-
-    @Override
-    public Markup fromEncodedString(final String html) {
-        return new Markup(html);
-    }
-
-}