From e1266bcdfd64a9ff6cf05220686a9a58d71e9d1d Mon Sep 17 00:00:00 2001 From: dgelessus <dgelessus@users.noreply.github.com> Date: Mon, 17 Feb 2020 18:17:10 +0100 Subject: [PATCH] Store command names in command classes instead of ProBKernel This way all information about a command is in a single place. The ProBKernel class now only needs to contain a list of all commands that exist, and all other information is obtained from the command objects. --- .../java/de/prob2/jupyter/BsymbCommand.java | 5 ++ .../java/de/prob2/jupyter/ProBKernel.java | 66 ++++++++++--------- .../prob2/jupyter/commands/AssertCommand.java | 5 ++ .../prob2/jupyter/commands/BrowseCommand.java | 5 ++ .../prob2/jupyter/commands/CheckCommand.java | 5 ++ .../de/prob2/jupyter/commands/Command.java | 2 + .../jupyter/commands/ConstantsCommand.java | 5 ++ .../de/prob2/jupyter/commands/DotCommand.java | 5 ++ .../prob2/jupyter/commands/EvalCommand.java | 5 ++ .../prob2/jupyter/commands/ExecCommand.java | 5 ++ .../prob2/jupyter/commands/FindCommand.java | 5 ++ .../prob2/jupyter/commands/GotoCommand.java | 5 ++ .../prob2/jupyter/commands/GroovyCommand.java | 5 ++ .../prob2/jupyter/commands/HelpCommand.java | 5 ++ .../jupyter/commands/InitialiseCommand.java | 5 ++ .../de/prob2/jupyter/commands/LetCommand.java | 5 ++ .../jupyter/commands/LoadCellCommand.java | 5 ++ .../jupyter/commands/LoadFileCommand.java | 5 ++ .../jupyter/commands/ModelCheckCommand.java | 5 ++ .../prob2/jupyter/commands/PrefCommand.java | 5 ++ .../jupyter/commands/PrettyPrintCommand.java | 5 ++ .../prob2/jupyter/commands/RenderCommand.java | 5 ++ .../prob2/jupyter/commands/ShowCommand.java | 5 ++ .../prob2/jupyter/commands/SolveCommand.java | 5 ++ .../prob2/jupyter/commands/StatsCommand.java | 5 ++ .../prob2/jupyter/commands/TableCommand.java | 5 ++ .../prob2/jupyter/commands/TimeCommand.java | 5 ++ .../prob2/jupyter/commands/TraceCommand.java | 5 ++ .../prob2/jupyter/commands/TypeCommand.java | 5 ++ .../prob2/jupyter/commands/UnletCommand.java | 5 ++ .../jupyter/commands/VersionCommand.java | 5 ++ 31 files changed, 183 insertions(+), 30 deletions(-) diff --git a/src/main/java/de/prob2/jupyter/BsymbCommand.java b/src/main/java/de/prob2/jupyter/BsymbCommand.java index ab782cd..c22ad93 100644 --- a/src/main/java/de/prob2/jupyter/BsymbCommand.java +++ b/src/main/java/de/prob2/jupyter/BsymbCommand.java @@ -16,6 +16,11 @@ public final class BsymbCommand implements Command { super(); } + @Override + public @NotNull String getName() { + return ":bsymb"; + } + @Override public @NotNull String getSyntax() { return ":bsymb"; diff --git a/src/main/java/de/prob2/jupyter/ProBKernel.java b/src/main/java/de/prob2/jupyter/ProBKernel.java index 86b60b5..53a6b24 100644 --- a/src/main/java/de/prob2/jupyter/ProBKernel.java +++ b/src/main/java/de/prob2/jupyter/ProBKernel.java @@ -4,6 +4,7 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.List; @@ -75,6 +76,38 @@ public final class ProBKernel extends BaseKernel { private static final @NotNull Pattern BSYMB_COMMAND_PATTERN = Pattern.compile("\\\\([a-z]+)"); private static final @NotNull Pattern LATEX_FORMULA_PATTERN = Pattern.compile("(\\$\\$?)([^\\$]+)\\1"); + private static final @NotNull Collection<@NotNull Class<? extends Command>> COMMAND_CLASSES = Collections.unmodifiableList(Arrays.asList( + HelpCommand.class, + VersionCommand.class, + EvalCommand.class, + TypeCommand.class, + TableCommand.class, + SolveCommand.class, + LetCommand.class, + UnletCommand.class, + LoadFileCommand.class, + LoadCellCommand.class, + PrefCommand.class, + BrowseCommand.class, + TraceCommand.class, + StatsCommand.class, + ExecCommand.class, + ConstantsCommand.class, + InitialiseCommand.class, + GotoCommand.class, + FindCommand.class, + ShowCommand.class, + DotCommand.class, + AssertCommand.class, + CheckCommand.class, + TimeCommand.class, + GroovyCommand.class, + RenderCommand.class, + BsymbCommand.class, + PrettyPrintCommand.class, + ModelCheckCommand.class + )); + private static final @NotNull Map<@NotNull String, @NotNull String> BSYMB_COMMAND_DEFINITIONS; static { final Map<String, String> map = new HashMap<>(); @@ -151,36 +184,9 @@ public final class ProBKernel extends BaseKernel { this.animationSelector = animationSelector; - this.commands = new HashMap<>(); - this.commands.put(":help", injector.getInstance(HelpCommand.class)); - this.commands.put(":version", injector.getInstance(VersionCommand.class)); - this.commands.put(":eval", injector.getInstance(EvalCommand.class)); - this.commands.put(":type", injector.getInstance(TypeCommand.class)); - this.commands.put(":table", injector.getInstance(TableCommand.class)); - this.commands.put(":solve", injector.getInstance(SolveCommand.class)); - this.commands.put(":let", injector.getInstance(LetCommand.class)); - this.commands.put(":unlet", injector.getInstance(UnletCommand.class)); - this.commands.put(":load", injector.getInstance(LoadFileCommand.class)); - this.commands.put("::load", injector.getInstance(LoadCellCommand.class)); - this.commands.put(":pref", injector.getInstance(PrefCommand.class)); - this.commands.put(":browse", injector.getInstance(BrowseCommand.class)); - this.commands.put(":trace", injector.getInstance(TraceCommand.class)); - this.commands.put(":stats", injector.getInstance(StatsCommand.class)); - this.commands.put(":exec", injector.getInstance(ExecCommand.class)); - this.commands.put(":constants", injector.getInstance(ConstantsCommand.class)); - this.commands.put(":init", injector.getInstance(InitialiseCommand.class)); - this.commands.put(":goto", injector.getInstance(GotoCommand.class)); - this.commands.put(":find", injector.getInstance(FindCommand.class)); - this.commands.put(":show", injector.getInstance(ShowCommand.class)); - this.commands.put(":dot", injector.getInstance(DotCommand.class)); - this.commands.put(":assert", injector.getInstance(AssertCommand.class)); - this.commands.put(":check", injector.getInstance(CheckCommand.class)); - this.commands.put(":time", injector.getInstance(TimeCommand.class)); - this.commands.put(":groovy", injector.getInstance(GroovyCommand.class)); - this.commands.put("::render", injector.getInstance(RenderCommand.class)); - this.commands.put(":bsymb", injector.getInstance(BsymbCommand.class)); - this.commands.put(":prettyprint", injector.getInstance(PrettyPrintCommand.class)); - this.commands.put(":modelcheck", injector.getInstance(ModelCheckCommand.class)); + this.commands = COMMAND_CLASSES.stream() + .map(injector::getInstance) + .collect(Collectors.toMap(Command::getName, cmd -> cmd)); this.variables = new HashMap<>(); diff --git a/src/main/java/de/prob2/jupyter/commands/AssertCommand.java b/src/main/java/de/prob2/jupyter/commands/AssertCommand.java index ba2d648..f4fe97d 100644 --- a/src/main/java/de/prob2/jupyter/commands/AssertCommand.java +++ b/src/main/java/de/prob2/jupyter/commands/AssertCommand.java @@ -29,6 +29,11 @@ public final class AssertCommand implements Command { this.animationSelector = animationSelector; } + @Override + public @NotNull String getName() { + return ":assert"; + } + @Override public @NotNull String getSyntax() { return ":assert PREDICATE"; diff --git a/src/main/java/de/prob2/jupyter/commands/BrowseCommand.java b/src/main/java/de/prob2/jupyter/commands/BrowseCommand.java index a26229b..f65282f 100644 --- a/src/main/java/de/prob2/jupyter/commands/BrowseCommand.java +++ b/src/main/java/de/prob2/jupyter/commands/BrowseCommand.java @@ -32,6 +32,11 @@ public final class BrowseCommand implements Command { this.animationSelector = animationSelector; } + @Override + public @NotNull String getName() { + return ":browse"; + } + @Override public @NotNull String getSyntax() { return ":browse"; diff --git a/src/main/java/de/prob2/jupyter/commands/CheckCommand.java b/src/main/java/de/prob2/jupyter/commands/CheckCommand.java index e8cdcdb..3897044 100644 --- a/src/main/java/de/prob2/jupyter/commands/CheckCommand.java +++ b/src/main/java/de/prob2/jupyter/commands/CheckCommand.java @@ -47,6 +47,11 @@ public final class CheckCommand implements Command { this.animationSelector = animationSelector; } + @Override + public @NotNull String getName() { + return ":check"; + } + @Override public @NotNull String getSyntax() { return ":check WHAT"; diff --git a/src/main/java/de/prob2/jupyter/commands/Command.java b/src/main/java/de/prob2/jupyter/commands/Command.java index 1e9471c..3552677 100644 --- a/src/main/java/de/prob2/jupyter/commands/Command.java +++ b/src/main/java/de/prob2/jupyter/commands/Command.java @@ -7,6 +7,8 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; public interface Command { + public abstract @NotNull String getName(); + public abstract @NotNull String getSyntax(); public abstract @NotNull String getShortHelp(); diff --git a/src/main/java/de/prob2/jupyter/commands/ConstantsCommand.java b/src/main/java/de/prob2/jupyter/commands/ConstantsCommand.java index 85e7b39..c541c4e 100644 --- a/src/main/java/de/prob2/jupyter/commands/ConstantsCommand.java +++ b/src/main/java/de/prob2/jupyter/commands/ConstantsCommand.java @@ -30,6 +30,11 @@ public final class ConstantsCommand implements Command { this.animationSelector = animationSelector; } + @Override + public @NotNull String getName() { + return ":constants"; + } + @Override public @NotNull String getSyntax() { return ":constants [PREDICATE]"; diff --git a/src/main/java/de/prob2/jupyter/commands/DotCommand.java b/src/main/java/de/prob2/jupyter/commands/DotCommand.java index a287991..e42637c 100644 --- a/src/main/java/de/prob2/jupyter/commands/DotCommand.java +++ b/src/main/java/de/prob2/jupyter/commands/DotCommand.java @@ -40,6 +40,11 @@ public final class DotCommand implements Command { this.animationSelector = animationSelector; } + @Override + public @NotNull String getName() { + return ":dot"; + } + @Override public @NotNull String getSyntax() { return ":dot COMMAND [FORMULA]"; diff --git a/src/main/java/de/prob2/jupyter/commands/EvalCommand.java b/src/main/java/de/prob2/jupyter/commands/EvalCommand.java index 7999d76..3e63983 100644 --- a/src/main/java/de/prob2/jupyter/commands/EvalCommand.java +++ b/src/main/java/de/prob2/jupyter/commands/EvalCommand.java @@ -25,6 +25,11 @@ public final class EvalCommand implements Command { this.animationSelector = animationSelector; } + @Override + public @NotNull String getName() { + return ":eval"; + } + @Override public @NotNull String getSyntax() { return ":eval FORMULA"; diff --git a/src/main/java/de/prob2/jupyter/commands/ExecCommand.java b/src/main/java/de/prob2/jupyter/commands/ExecCommand.java index 9413830..e41a07e 100644 --- a/src/main/java/de/prob2/jupyter/commands/ExecCommand.java +++ b/src/main/java/de/prob2/jupyter/commands/ExecCommand.java @@ -31,6 +31,11 @@ public final class ExecCommand implements Command { this.animationSelector = animationSelector; } + @Override + public @NotNull String getName() { + return ":exec"; + } + @Override public @NotNull String getSyntax() { return ":exec OPERATION [PREDICATE]"; diff --git a/src/main/java/de/prob2/jupyter/commands/FindCommand.java b/src/main/java/de/prob2/jupyter/commands/FindCommand.java index c85a972..d9ee3c6 100644 --- a/src/main/java/de/prob2/jupyter/commands/FindCommand.java +++ b/src/main/java/de/prob2/jupyter/commands/FindCommand.java @@ -27,6 +27,11 @@ public final class FindCommand implements Command { this.animationSelector = animationSelector; } + @Override + public @NotNull String getName() { + return ":find"; + } + @Override public @NotNull String getSyntax() { return ":find PREDICATE"; diff --git a/src/main/java/de/prob2/jupyter/commands/GotoCommand.java b/src/main/java/de/prob2/jupyter/commands/GotoCommand.java index c247816..497202e 100644 --- a/src/main/java/de/prob2/jupyter/commands/GotoCommand.java +++ b/src/main/java/de/prob2/jupyter/commands/GotoCommand.java @@ -23,6 +23,11 @@ public final class GotoCommand implements Command { this.animationSelector = animationSelector; } + @Override + public @NotNull String getName() { + return ":goto"; + } + @Override public @NotNull String getSyntax() { return ":goto INDEX"; diff --git a/src/main/java/de/prob2/jupyter/commands/GroovyCommand.java b/src/main/java/de/prob2/jupyter/commands/GroovyCommand.java index 8a0a1e4..e8fc3e8 100644 --- a/src/main/java/de/prob2/jupyter/commands/GroovyCommand.java +++ b/src/main/java/de/prob2/jupyter/commands/GroovyCommand.java @@ -30,6 +30,11 @@ public final class GroovyCommand implements Command { this.groovyScriptEngine = scriptEngineProvider.get(); } + @Override + public @NotNull String getName() { + return ":groovy"; + } + @Override public @NotNull String getSyntax() { return ":groovy EXPRESSION"; diff --git a/src/main/java/de/prob2/jupyter/commands/HelpCommand.java b/src/main/java/de/prob2/jupyter/commands/HelpCommand.java index 31badb3..5121368 100644 --- a/src/main/java/de/prob2/jupyter/commands/HelpCommand.java +++ b/src/main/java/de/prob2/jupyter/commands/HelpCommand.java @@ -26,6 +26,11 @@ public final class HelpCommand implements Command { this.injector = injector; } + @Override + public @NotNull String getName() { + return ":help"; + } + @Override public @NotNull String getSyntax() { return ":help [COMMAND]"; diff --git a/src/main/java/de/prob2/jupyter/commands/InitialiseCommand.java b/src/main/java/de/prob2/jupyter/commands/InitialiseCommand.java index 3e91bb6..f67f808 100644 --- a/src/main/java/de/prob2/jupyter/commands/InitialiseCommand.java +++ b/src/main/java/de/prob2/jupyter/commands/InitialiseCommand.java @@ -30,6 +30,11 @@ public final class InitialiseCommand implements Command { this.animationSelector = animationSelector; } + @Override + public @NotNull String getName() { + return ":init"; + } + @Override public @NotNull String getSyntax() { return ":init [PREDICATE]"; diff --git a/src/main/java/de/prob2/jupyter/commands/LetCommand.java b/src/main/java/de/prob2/jupyter/commands/LetCommand.java index f71d3bc..35669d3 100644 --- a/src/main/java/de/prob2/jupyter/commands/LetCommand.java +++ b/src/main/java/de/prob2/jupyter/commands/LetCommand.java @@ -30,6 +30,11 @@ public final class LetCommand implements Command { this.animationSelector = animationSelector; } + @Override + public @NotNull String getName() { + return ":let"; + } + @Override public @NotNull String getSyntax() { return ":let NAME EXPR"; diff --git a/src/main/java/de/prob2/jupyter/commands/LoadCellCommand.java b/src/main/java/de/prob2/jupyter/commands/LoadCellCommand.java index c8a482b..08ee240 100644 --- a/src/main/java/de/prob2/jupyter/commands/LoadCellCommand.java +++ b/src/main/java/de/prob2/jupyter/commands/LoadCellCommand.java @@ -37,6 +37,11 @@ public final class LoadCellCommand implements Command { this.proBKernelProvider = proBKernelProvider; } + @Override + public @NotNull String getName() { + return "::load"; + } + @Override public @NotNull String getSyntax() { return "::load [PREF=VALUE ...]\nMACHINE\n...\nEND"; diff --git a/src/main/java/de/prob2/jupyter/commands/LoadFileCommand.java b/src/main/java/de/prob2/jupyter/commands/LoadFileCommand.java index a9ab661..04fb385 100644 --- a/src/main/java/de/prob2/jupyter/commands/LoadFileCommand.java +++ b/src/main/java/de/prob2/jupyter/commands/LoadFileCommand.java @@ -49,6 +49,11 @@ public final class LoadFileCommand implements Command { this.proBKernelProvider = proBKernelProvider; } + @Override + public @NotNull String getName() { + return ":load"; + } + @Override public @NotNull String getSyntax() { return ":load FILENAME [PREF=VALUE ...]"; diff --git a/src/main/java/de/prob2/jupyter/commands/ModelCheckCommand.java b/src/main/java/de/prob2/jupyter/commands/ModelCheckCommand.java index 1c49d6e..e29022d 100644 --- a/src/main/java/de/prob2/jupyter/commands/ModelCheckCommand.java +++ b/src/main/java/de/prob2/jupyter/commands/ModelCheckCommand.java @@ -39,6 +39,11 @@ public final class ModelCheckCommand implements Command { this.animationSelector = animationSelector; } + @Override + public @NotNull String getName() { + return ":modelcheck"; + } + @Override public @NotNull String getSyntax() { return ":modelcheck"; diff --git a/src/main/java/de/prob2/jupyter/commands/PrefCommand.java b/src/main/java/de/prob2/jupyter/commands/PrefCommand.java index ff9eb38..28df02a 100644 --- a/src/main/java/de/prob2/jupyter/commands/PrefCommand.java +++ b/src/main/java/de/prob2/jupyter/commands/PrefCommand.java @@ -30,6 +30,11 @@ public final class PrefCommand implements Command { this.animationSelector = animationSelector; } + @Override + public @NotNull String getName() { + return ":pref"; + } + @Override public @NotNull String getSyntax() { return ":pref [NAME ...]\n:pref NAME=VALUE [NAME=VALUE ...]"; diff --git a/src/main/java/de/prob2/jupyter/commands/PrettyPrintCommand.java b/src/main/java/de/prob2/jupyter/commands/PrettyPrintCommand.java index 118eed3..9df9783 100644 --- a/src/main/java/de/prob2/jupyter/commands/PrettyPrintCommand.java +++ b/src/main/java/de/prob2/jupyter/commands/PrettyPrintCommand.java @@ -23,6 +23,11 @@ public final class PrettyPrintCommand implements Command { this.animationSelector = animationSelector; } + @Override + public @NotNull String getName() { + return ":prettyprint"; + } + @Override public @NotNull String getSyntax() { return ":prettyprint PREDICATE"; diff --git a/src/main/java/de/prob2/jupyter/commands/RenderCommand.java b/src/main/java/de/prob2/jupyter/commands/RenderCommand.java index aa5b871..3b46ff3 100644 --- a/src/main/java/de/prob2/jupyter/commands/RenderCommand.java +++ b/src/main/java/de/prob2/jupyter/commands/RenderCommand.java @@ -16,6 +16,11 @@ public final class RenderCommand implements Command { super(); } + @Override + public @NotNull String getName() { + return "::render"; + } + @Override public @NotNull String getSyntax() { return "::render MIMETYPE\nCONTENT"; diff --git a/src/main/java/de/prob2/jupyter/commands/ShowCommand.java b/src/main/java/de/prob2/jupyter/commands/ShowCommand.java index e849cdc..0c8a2e6 100644 --- a/src/main/java/de/prob2/jupyter/commands/ShowCommand.java +++ b/src/main/java/de/prob2/jupyter/commands/ShowCommand.java @@ -36,6 +36,11 @@ public final class ShowCommand implements Command { this.proBKernelProvider = proBKernelProvider; } + @Override + public @NotNull String getName() { + return ":show"; + } + @Override public @NotNull String getSyntax() { return ":show"; diff --git a/src/main/java/de/prob2/jupyter/commands/SolveCommand.java b/src/main/java/de/prob2/jupyter/commands/SolveCommand.java index 1e6887d..31f2d10 100644 --- a/src/main/java/de/prob2/jupyter/commands/SolveCommand.java +++ b/src/main/java/de/prob2/jupyter/commands/SolveCommand.java @@ -38,6 +38,11 @@ public final class SolveCommand implements Command { this.animationSelector = animationSelector; } + @Override + public @NotNull String getName() { + return ":solve"; + } + @Override public @NotNull String getSyntax() { return ":solve SOLVER PREDICATE"; diff --git a/src/main/java/de/prob2/jupyter/commands/StatsCommand.java b/src/main/java/de/prob2/jupyter/commands/StatsCommand.java index a693fb9..c26f7c1 100644 --- a/src/main/java/de/prob2/jupyter/commands/StatsCommand.java +++ b/src/main/java/de/prob2/jupyter/commands/StatsCommand.java @@ -24,6 +24,11 @@ public final class StatsCommand implements Command { this.animationSelector = animationSelector; } + @Override + public @NotNull String getName() { + return ":stats"; + } + @Override public @NotNull String getSyntax() { return ":stats"; diff --git a/src/main/java/de/prob2/jupyter/commands/TableCommand.java b/src/main/java/de/prob2/jupyter/commands/TableCommand.java index 0e335fb..fca1b6f 100644 --- a/src/main/java/de/prob2/jupyter/commands/TableCommand.java +++ b/src/main/java/de/prob2/jupyter/commands/TableCommand.java @@ -36,6 +36,11 @@ public final class TableCommand implements Command { this.animationSelector = animationSelector; } + @Override + public @NotNull String getName() { + return ":table"; + } + @Override public @NotNull String getSyntax() { return ":table EXPRESSION"; diff --git a/src/main/java/de/prob2/jupyter/commands/TimeCommand.java b/src/main/java/de/prob2/jupyter/commands/TimeCommand.java index 7aee70f..c9270d8 100644 --- a/src/main/java/de/prob2/jupyter/commands/TimeCommand.java +++ b/src/main/java/de/prob2/jupyter/commands/TimeCommand.java @@ -25,6 +25,11 @@ public final class TimeCommand implements Command { this.injector = injector; } + @Override + public @NotNull String getName() { + return ":time"; + } + @Override public @NotNull String getSyntax() { return ":time COMMAND [ARGS ...]"; diff --git a/src/main/java/de/prob2/jupyter/commands/TraceCommand.java b/src/main/java/de/prob2/jupyter/commands/TraceCommand.java index 4d61435..773f1bc 100644 --- a/src/main/java/de/prob2/jupyter/commands/TraceCommand.java +++ b/src/main/java/de/prob2/jupyter/commands/TraceCommand.java @@ -26,6 +26,11 @@ public final class TraceCommand implements Command { this.animationSelector = animationSelector; } + @Override + public @NotNull String getName() { + return ":trace"; + } + @Override public @NotNull String getSyntax() { return ":trace"; diff --git a/src/main/java/de/prob2/jupyter/commands/TypeCommand.java b/src/main/java/de/prob2/jupyter/commands/TypeCommand.java index 4a444af..8c0de73 100644 --- a/src/main/java/de/prob2/jupyter/commands/TypeCommand.java +++ b/src/main/java/de/prob2/jupyter/commands/TypeCommand.java @@ -29,6 +29,11 @@ public final class TypeCommand implements Command { this.animationSelector = animationSelector; } + @Override + public @NotNull String getName() { + return ":type"; + } + @Override public @NotNull String getSyntax() { return ":type FORMULA"; diff --git a/src/main/java/de/prob2/jupyter/commands/UnletCommand.java b/src/main/java/de/prob2/jupyter/commands/UnletCommand.java index cae424e..3c90e9f 100644 --- a/src/main/java/de/prob2/jupyter/commands/UnletCommand.java +++ b/src/main/java/de/prob2/jupyter/commands/UnletCommand.java @@ -24,6 +24,11 @@ public final class UnletCommand implements Command { this.injector = injector; } + @Override + public @NotNull String getName() { + return ":unlet"; + } + @Override public @NotNull String getSyntax() { return ":unlet NAME"; diff --git a/src/main/java/de/prob2/jupyter/commands/VersionCommand.java b/src/main/java/de/prob2/jupyter/commands/VersionCommand.java index 82af3da..c71915f 100644 --- a/src/main/java/de/prob2/jupyter/commands/VersionCommand.java +++ b/src/main/java/de/prob2/jupyter/commands/VersionCommand.java @@ -22,6 +22,11 @@ public final class VersionCommand implements Command { this.animationSelector = animationSelector; } + @Override + public @NotNull String getName() { + return ":version"; + } + @Override public @NotNull String getSyntax() { return ":version"; -- GitLab