From 456ea9005ab86cccae7a7e29e90b8fabca3590c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D1=8E=D1=80=D1=8F=D0=B3=D0=B8=D0=BD=20=D0=94=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D0=BB?= Date: Wed, 26 Aug 2026 17:49:39 +0300 Subject: [PATCH] feat: add validation for averageGrade and recordBookNumber --- app/src/main/java/ru/project/student/Student.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/ru/project/student/Student.java b/app/src/main/java/ru/project/student/Student.java index f8c529a..288fddd 100644 --- a/app/src/main/java/ru/project/student/Student.java +++ b/app/src/main/java/ru/project/student/Student.java @@ -7,9 +7,11 @@ public class Student { private final double averageGrade; private final int recordBookNumber; + // Конструктор с проверками public Student(String groupNumber, double averageGrade, int recordBookNumber) { - if (groupNumber == null || groupNumber.isBlank()) { - throw new IllegalArgumentException("Group number cannot be empty"); + // Проверка groupNumber на формат + if (groupNumber == null || !groupNumber.matches("^[A-Z][0-9]{2}$")) { + throw new IllegalArgumentException("Group number must match format: one uppercase letter + two digits (e.g. A12)"); } if (averageGrade < 0.0 || averageGrade > 5.0) { throw new IllegalArgumentException("Average grade must be between 0.0 and 5.0"); @@ -22,6 +24,7 @@ public class Student { this.recordBookNumber = recordBookNumber; } + // Геттеры — исправлен тип groupNumber (теперь String) public String getGroupNumber() { return groupNumber; } @@ -34,6 +37,7 @@ public class Student { return recordBookNumber; } + // Методы копирования (with-методы) public Student withGroupNumber(String groupNumber) { return new Student(groupNumber, this.averageGrade, this.recordBookNumber); }