Консольное Java-приложение для управления коллекцией объектов Vehicle в интерактивном режиме.
- JDK 17+
- Maven 3.9+
Перед запуском нужно задать путь к CSV-файлу:
$env:VEHICLE_COLLECTION_FILE="C:\path\to\vehicles.csv"Пример файла есть в репозитории: src/main/resources/sample-vehicles.csv.
mvn test
mvn exec:javavehicle-collection-cli/
├─ src/
│ ├─ main/
│ │ ├─ java/ru/student/vehiclecli/
│ │ │ ├─ Main.java
│ │ │ ├─ ConsoleApp.java
│ │ │ ├─ collection/VehicleCollectionManager.java
│ │ │ ├─ io/
│ │ │ │ ├─ CollectionFileResolver.java
│ │ │ │ ├─ CsvVehicleReader.java
│ │ │ │ └─ CsvVehicleWriter.java
│ │ │ └─ model/
│ │ │ ├─ Vehicle.java
│ │ │ ├─ Coordinates.java
│ │ │ ├─ VehicleType.java
│ │ │ ├─ FuelType.java
│ │ │ └─ VehicleIdGenerator.java
│ │ └─ resources/
│ │ ├─ sample-vehicles.csv
│ │ └─ demo-script.txt
│ └─ test/java/ru/student/vehiclecli/
│ ├─ collection/VehicleCollectionManagerTest.java
│ ├─ io/CsvVehicleReadWriteTest.java
│ └─ model/VehicleTest.java
├─ docs/
│ ├─ report.md
│ ├─ class-diagram.puml
│ └─ defense-questions.md
├─ pom.xml
└─ README.md
src/main/java/ru/student/vehiclecli/Main.java
Точка входа приложения.src/main/java/ru/student/vehiclecli/ConsoleApp.java
Главный файл логики: интерактивный цикл, парсинг команд, обработка ввода и ошибок.src/main/java/ru/student/vehiclecli/collection/VehicleCollectionManager.java
Управление коллекциейHashMap<Long, Vehicle>и реализация операций команд.src/main/java/ru/student/vehiclecli/model/Vehicle.java
Основная сущность предметной области с валидациями и сравнением.src/main/java/ru/student/vehiclecli/io/CsvVehicleReader.java
Загрузка коллекции из CSV (FileReader).src/main/java/ru/student/vehiclecli/io/CsvVehicleWriter.java
Сохранение коллекции в CSV (FileOutputStream).src/main/java/ru/student/vehiclecli/io/CollectionFileResolver.java
Получение пути к CSV из переменной окруженияVEHICLE_COLLECTION_FILE.
helpinfoshowinsert <key|null>update <id>remove_key <key|null>clearsaveexecute_script <file_name>exitremove_lowerreplace_if_lower <key|null>remove_lower_key <key|null>remove_any_by_type <type>filter_greater_than_type <type>print_field_ascending_fuel_type
- Открой папку
projects/vehicle-collection-cliв VS Code. - Установи расширения
Extension Pack for JavaиMaven for Java. - Укажи JDK 17 в настройках Java.
- Запусти
mvn test, затемmvn exec:java.
- Отчёт:
docs/report.md - Диаграмма классов:
docs/class-diagram.puml