2016-05-12 3 views
1

У меня есть команда, как этотСделать обязательные один из двух вариантов

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

Я хочу сделать одно из двух вариант обязательно.

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

Как достичь такого поведения?

ответ

1

Вам необходимо обработать проверку внутри самой реализации команды (и выбросить какое-то исключение, если оба или ни один из ваших опций не установлен).

Параметр опции id должен быть установлен в качестве значения Long вместо long.

+0

Я надеялся, что Spring Shell предоставила из коробки решение для этой проблемы. –