- Это запрос, который был отправлен на сервисный уровень
public class UserRequest {
private String id;
private String link;
private String searchText;
}
Создан класс для "создателя ответа пользователя" -> для различных преобразований
@Component
public class UserResponseCreator {
@Autowired
private UserInfoServiceClient userInfoServiceClient;
public List<UserResponse> getUserResponse() {
//transformation one
}
public List<UserResponse> getUserResponse(UserRequest request) {
//transformation two
}
}
Класс обслуживания:
@Service
public class UserService {
@Autowired
private UserResponseCreator UserResponseCreator;
public List<UserResponse> sendEntries(UserRequest request) {
String node = request.getnode();
String link = request.getLinkedTo();
String searchText = request.getSearchText();
List<UserResponse> UserResponses = new ArrayList<>();
if ( node == null && link == null && searchText == null ) {
UserResponses = UserResponseCreator.getUserResponse();
} else if (node != null && link != null) {
UserResponses = UserResponseCreator.getUserResponse(request);
} else if (searchText!=null) {
UserResponses = UserResponseCreator.getUserResponse();
} else {
throw new InvalidRequestBodyException("Please check the request body");
}
return UserResponses;
}
}
Теперь у меня есть следующие проблемы:
- Как избежать многократных проверок if и повторяющихся нулей
Необходимо использовать шаблон команды и создать метод для передачи параметра, проверить нулевые значения
Для проверки на ноль я подготовил метод:
public boolean checkFieldsIsNull(Object... varArgs) {
return Stream.of(varArgs)
.allMatch(Objects::isNull);
}