From 5a2658b0e4f162223974c4d4ec7968d37b985e1f Mon Sep 17 00:00:00 2001 From: Eric Bottard Date: Sat, 27 May 2017 13:45:42 +0200 Subject: [PATCH] Add some toString() implementations --- .../springframework/shell2/CompletionProposal.java | 5 +++++ .../org/springframework/shell2/MethodTarget.java | 5 +++++ .../standard/StandardMethodTargetResolver.java | 11 +++++++++++ .../shell2/standard/StandardParameterResolver.java | 14 ++++++++++++++ .../shell2/standard/ValueProviderSupport.java | 4 ++++ .../shell2/legacy/LegacyMethodTargetResolver.java | 9 +++++++++ 6 files changed, 48 insertions(+) diff --git a/spring-shell2-core/src/main/java/org/springframework/shell2/CompletionProposal.java b/spring-shell2-core/src/main/java/org/springframework/shell2/CompletionProposal.java index 8cc99351..14e0a9e7 100644 --- a/spring-shell2-core/src/main/java/org/springframework/shell2/CompletionProposal.java +++ b/spring-shell2-core/src/main/java/org/springframework/shell2/CompletionProposal.java @@ -78,4 +78,9 @@ public class CompletionProposal { public void category(String category) { this.category = category; } + + @Override + public String toString() { + return value; + } } diff --git a/spring-shell2-core/src/main/java/org/springframework/shell2/MethodTarget.java b/spring-shell2-core/src/main/java/org/springframework/shell2/MethodTarget.java index 8db91da5..faaa481e 100644 --- a/spring-shell2-core/src/main/java/org/springframework/shell2/MethodTarget.java +++ b/spring-shell2-core/src/main/java/org/springframework/shell2/MethodTarget.java @@ -74,4 +74,9 @@ public class MethodTarget { result = 31 * result + help.hashCode(); return result; } + + @Override + public String toString() { + return method.toString(); + } } diff --git a/spring-shell2-core/src/main/java/org/springframework/shell2/standard/StandardMethodTargetResolver.java b/spring-shell2-core/src/main/java/org/springframework/shell2/standard/StandardMethodTargetResolver.java index bb8830e3..ec52959d 100644 --- a/spring-shell2-core/src/main/java/org/springframework/shell2/standard/StandardMethodTargetResolver.java +++ b/spring-shell2-core/src/main/java/org/springframework/shell2/standard/StandardMethodTargetResolver.java @@ -16,6 +16,9 @@ package org.springframework.shell2.standard; +import static org.springframework.util.StringUtils.collectionToCommaDelimitedString; +import static org.springframework.util.StringUtils.collectionToDelimitedString; + import java.util.HashMap; import java.util.Map; @@ -24,7 +27,9 @@ import org.springframework.context.ApplicationContext; import org.springframework.shell2.MethodTarget; import org.springframework.shell2.MethodTargetResolver; import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; import org.springframework.util.ReflectionUtils; +import org.springframework.util.StringUtils; /** * The standard implementation of {@link MethodTargetResolver} for new shell applications, @@ -59,4 +64,10 @@ public class StandardMethodTargetResolver implements MethodTargetResolver { } return methodTargets; } + + @Override + public String toString() { + return getClass().getSimpleName() + " contributing " + + collectionToDelimitedString(resolve().keySet(), ", ", "[", "]"); + } } diff --git a/spring-shell2-core/src/main/java/org/springframework/shell2/standard/StandardParameterResolver.java b/spring-shell2-core/src/main/java/org/springframework/shell2/standard/StandardParameterResolver.java index 61b98291..d06ada64 100644 --- a/spring-shell2-core/src/main/java/org/springframework/shell2/standard/StandardParameterResolver.java +++ b/spring-shell2-core/src/main/java/org/springframework/shell2/standard/StandardParameterResolver.java @@ -429,6 +429,11 @@ public class StandardParameterResolver implements ParameterResolver { public int hashCode() { return Objects.hash(method, words); } + + @Override + public String toString() { + return method.getName() + " " + words; + } } private static class ParameterRawValue { @@ -473,6 +478,15 @@ public class StandardParameterResolver implements ParameterResolver { public boolean positional() { return key == null; } + + @Override + public String toString() { + return "ParameterRawValue{" + + "value='" + value + '\'' + + ", explicit=" + explicit + + ", key='" + key + '\'' + + '}'; + } } } diff --git a/spring-shell2-core/src/main/java/org/springframework/shell2/standard/ValueProviderSupport.java b/spring-shell2-core/src/main/java/org/springframework/shell2/standard/ValueProviderSupport.java index 8ef322d7..f37923a2 100644 --- a/spring-shell2-core/src/main/java/org/springframework/shell2/standard/ValueProviderSupport.java +++ b/spring-shell2-core/src/main/java/org/springframework/shell2/standard/ValueProviderSupport.java @@ -20,6 +20,10 @@ import org.springframework.core.MethodParameter; import org.springframework.shell2.CompletionContext; /** + * Base class for {@link ValueProvider} that match by type. Subclasses {@literal C} will be selected for parameters + * whose {@literal @}{@link ShellOption#valueProvider()} return the concrete class {@literal C}. + * + * @author Eric Bottard */ public abstract class ValueProviderSupport implements ValueProvider { diff --git a/spring-shell2-shell1-adapter/src/main/java/org/springframework/shell2/legacy/LegacyMethodTargetResolver.java b/spring-shell2-shell1-adapter/src/main/java/org/springframework/shell2/legacy/LegacyMethodTargetResolver.java index 265b230b..1834839e 100644 --- a/spring-shell2-shell1-adapter/src/main/java/org/springframework/shell2/legacy/LegacyMethodTargetResolver.java +++ b/spring-shell2-shell1-adapter/src/main/java/org/springframework/shell2/legacy/LegacyMethodTargetResolver.java @@ -16,6 +16,8 @@ package org.springframework.shell2.legacy; +import static org.springframework.util.StringUtils.collectionToDelimitedString; + import java.util.HashMap; import java.util.Map; @@ -57,4 +59,11 @@ public class LegacyMethodTargetResolver implements MethodTargetResolver { } return methodTargets; } + + @Override + public String toString() { + return getClass().getSimpleName() + " contributing " + + collectionToDelimitedString(resolve().keySet(), ", ", "[", "]"); + } + }