Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Домашняя работа №10 #14

Merged
merged 6 commits into from
Jan 4, 2024
Merged

Домашняя работа №10 #14

merged 6 commits into from
Jan 4, 2024

Conversation

arhostcode
Copy link
Owner

Сделана домашняя работа №10

  1. Реализован класс RandomObjectGenerator создающий с помощью рефлексии объекты с рандомными значениями. Добавлена поддержка создания через конструктор (с указанием параметров + дефолтный, который берет конструктор с наибольшим числом параметров). Добавлена поддержка аннотаций и стратегий генерации: создавать вложенные, пропускать вложенные, по возможности не создавать вложенные (влияет аннотация @NotNull). Добавлена поддержка кастомных генераторов для других классов посредством передачи в генератор наследника от FieldGenerator<T>
  2. Создан класс CacheProxy реализующий кеширование значений методов при определённых параметрах. Добавлена аннотация Cache.
    Небольшие оговорки.
    a. При сохранение по пути значения метода сохраняются в файл с именованием <название_метода>_параметр1_параметр2... для исключения совпадений данных при перегрузках методов
    b. Данные при persist кешировании сохраняются в формате параметр1;параметр2...;:значение
    c. Для других типов классов необходимо писать сериализаторы, наследующиеся от Serializer<T>

Copy link

github-actions bot commented Dec 7, 2023

Code Coverage

Overall Project 91.87% -1.75% 🍏
Files changed 80.07% 🍏

File Coverage
Generators.java 100% 🍏
IntFieldGenerator.java 100% 🍏
BooleanFieldGenerator.java 100% 🍏
Serializers.java 100% 🍏
LongSerializer.java 100% 🍏
CacheProxy.java 87.57% -12.43% 🍏
ReflectionUtils.java 84.81% -15.19% 🍏
RandomObjectGenerator.java 82.78% -17.22% 🍏
StringFieldGenerator.java 66.67% -33.33% 🍏
LongFieldGenerator.java 51.02% -48.98% 🍏
ByteFieldGenerator.java 50% -50% 🍏
FloatFieldGenerator.java 49.02% -50.98% 🍏
DoubleFieldGenerator.java 49.02% -50.98% 🍏

@arhostcode arhostcode added the homework Homework tasks label Dec 10, 2023
@arhostcode arhostcode merged commit c995f60 into main Jan 4, 2024
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
homework Homework tasks
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant