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/01/22 14:41:54 UTC
[isis] 05/05: ISIS-1846 deprecate StringPredicates and
StringFunctions,
refactoring any references to use the new $String utility class
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch ISIS-1846_internal_utils
in repository https://gitbox.apache.org/repos/asf/isis.git
commit 44af17ed727c1c1f66a7328c4b26f9cec1171680
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon Jan 22 15:38:32 2018 +0100
ISIS-1846 deprecate StringPredicates and StringFunctions, refactoring
any references to use the new $String utility class
---
.../apache/isis/applib/internal/base/$Strings.java | 21 ++++++++++++++++-
.../isis/core/commons/lang/StringFunctions.java | 7 +++++-
.../isis/core/commons/lang/StringPredicates.java | 7 +++++-
.../MemberGroupLayoutFacetProperties.java | 25 +++++++++++----------
.../core/metamodel/spec/feature/ObjectAction.java | 26 ++++++++++++++--------
5 files changed, 62 insertions(+), 24 deletions(-)
diff --git a/core/applib/src/main/java/org/apache/isis/applib/internal/base/$Strings.java b/core/applib/src/main/java/org/apache/isis/applib/internal/base/$Strings.java
index 9b92ff2..990319d 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/internal/base/$Strings.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/internal/base/$Strings.java
@@ -31,6 +31,9 @@ import javax.annotation.Nullable;
* <p>
* Provides String related algorithms.
* <p>
+ * Keep the public methods simple, these are basic building blocks for more complex composites.
+ * Composites are provided as static fields.
+ * <p>
* WARNING: Do <b>NOT</b> use any of the classes provided by this package! <br/>
* Public access will be removed once we migrate to Java 9+ modules.
*
@@ -40,6 +43,10 @@ public final class $Strings {
private $Strings() {}
+ // -- BASICS
+
+ public static String[] emptyArray = new String[0];
+
// -- BASIC PREDICATES
/**
@@ -75,7 +82,7 @@ public final class $Strings {
}
/**
- * Converts all of the characters in this String to lower case using the rules of the default locale.
+ * Converts all of the characters in {@code input} to lower case using the rules of the default locale.
* @param input
* @return null if {@code input} is null
*/
@@ -85,6 +92,18 @@ public final class $Strings {
}
return input.toLowerCase();
}
+
+ /**
+ * Converts all of the characters in {@code input} to upper case using the rules of the default locale.
+ * @param input
+ * @return null if {@code input} is null
+ */
+ public static String upper(@Nullable final String input) {
+ if(input==null) {
+ return null;
+ }
+ return input.toUpperCase();
+ }
// -- SPLITTING
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/StringFunctions.java b/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/StringFunctions.java
index 6fde377..644eca2 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/StringFunctions.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/StringFunctions.java
@@ -21,7 +21,12 @@ package org.apache.isis.core.commons.lang;
import com.google.common.base.Function;
-public final class StringFunctions {
+/**
+ *
+ * @deprecated [ahuber] use $String::upper and $String::lower instead
+ */
+@Deprecated
+final class StringFunctions {
public static final Function<String,String> TRIM = new Function<String,String>(){
@Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/StringPredicates.java b/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/StringPredicates.java
index 349cf22..ce7a455 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/StringPredicates.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/StringPredicates.java
@@ -21,7 +21,12 @@ package org.apache.isis.core.commons.lang;
import com.google.common.base.Predicate;
-public final class StringPredicates {
+/**
+ *
+ * @deprecated [ahuber] use $String::isNotEmpty instead
+ */
+@Deprecated
+final class StringPredicates {
public static final Predicate<String> NOT_EMPTY = new Predicate<String>() {
@Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetProperties.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetProperties.java
index 8105410..a2bcd45 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetProperties.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetProperties.java
@@ -19,14 +19,12 @@
package org.apache.isis.core.metamodel.facets.object.membergroups.annotprop;
+import java.util.ArrayList;
import java.util.Properties;
-
-import com.google.common.base.Splitter;
-import com.google.common.collect.Iterables;
+import java.util.stream.Collectors;
import org.apache.isis.applib.annotation.MemberGroupLayout.ColumnSpans;
-import org.apache.isis.core.commons.lang.StringFunctions;
-import org.apache.isis.core.commons.lang.StringPredicates;
+import org.apache.isis.applib.internal.base.$Strings;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.object.membergroups.MemberGroupLayoutFacetAbstract;
@@ -58,13 +56,16 @@ public class MemberGroupLayoutFacetProperties extends MemberGroupLayoutFacetAbst
static String[] asGroupList(Properties properties, final String key) {
final String property = properties.getProperty(key);
if(property == null) {
- return new String[0];
+ return $Strings.emptyArray;
}
- final Iterable<String> split = Splitter.on(',').split(property);
- return Iterables.toArray(
- Iterables.filter(
- Iterables.transform(split,StringFunctions.TRIM),
- StringPredicates.NOT_EMPTY),
- String.class);
+
+ return
+ $Strings.splitThenStream(property, ",")
+ .map($Strings::trim)
+ .filter($Strings::isNotEmpty)
+ .collect(Collectors.toCollection(ArrayList::new)) // array list for fast to-array conversion
+ .toArray($Strings.emptyArray);
+
+
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java
index c225cf8..d46fcad 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java
@@ -20,10 +20,7 @@ package org.apache.isis.core.metamodel.spec.feature;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
-
-import com.google.common.base.Predicate;
-import com.google.common.base.Strings;
-import com.google.common.collect.Lists;
+import java.util.stream.Collectors;
import org.apache.isis.applib.Identifier;
import org.apache.isis.applib.annotation.ActionLayout;
@@ -31,9 +28,10 @@ import org.apache.isis.applib.annotation.InvokeOn;
import org.apache.isis.applib.annotation.PromptStyle;
import org.apache.isis.applib.annotation.SemanticsOf;
import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.applib.internal.base.$NullSafe;
+import org.apache.isis.applib.internal.base.$Strings;
import org.apache.isis.applib.value.Blob;
import org.apache.isis.applib.value.Clob;
-import org.apache.isis.core.commons.lang.StringFunctions;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.consent.Consent;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
@@ -52,6 +50,10 @@ import org.apache.isis.core.metamodel.layout.memberorderfacet.MemberOrderFacetCo
import org.apache.isis.core.metamodel.spec.ActionType;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import com.google.common.base.Predicate;
+import com.google.common.base.Strings;
+import com.google.common.collect.Lists;
+
public interface ObjectAction extends ObjectMember {
//region > getSemantics, getOnType
@@ -477,10 +479,16 @@ public interface ObjectAction extends ObjectMember {
public static Predicate<ObjectAction> memberOrderNotAssociationOf(final ObjectSpecification adapterSpec) {
final List<ObjectAssociation> associations = adapterSpec.getAssociations(Contributed.INCLUDED);
- final List<String> associationNames = Lists.transform(associations,
- com.google.common.base.Functions.compose(StringFunctions.toLowerCase(), ObjectAssociation.Functions.toName()));
- final List<String> associationIds = Lists.transform(associations,
- com.google.common.base.Functions.compose(StringFunctions.toLowerCase(), ObjectAssociation.Functions.toId()));
+
+ final List<String> associationNames = $NullSafe.stream(associations)
+ .map(ObjectAssociation::getName)
+ .map($Strings::lower)
+ .collect(Collectors.toList());
+
+ final List<String> associationIds = $NullSafe.stream(associations)
+ .map(ObjectAssociation::getId)
+ .map($Strings::lower)
+ .collect(Collectors.toList());
return new Predicate<ObjectAction>() {
--
To stop receiving notification emails like this one, please contact
ahuber@apache.org.