From 28932b0535f4e13f454b638065775b2195542e3d Mon Sep 17 00:00:00 2001 From: dgelessus <dgelessus@users.noreply.github.com> Date: Mon, 18 Jun 2018 14:00:14 +0200 Subject: [PATCH] Allow returning null from Command.run --- src/main/java/de/prob2/jupyter/ProBKernel.java | 7 ++++--- src/main/java/de/prob2/jupyter/commands/Command.java | 3 ++- src/main/java/de/prob2/jupyter/commands/TimeCommand.java | 3 ++- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/main/java/de/prob2/jupyter/ProBKernel.java b/src/main/java/de/prob2/jupyter/ProBKernel.java index 580a7cb..31ad1a0 100644 --- a/src/main/java/de/prob2/jupyter/ProBKernel.java +++ b/src/main/java/de/prob2/jupyter/ProBKernel.java @@ -45,6 +45,7 @@ import io.github.spencerpark.jupyter.kernel.display.DisplayData; import io.github.spencerpark.jupyter.kernel.display.mime.MIMEType; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -168,7 +169,7 @@ public final class ProBKernel extends BaseKernel { return Collections.singletonList(new LanguageInfo.Help("ProB User Manual", "https://www3.hhu.de/stups/prob/index.php/User_Manual")); } - private @NotNull DisplayData executeCommand(final @NotNull String name, final @NotNull String argString) { + private @Nullable DisplayData executeCommand(final @NotNull String name, final @NotNull String argString) { final Command command = this.getCommands().get(name); if (command == null) { throw new NoSuchCommandException(name); @@ -180,7 +181,7 @@ public final class ProBKernel extends BaseKernel { throw new CommandExecutionException(name, e); } - if (result.hasDataForType(MARKDOWN_MIME_TYPE)) { + if (result != null && result.hasDataForType(MARKDOWN_MIME_TYPE)) { // Add definitions for any used bsymb LaTeX commands to Markdown output. final String markdown = (String)result.getData(MARKDOWN_MIME_TYPE); final StringBuilder defs = new StringBuilder(); @@ -197,7 +198,7 @@ public final class ProBKernel extends BaseKernel { } @Override - public @NotNull DisplayData eval(final String expr) { + public @Nullable DisplayData eval(final String expr) { assert expr != null; final Matcher commandMatcher = COMMAND_PATTERN.matcher(expr); diff --git a/src/main/java/de/prob2/jupyter/commands/Command.java b/src/main/java/de/prob2/jupyter/commands/Command.java index 662e0a9..c55ed79 100644 --- a/src/main/java/de/prob2/jupyter/commands/Command.java +++ b/src/main/java/de/prob2/jupyter/commands/Command.java @@ -5,11 +5,12 @@ import de.prob2.jupyter.ProBKernel; import io.github.spencerpark.jupyter.kernel.display.DisplayData; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; public interface Command { public abstract @NotNull String getSyntax(); public abstract @NotNull String getShortHelp(); - public abstract @NotNull DisplayData run(final @NotNull ProBKernel kernel, final @NotNull String argString); + public abstract @Nullable DisplayData run(final @NotNull ProBKernel kernel, final @NotNull String argString); } diff --git a/src/main/java/de/prob2/jupyter/commands/TimeCommand.java b/src/main/java/de/prob2/jupyter/commands/TimeCommand.java index 29e38ee..e9afce8 100644 --- a/src/main/java/de/prob2/jupyter/commands/TimeCommand.java +++ b/src/main/java/de/prob2/jupyter/commands/TimeCommand.java @@ -7,6 +7,7 @@ import de.prob2.jupyter.ProBKernel; import io.github.spencerpark.jupyter.kernel.display.DisplayData; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; public final class TimeCommand implements Command { private static final long NANOSECONDS_PER_SECOND = 1000000000L; @@ -27,7 +28,7 @@ public final class TimeCommand implements Command { } @Override - public @NotNull DisplayData run(final @NotNull ProBKernel kernel, final @NotNull String argString) { + public @Nullable DisplayData run(final @NotNull ProBKernel kernel, final @NotNull String argString) { final long startTime = System.nanoTime(); final DisplayData result = kernel.eval(argString); final long stopTime = System.nanoTime(); -- GitLab