diff --git a/src/main/java/com/sangupta/outline/Outline.java b/src/main/java/com/sangupta/outline/Outline.java index c055d10..7e1ee24 100644 --- a/src/main/java/com/sangupta/outline/Outline.java +++ b/src/main/java/com/sangupta/outline/Outline.java @@ -127,6 +127,13 @@ public Outline withDefaultCommand(Class defaultCommand) { return this; } + @Override + public Outline withCommand(Class command) { + super.withCommand(command); + + return this; + } + @Override public Outline withCommands(Class... commands) { if(this.singleCommandMode) { @@ -177,5 +184,9 @@ public Outline withHelpOnIncorrectArguments(boolean helpOnIncorrectArguments) { this.helpOnIncorrectArguments = helpOnIncorrectArguments; return this; } - + + public boolean isSingleCommandMode() { + return this.singleCommandMode; + } + } diff --git a/src/main/java/com/sangupta/outline/OutlineBase.java b/src/main/java/com/sangupta/outline/OutlineBase.java index 6fe0313..c4983c4 100644 --- a/src/main/java/com/sangupta/outline/OutlineBase.java +++ b/src/main/java/com/sangupta/outline/OutlineBase.java @@ -97,6 +97,19 @@ public OutlineBase withDefaultCommand(Class defaultCommand) { return this; } + public OutlineBase withCommand(Class command) { + if(this.singleCommandMode) { + throw new IllegalStateException("Cannot add commands in single-command mode."); + } + + if(command == null) { + return this; + } + + this.commands.add(command); + return this; + } + public OutlineBase withCommands(Class... commands) { if(this.singleCommandMode) { throw new IllegalStateException("Cannot add commands in single-command mode.");