2016-05-12 8 views
1

Ich habe einen Befehl wie dieseseine von zwei Optionen

@CliCommand("show user") 
public String showUser(
     @CliOption(key = {"email"}) String email, 
     @CliOption(key = {"id"}) long id) { 
    //return user by id or by email 
} 

Ich möchte einer der beiden Option obligatorisch machen.

show user --id 5 //valid 
show user --email [email protected] //valid 
show user //not valid 
show user id 5 --email [email protected] //not valid 

Wie kann ich dieses Verhalten erreichen?

Antwort

1

Sie müssen die Validierung innerhalb der Befehlsimplementierung selbst handhaben (und eine Ausnahme auslösen, wenn beide oder keine Ihrer Optionen gesetzt sind).

Der Optionsparameter id sollte auf den Typ Long anstelle von long eingestellt werden.

+0

Ich hoffte, dass Spring Shell aus der Box-Lösung für dieses Problem zur Verfügung gestellt. –

Verwandte Themen