feat(07-books): Добавлено задание

This commit is contained in:
Mark Zheleznyakov
2024-11-08 00:44:40 +03:00
parent 12a30b0e80
commit 892df53f8e
21 changed files with 788 additions and 0 deletions

46
labs/07-books/README.md Normal file
View File

@ -0,0 +1,46 @@
# Консольный интерфейс для книг (`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"
```