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);
- }
-
-}