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