yuurm / tests

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Вот пошаговое описание того, что происходит в программе:

  1. Импорт библиотек:

    В начале программы импортируются необходимые библиотеки, включая библиотеку Gson, которая используется для работы с JSON.

  2. Определение класса Main:

    Создается класс Main, который содержит метод main и другие методы для выполнения операций с JSON-файлами.

  3. Инициализация переменных:

    • VALUES_MAP - это хэш-карта, используемая для хранения соответствий идентификаторов и их значений.
    • gson - объект Gson, используется для преобразования JSON-данных в объекты Java и обратно.
  4. Метод main:

    • Создаются три объекта Scanner (scanTest, scanValue, scanReport), которые используются для ввода путей к файлам тестов, значений и результирующего файла.
    • Пользователю предлагается ввести путь к файлу с тестами, путь к файлу со значениями и путь, по которому будет сохранен результат.
    • Заданный путь к результирующему файлу зависит от операционной системы.
    • В блоке try начинается обработка файлов и JSON-данных:
      • Читаются данные из файла с тестами и значений с помощью объектов FileReader.
      • Создается объект PrintWriter для записи результата в файл report.json.
      • Создается объект Gson, который будет использоваться для преобразования JSON-данных.
      • Данные из файла с значениями (values.json) преобразуются в объект Values.
      • Значения из values добавляются в VALUES_MAP, где ключ - это идентификатор, а значение - результат.
      • Данные из файла с тестами (tests.json) преобразуются в объект Tests.
      • Запускается метод setValues, который обновляет значения в тестах на основе VALUES_MAP.
      • Создается объект Gson с настройкой на красивый вывод и преобразуется обновленный объект Tests в JSON-строку.
      • JSON-строка записывается в результирующий файл report.json.
      • В конце выводится сообщение о успешном сохранении файла.
  5. Метод setValues:

    • Этот метод рекурсивно проходит по всем тестам и их дочерним тестам.
    • Если идентификатор теста соответствует ключу в VALUES_MAP, значение устанавливается в соответствии с VALUES_MAP.
    • Если у теста есть дочерние тесты (test.getValues() != null), метод вызывается для каждого из них.
  6. Метод getJsonFile:

    • Этот метод используется для чтения содержимого JSON-файла по указанному пути.
    • Строки из файла читаются и объединяются в одну строку, которая возвращается как результат.
  7. Примечания:

    • Программа ожидает, что файлы tests.json и values.json находятся в корневой папке проекта.
    • Пользователю предоставляется возможность указать путь, по которому будет сохранен результат.
    • Измените путь к библиотеке Gson в команде запуска, чтобы указать правильное расположение JAR-файла библиотеки.
  8. Классы для хранения данных из .json файлов по нужным свойствам для формирования файла - report.json Test.java Tests.java Value.java Values.java

About


Languages

Language:Java 100.0%