47 lines
1.4 KiB
Markdown
47 lines
1.4 KiB
Markdown
# Консольный интерфейс для книг (`07-books`)
|
||
|
||
## Формулировка задания
|
||
|
||
Дан XML-файл следующего содержания:
|
||
|
||
```xml
|
||
<?xml version="1.0" encoding="UTF-8"?>
|
||
<books>
|
||
<book id="1">
|
||
<author>J. Smith</author>
|
||
<name>Steve Jobs</name>
|
||
<year>2024</year>
|
||
</book>
|
||
<book id="2">
|
||
<author>J. Smith</author>
|
||
<name>Steve Jobs</name>
|
||
<year>2022</year>
|
||
</book>
|
||
<book id="3">
|
||
<author>A. Turing</author>
|
||
<name>Computing Machinery and Intelligence</name>
|
||
<year>1950</year>
|
||
</book>
|
||
<book id="4">
|
||
<author>G. Orwell</author>
|
||
<name>1984</name>
|
||
<year>1949</year>
|
||
</book>
|
||
</books>
|
||
```
|
||
|
||
Необходимо спарсить его в класс, и реализовать консольный интерфейс для работы с ним. Доступные команды:
|
||
- Вывод всех книг
|
||
- Поиск книг по имени автора или году издания
|
||
- Вывод в консоль пар `автор + название` с возможностью сортировать как по автору, так и по названию
|
||
- Поиск книг по диапозону дат
|
||
|
||
Операции для поиска данных реализовать с помощью Streaming API.
|
||
|
||
## Запуск через Gradle
|
||
|
||
```sh
|
||
gradle run --console=plain --args="/tmp/books.xml"
|
||
```
|
||
|