From 8d82ee1e4801385b472f2dea9116e9290a602177 Mon Sep 17 00:00:00 2001
From: dgelessus <dgelessus@users.noreply.github.com>
Date: Tue, 16 Jun 2020 14:50:05 +0200
Subject: [PATCH] Move Inspector and Completer out of CommandUtils

Most of the inspection/completion code is no longer part of
CommandUtils.
---
 src/main/java/de/prob2/jupyter/CommandUtils.java      | 10 ----------
 src/main/java/de/prob2/jupyter/Completer.java         | 11 +++++++++++
 src/main/java/de/prob2/jupyter/Inspector.java         | 11 +++++++++++
 .../java/de/prob2/jupyter/ParameterCompleters.java    |  8 ++++----
 .../java/de/prob2/jupyter/ParameterInspectors.java    |  8 ++++----
 src/main/java/de/prob2/jupyter/ProBKernel.java        |  4 ++--
 6 files changed, 32 insertions(+), 20 deletions(-)
 create mode 100644 src/main/java/de/prob2/jupyter/Completer.java
 create mode 100644 src/main/java/de/prob2/jupyter/Inspector.java

diff --git a/src/main/java/de/prob2/jupyter/CommandUtils.java b/src/main/java/de/prob2/jupyter/CommandUtils.java
index 281a116..d4fedae 100644
--- a/src/main/java/de/prob2/jupyter/CommandUtils.java
+++ b/src/main/java/de/prob2/jupyter/CommandUtils.java
@@ -42,16 +42,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 public final class CommandUtils {
-	@FunctionalInterface
-	public interface Inspector {
-		public abstract @Nullable DisplayData inspect(final @NotNull String argString, final int at);
-	}
-	
-	@FunctionalInterface
-	public interface Completer {
-		public abstract @Nullable ReplacementOptions complete(final @NotNull String argString, final int at);
-	}
-	
 	private static final @NotNull Logger LOGGER = LoggerFactory.getLogger(CommandUtils.class);
 	
 	private static final @NotNull Pattern BODY_SPLIT_PATTERN = Pattern.compile("\\n");
diff --git a/src/main/java/de/prob2/jupyter/Completer.java b/src/main/java/de/prob2/jupyter/Completer.java
new file mode 100644
index 0000000..ffc0ee1
--- /dev/null
+++ b/src/main/java/de/prob2/jupyter/Completer.java
@@ -0,0 +1,11 @@
+package de.prob2.jupyter;
+
+import io.github.spencerpark.jupyter.kernel.ReplacementOptions;
+
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+@FunctionalInterface
+public interface Completer {
+	public abstract @Nullable ReplacementOptions complete(final @NotNull String argString, final int at);
+}
diff --git a/src/main/java/de/prob2/jupyter/Inspector.java b/src/main/java/de/prob2/jupyter/Inspector.java
new file mode 100644
index 0000000..c9c246a
--- /dev/null
+++ b/src/main/java/de/prob2/jupyter/Inspector.java
@@ -0,0 +1,11 @@
+package de.prob2.jupyter;
+
+import io.github.spencerpark.jupyter.kernel.display.DisplayData;
+
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+@FunctionalInterface
+public interface Inspector {
+	public abstract @Nullable DisplayData inspect(final @NotNull String argString, final int at);
+}
diff --git a/src/main/java/de/prob2/jupyter/ParameterCompleters.java b/src/main/java/de/prob2/jupyter/ParameterCompleters.java
index 20446bb..d1fd7c6 100644
--- a/src/main/java/de/prob2/jupyter/ParameterCompleters.java
+++ b/src/main/java/de/prob2/jupyter/ParameterCompleters.java
@@ -19,9 +19,9 @@ public final class ParameterCompleters {
 	 */
 	public static final @NotNull ParameterCompleters NONE = new ParameterCompleters(Collections.emptyMap());
 	
-	private final @NotNull Map<@NotNull Parameter<?>, CommandUtils.@NotNull Completer> completers;
+	private final @NotNull Map<@NotNull Parameter<?>, @NotNull Completer> completers;
 	
-	public ParameterCompleters(final @NotNull Map<@NotNull Parameter<?>, CommandUtils.@NotNull Completer> completers) {
+	public ParameterCompleters(final @NotNull Map<@NotNull Parameter<?>, @NotNull Completer> completers) {
 		super();
 		
 		this.completers = Collections.unmodifiableMap(new HashMap<>(completers));
@@ -32,7 +32,7 @@ public final class ParameterCompleters {
 	 * 
 	 * @return the stored mapping of parameters to code completion handlers
 	 */
-	public @NotNull Map<@NotNull Parameter<?>, CommandUtils.@NotNull Completer> getCompleters() {
+	public @NotNull Map<@NotNull Parameter<?>, @NotNull Completer> getCompleters() {
 		return this.completers;
 	}
 	
@@ -50,7 +50,7 @@ public final class ParameterCompleters {
 	 * @return the code completion handler for a parameter,
 	 * or {@link Optional#empty()} if there is none
 	 */
-	public @NotNull Optional<CommandUtils.Completer> getCompleterForParameter(final @NotNull Parameter<?> parameter) {
+	public @NotNull Optional<Completer> getCompleterForParameter(final @NotNull Parameter<?> parameter) {
 		if (this.getCompleters().containsKey(parameter)) {
 			return Optional.of(this.getCompleters().get(parameter));
 		} else {
diff --git a/src/main/java/de/prob2/jupyter/ParameterInspectors.java b/src/main/java/de/prob2/jupyter/ParameterInspectors.java
index f0fd3bc..f6ec974 100644
--- a/src/main/java/de/prob2/jupyter/ParameterInspectors.java
+++ b/src/main/java/de/prob2/jupyter/ParameterInspectors.java
@@ -19,9 +19,9 @@ public final class ParameterInspectors {
 	 */
 	public static final @NotNull ParameterInspectors NONE = new ParameterInspectors(Collections.emptyMap());
 	
-	private final @NotNull Map<@NotNull Parameter<?>, CommandUtils.@NotNull Inspector> inspectors;
+	private final @NotNull Map<@NotNull Parameter<?>, @NotNull Inspector> inspectors;
 	
-	public ParameterInspectors(final @NotNull Map<@NotNull Parameter<?>, CommandUtils.@NotNull Inspector> inspectors) {
+	public ParameterInspectors(final @NotNull Map<@NotNull Parameter<?>, @NotNull Inspector> inspectors) {
 		super();
 		
 		this.inspectors = Collections.unmodifiableMap(new HashMap<>(inspectors));
@@ -32,7 +32,7 @@ public final class ParameterInspectors {
 	 *
 	 * @return the stored mapping of parameters to inspection handlers
 	 */
-	public @NotNull Map<@NotNull Parameter<?>, CommandUtils.@NotNull Inspector> getInspectors() {
+	public @NotNull Map<@NotNull Parameter<?>, @NotNull Inspector> getInspectors() {
 		return this.inspectors;
 	}
 	
@@ -50,7 +50,7 @@ public final class ParameterInspectors {
 	 * @return the inspection handler for a parameter,
 	 * or {@link Optional#empty()} if there is none
 	 */
-	public @NotNull Optional<CommandUtils.Inspector> getInspectorForParameter(final @NotNull Parameter<?> parameter) {
+	public @NotNull Optional<Inspector> getInspectorForParameter(final @NotNull Parameter<?> parameter) {
 		if (this.getInspectors().containsKey(parameter)) {
 			return Optional.of(this.getInspectors().get(parameter));
 		} else {
diff --git a/src/main/java/de/prob2/jupyter/ProBKernel.java b/src/main/java/de/prob2/jupyter/ProBKernel.java
index 7e65456..da1fd8e 100644
--- a/src/main/java/de/prob2/jupyter/ProBKernel.java
+++ b/src/main/java/de/prob2/jupyter/ProBKernel.java
@@ -357,7 +357,7 @@ public final class ProBKernel extends BaseKernel {
 	private static @Nullable DisplayData inspectCommandArguments(final @NotNull Command command, final @NotNull String argString, final int at) {
 		final SplitResult split = CommandUtils.splitArgs(command.getParameters(), argString, at);
 		if (split.getParameterAtPosition().isPresent()) {
-			final Optional<CommandUtils.Inspector> inspector = command.getParameterInspectors().getInspectorForParameter(split.getParameterAtPosition().get());
+			final Optional<Inspector> inspector = command.getParameterInspectors().getInspectorForParameter(split.getParameterAtPosition().get());
 			if (inspector.isPresent()) {
 				final List<PositionedString> argsAtPosition = split.getArguments().get(split.getParameterAtPosition().get());
 				assert !argsAtPosition.isEmpty();
@@ -414,7 +414,7 @@ public final class ProBKernel extends BaseKernel {
 	private static @Nullable ReplacementOptions completeCommandArguments(final @NotNull Command command, final @NotNull String argString, final int at) {
 		final SplitResult split = CommandUtils.splitArgs(command.getParameters(), argString, at);
 		if (split.getParameterAtPosition().isPresent()) {
-			final Optional<CommandUtils.Completer> completer = command.getParameterCompleters().getCompleterForParameter(split.getParameterAtPosition().get());
+			final Optional<Completer> completer = command.getParameterCompleters().getCompleterForParameter(split.getParameterAtPosition().get());
 			if (completer.isPresent()) {
 				final List<PositionedString> argsAtPosition = split.getArguments().get(split.getParameterAtPosition().get());
 				assert !argsAtPosition.isEmpty();
-- 
GitLab