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 2018/09/12 15:24:55 UTC

[isis] 01/05: ISIS-1976: remove Parser2

This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch ISIS-1976-rethink-object-adapters
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 7eaf20403808950a15f55de450afa1f3e3101b0b
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed Sep 12 05:49:23 2018 +0200

    ISIS-1976: remove Parser2
    
    Task-Url: https://issues.apache.org/jira/browse/ISIS-1976
---
 .../org/apache/isis/applib/adapters/Parser.java    | 10 +++++++-
 .../org/apache/isis/applib/adapters/Parser2.java   | 29 ----------------------
 ...Parser2.java => MaxLengthFacetUsingParser.java} |  8 +++---
 .../facets/object/value/ValueFacetAbstract.java    | 11 +++-----
 .../ValueSemanticsProviderAndFacetAbstract.java    |  7 +++---
 5 files changed, 19 insertions(+), 46 deletions(-)

diff --git a/core/applib/src/main/java/org/apache/isis/applib/adapters/Parser.java b/core/applib/src/main/java/org/apache/isis/applib/adapters/Parser.java
index 474b0e5..fa5f772 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/adapters/Parser.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/adapters/Parser.java
@@ -24,7 +24,7 @@ package org.apache.isis.applib.adapters;
  * objects.
  *
  * <p>
- * Specifically, this interface embodies three related capabilties:
+ * Specifically, this interface embodies three related capabilities:
  * <ul>
  * <li>to parse a string representation and convert to an object.
  * <li>to provide a string representation of the object, for use as its title.
@@ -113,5 +113,13 @@ public interface Parser<T> {
      * <tt>May 2, 2007</tt>, but its editable form might be <tt>20070502</tt>.
      */
     String parseableTitleOf(T existing);
+    
+    /**
+     * The max length of objects that can be parsed (if any).
+     * A return type of -1 corresponds to unlimited.
+     */
+    default int maxLength() {
+        return -1;
+    }
 
 }
diff --git a/core/applib/src/main/java/org/apache/isis/applib/adapters/Parser2.java b/core/applib/src/main/java/org/apache/isis/applib/adapters/Parser2.java
deleted file mode 100644
index b5877c5..0000000
--- a/core/applib/src/main/java/org/apache/isis/applib/adapters/Parser2.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.applib.adapters;
-
-public interface Parser2<T> extends Parser<T> {
-
-    /**
-     * The max length of objects that can be parsed (if any)
-     */
-    Integer maxLength();
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/MaxLengthFacetUsingParser2.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/MaxLengthFacetUsingParser.java
similarity index 87%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/MaxLengthFacetUsingParser2.java
rename to core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/MaxLengthFacetUsingParser.java
index ab1a1a7..2f56c80 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/MaxLengthFacetUsingParser2.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/MaxLengthFacetUsingParser.java
@@ -19,17 +19,17 @@
 
 package org.apache.isis.core.metamodel.facets.object.value;
 
-import org.apache.isis.applib.adapters.Parser2;
+import org.apache.isis.applib.adapters.Parser;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxLengthFacetAbstract;
 import org.apache.isis.core.metamodel.services.ServicesInjector;
 
-public class MaxLengthFacetUsingParser2 extends MaxLengthFacetAbstract{
+public class MaxLengthFacetUsingParser extends MaxLengthFacetAbstract{
 
-    private final Parser2<?> parser;
+    private final Parser<?> parser;
     private final ServicesInjector dependencyInjector;
 
-    public MaxLengthFacetUsingParser2(final Parser2<?> parser, final FacetHolder holder, final ServicesInjector dependencyInjector) {
+    public MaxLengthFacetUsingParser(final Parser<?> parser, final FacetHolder holder, final ServicesInjector dependencyInjector) {
         super(parser.maxLength(), holder);
         this.parser = parser;
         this.dependencyInjector = dependencyInjector;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/ValueFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/ValueFacetAbstract.java
index f38b9f3..1de96be 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/ValueFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/ValueFacetAbstract.java
@@ -22,7 +22,6 @@ package org.apache.isis.core.metamodel.facets.object.value;
 import org.apache.isis.applib.adapters.DefaultsProvider;
 import org.apache.isis.applib.adapters.EncoderDecoder;
 import org.apache.isis.applib.adapters.Parser;
-import org.apache.isis.applib.adapters.Parser2;
 import org.apache.isis.applib.adapters.ValueSemanticsProvider;
 import org.apache.isis.core.commons.lang.ClassExtensions;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider;
@@ -130,13 +129,9 @@ public abstract class ValueFacetAbstract extends MultipleValueFacetAbstract impl
                 facetHolder.addFacet(new ParseableFacetUsingParser(parser, holder, this.servicesInjector));
                 facetHolder.addFacet(new TitleFacetUsingParser(parser, holder, this.servicesInjector));
                 facetHolder.addFacet(new TypicalLengthFacetUsingParser(parser, holder, this.servicesInjector));
-                if(parser instanceof Parser2) {
-                    @SuppressWarnings("rawtypes")
-                    final Parser2 parser2 = (Parser2) parser;
-                    final Integer maxLength = parser2.maxLength();
-                    if(maxLength != null) {
-                        facetHolder.addFacet(new MaxLengthFacetUsingParser2(parser2, holder, this.servicesInjector));
-                    }
+                final int maxLength = parser.maxLength();
+                if(maxLength >=0) {
+                    facetHolder.addFacet(new MaxLengthFacetUsingParser(parser, holder, this.servicesInjector));
                 }
             }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/vsp/ValueSemanticsProviderAndFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/vsp/ValueSemanticsProviderAndFacetAbstract.java
index 8e20a9c..82e2391 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/vsp/ValueSemanticsProviderAndFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/vsp/ValueSemanticsProviderAndFacetAbstract.java
@@ -27,7 +27,6 @@ import java.util.Locale;
 import org.apache.isis.applib.adapters.DefaultsProvider;
 import org.apache.isis.applib.adapters.EncoderDecoder;
 import org.apache.isis.applib.adapters.Parser;
-import org.apache.isis.applib.adapters.Parser2;
 import org.apache.isis.applib.adapters.ValueSemanticsProvider;
 import org.apache.isis.applib.clock.Clock;
 import org.apache.isis.core.commons.config.ConfigurationConstants;
@@ -45,11 +44,11 @@ import org.apache.isis.core.metamodel.services.ServicesInjector;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 
-public abstract class ValueSemanticsProviderAndFacetAbstract<T> extends FacetAbstract implements ValueSemanticsProvider<T>, EncoderDecoder<T>, Parser2<T>, DefaultsProvider<T> {
+public abstract class ValueSemanticsProviderAndFacetAbstract<T> extends FacetAbstract implements ValueSemanticsProvider<T>, EncoderDecoder<T>, Parser<T>, DefaultsProvider<T> {
 
     private final Class<T> adaptedClass;
     private final int typicalLength;
-    private final Integer maxLength;
+    private final int maxLength;
     private final boolean immutable;
     private final boolean equalByContent;
     private final T defaultValue;
@@ -248,7 +247,7 @@ public abstract class ValueSemanticsProviderAndFacetAbstract<T> extends FacetAbs
     }
 
     @Override
-    public final Integer maxLength() {
+    public final int maxLength() {
         return this.maxLength;
     }