diff options
author | twyen <twyen@google.com> | 2018-01-22 11:52:16 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-01-22 16:09:10 -0800 |
commit | 2ccd4a1f40d371100b94c676c4c39c97829e153b (patch) | |
tree | ee28671edd68e76221e220fa5fb5ae3f00fe73e6 /java/com/android/dialer/commandline/Command.java | |
parent | e5a20898faa4c66758a30d12e9245f15d6685a37 (diff) |
Implement blocking commands
Test: Unit tests
PiperOrigin-RevId: 182813080
Change-Id: I952f49352fb57c02c4efb9cc4ede84dc7c32c893
Diffstat (limited to 'java/com/android/dialer/commandline/Command.java')
-rw-r--r-- | java/com/android/dialer/commandline/Command.java | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/java/com/android/dialer/commandline/Command.java b/java/com/android/dialer/commandline/Command.java index 5a35d4002..83618a255 100644 --- a/java/com/android/dialer/commandline/Command.java +++ b/java/com/android/dialer/commandline/Command.java @@ -17,15 +17,31 @@ package com.android.dialer.commandline; import android.support.annotation.NonNull; -import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ListenableFuture; /** Handles a Command from {@link CommandLineReceiver}. */ public interface Command { - ListenableFuture<String> run(ImmutableList<String> args); + /** + * Thrown when {@code args} in {@link #run(Arguments)} does not match the expected format. The + * commandline will print {@code message} and {@link #getUsage()}. + */ + class IllegalCommandLineArgumentException extends Exception { + public IllegalCommandLineArgumentException(String message) { + super(message); + } + } /** Describe the command when "help" is listing available commands. */ @NonNull String getShortDescription(); + + /** + * Call when 'command --help' is called or when {@link IllegalCommandLineArgumentException} is + * thrown to inform the user how should the command be used. + */ + @NonNull + String getUsage(); + + ListenableFuture<String> run(Arguments args) throws IllegalCommandLineArgumentException; } |