diff --git a/build/classes/java/main/task_1/solution/Main.class b/build/classes/java/main/task_1/solution/Main.class new file mode 100644 index 0000000..0c7e5c0 Binary files /dev/null and b/build/classes/java/main/task_1/solution/Main.class differ diff --git a/build/classes/java/main/task_1/solution/TimeMachine.class b/build/classes/java/main/task_1/solution/TimeMachine.class new file mode 100644 index 0000000..f910414 Binary files /dev/null and b/build/classes/java/main/task_1/solution/TimeMachine.class differ diff --git a/build/classes/java/main/task_1/solution/TimeTravelException.class b/build/classes/java/main/task_1/solution/TimeTravelException.class new file mode 100644 index 0000000..c531cd2 Binary files /dev/null and b/build/classes/java/main/task_1/solution/TimeTravelException.class differ diff --git a/build/classes/java/main/task_1/solution/TimeTraveler.class b/build/classes/java/main/task_1/solution/TimeTraveler.class new file mode 100644 index 0000000..f69aba0 Binary files /dev/null and b/build/classes/java/main/task_1/solution/TimeTraveler.class differ diff --git a/build/classes/java/main/task_2/solution/Main.class b/build/classes/java/main/task_2/solution/Main.class new file mode 100644 index 0000000..0cf7e4d Binary files /dev/null and b/build/classes/java/main/task_2/solution/Main.class differ diff --git a/build/classes/java/main/task_2/solution/OlivandersShop.class b/build/classes/java/main/task_2/solution/OlivandersShop.class new file mode 100644 index 0000000..6cc792c Binary files /dev/null and b/build/classes/java/main/task_2/solution/OlivandersShop.class differ diff --git a/build/classes/java/main/task_2/solution/Wand.class b/build/classes/java/main/task_2/solution/Wand.class new file mode 100644 index 0000000..3b7399e Binary files /dev/null and b/build/classes/java/main/task_2/solution/Wand.class differ diff --git a/build/classes/java/main/task_2/solution/WandOrder.class b/build/classes/java/main/task_2/solution/WandOrder.class new file mode 100644 index 0000000..8c83e3d Binary files /dev/null and b/build/classes/java/main/task_2/solution/WandOrder.class differ diff --git a/build/classes/java/main/task_2/solution/exceptions/NoOrdersException.class b/build/classes/java/main/task_2/solution/exceptions/NoOrdersException.class new file mode 100644 index 0000000..d21c83d Binary files /dev/null and b/build/classes/java/main/task_2/solution/exceptions/NoOrdersException.class differ diff --git a/build/classes/java/main/task_2/solution/exceptions/NotEnoughMaterialException.class b/build/classes/java/main/task_2/solution/exceptions/NotEnoughMaterialException.class new file mode 100644 index 0000000..e3a6767 Binary files /dev/null and b/build/classes/java/main/task_2/solution/exceptions/NotEnoughMaterialException.class differ diff --git a/build/classes/java/main/task_2/solution/exceptions/NotEnoughWoodException.class b/build/classes/java/main/task_2/solution/exceptions/NotEnoughWoodException.class new file mode 100644 index 0000000..bb12d2a Binary files /dev/null and b/build/classes/java/main/task_2/solution/exceptions/NotEnoughWoodException.class differ diff --git a/build/classes/java/main/task_3/solution/Main.class b/build/classes/java/main/task_3/solution/Main.class new file mode 100644 index 0000000..80cb283 Binary files /dev/null and b/build/classes/java/main/task_3/solution/Main.class differ diff --git a/build/classes/java/main/task_3/solution/SimpsonsCharacter.class b/build/classes/java/main/task_3/solution/SimpsonsCharacter.class new file mode 100644 index 0000000..5d8b4b8 Binary files /dev/null and b/build/classes/java/main/task_3/solution/SimpsonsCharacter.class differ diff --git a/build/classes/java/main/task_3/solution/SimpsonsCourse.class b/build/classes/java/main/task_3/solution/SimpsonsCourse.class new file mode 100644 index 0000000..83da2b1 Binary files /dev/null and b/build/classes/java/main/task_3/solution/SimpsonsCourse.class differ diff --git a/build/classes/java/main/task_3/solution/SimpsonsGrade.class b/build/classes/java/main/task_3/solution/SimpsonsGrade.class new file mode 100644 index 0000000..dd45a0d Binary files /dev/null and b/build/classes/java/main/task_3/solution/SimpsonsGrade.class differ diff --git a/build/classes/java/main/task_3/solution/SimpsonsSchool.class b/build/classes/java/main/task_3/solution/SimpsonsSchool.class new file mode 100644 index 0000000..9a47b81 Binary files /dev/null and b/build/classes/java/main/task_3/solution/SimpsonsSchool.class differ diff --git a/build/classes/java/main/task_4/Main.class b/build/classes/java/main/task_4/Main.class new file mode 100644 index 0000000..b021350 Binary files /dev/null and b/build/classes/java/main/task_4/Main.class differ diff --git a/build/classes/java/main/task_4/exception/SecurityBreachException.class b/build/classes/java/main/task_4/exception/SecurityBreachException.class new file mode 100644 index 0000000..a03eb3b Binary files /dev/null and b/build/classes/java/main/task_4/exception/SecurityBreachException.class differ diff --git a/build/classes/java/main/task_4/exception/UnauthorizedAccessAttemptException.class b/build/classes/java/main/task_4/exception/UnauthorizedAccessAttemptException.class new file mode 100644 index 0000000..938556e Binary files /dev/null and b/build/classes/java/main/task_4/exception/UnauthorizedAccessAttemptException.class differ diff --git a/build/classes/java/main/task_4/solution/AvengersBase.class b/build/classes/java/main/task_4/solution/AvengersBase.class new file mode 100644 index 0000000..e10bcf0 Binary files /dev/null and b/build/classes/java/main/task_4/solution/AvengersBase.class differ diff --git a/build/classes/java/main/task_4/solution/Hero.class b/build/classes/java/main/task_4/solution/Hero.class new file mode 100644 index 0000000..4e07d2e Binary files /dev/null and b/build/classes/java/main/task_4/solution/Hero.class differ diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin new file mode 100644 index 0000000..a21aeb7 Binary files /dev/null and b/build/tmp/compileJava/previous-compilation-data.bin differ diff --git a/src/main/java/task_1/solution/Main.java b/src/main/java/task_1/solution/Main.java new file mode 100644 index 0000000..1514718 --- /dev/null +++ b/src/main/java/task_1/solution/Main.java @@ -0,0 +1,17 @@ +package task_1.solution; + +public class Main { + public static void main(String[] args) { + TimeMachine timeMachine = new TimeMachine(2023); + + TimeTraveler traveler1 = new TimeTraveler("Travis", 1990, 2100); + TimeTraveler traveler2 = new TimeTraveler("Ja", 1985, 2050); + + try { + timeMachine.travelInTime(traveler1, 2000); + timeMachine.travelInTime(traveler2, 2075); + } catch (TimeTravelException e) { + System.out.println("Произошла ошибка: " + e.getMessage()); + } + } +} diff --git a/src/main/java/task_1/solution/TimeMachine.java b/src/main/java/task_1/solution/TimeMachine.java new file mode 100644 index 0000000..0f70941 --- /dev/null +++ b/src/main/java/task_1/solution/TimeMachine.java @@ -0,0 +1,29 @@ +package task_1.solution; + +public class TimeMachine { + private int currentYear; + private boolean isWorking; + + public TimeMachine(int currentYear) { + this.currentYear = currentYear; + this.isWorking = true; + } + + public void travelInTime(TimeTraveler timeTraveler, int year) throws TimeTravelException { + if (!isWorking) { + throw new TimeTravelException("The time machine is not working at the moment."); + } + + if (year < timeTraveler.getBirthYear()) { + throw new TimeTravelException("The year of travel to the past is less than the year of the traveler's " + + "birth."); + } + + if (year > timeTraveler.getDeathYear()) { + throw new TimeTravelException("The year of the travel into the future is longer than the year of the " + + "traveler's death."); + } + + System.out.println(timeTraveler.getName() + " travels through time in " + year + " year."); + } +} diff --git a/src/main/java/task_1/solution/TimeTravelException.java b/src/main/java/task_1/solution/TimeTravelException.java new file mode 100644 index 0000000..9e8bad4 --- /dev/null +++ b/src/main/java/task_1/solution/TimeTravelException.java @@ -0,0 +1,7 @@ +package task_1.solution; + +public class TimeTravelException extends Exception { + public TimeTravelException(String message) { + super(message); + } +} diff --git a/src/main/java/task_1/solution/TimeTraveler.java b/src/main/java/task_1/solution/TimeTraveler.java new file mode 100644 index 0000000..0571b89 --- /dev/null +++ b/src/main/java/task_1/solution/TimeTraveler.java @@ -0,0 +1,25 @@ +package task_1.solution; + +public class TimeTraveler { + private String name; + private int birthYear; + private int deathYear; + + public TimeTraveler(String name, int birthYear, int deathYear) { + this.name = name; + this.birthYear = birthYear; + this.deathYear = deathYear; + } + + public String getName() { + return name; + } + + public int getBirthYear() { + return birthYear; + } + + public int getDeathYear() { + return deathYear; + } +} diff --git a/src/main/java/task_2/solution/Main.java b/src/main/java/task_2/solution/Main.java new file mode 100644 index 0000000..aca0b18 --- /dev/null +++ b/src/main/java/task_2/solution/Main.java @@ -0,0 +1,26 @@ +package task_2.solution; + +import task_2.solution.exceptions.NoOrdersException; +import task_2.solution.exceptions.NotEnoughMaterialException; +import task_2.solution.exceptions.NotEnoughWoodException; + +public class Main { + public static void main(String[] args) { + try { + Wand wand1 = new Wand("Дуб", 12, "-", 10); + WandOrder order1 = new WandOrder("Петр", wand1, 3); + + Wand wand2 = new Wand("Ель", 11, "-", 12); + WandOrder order2 = new WandOrder("Шавкат", wand2, 2); + + OlivandersShop olivanders = new OlivandersShop(); + olivanders.placeOrder(order1); + olivanders.placeOrder(order2); + + Wand mostPowerfulWand = olivanders.findMostPowerfulWand(); + System.out.println("Самая сильная палочка : " + mostPowerfulWand.getWoodType() + " " + mostPowerfulWand.getCoreMaterial()); + } catch (NotEnoughWoodException | NotEnoughMaterialException | NoOrdersException e) { + System.out.println("Ошибка: " + e.getMessage()); + } + } +} diff --git a/src/main/java/task_2/solution/OlivandersShop.java b/src/main/java/task_2/solution/OlivandersShop.java new file mode 100644 index 0000000..f83f0b0 --- /dev/null +++ b/src/main/java/task_2/solution/OlivandersShop.java @@ -0,0 +1,68 @@ +package task_2.solution; + +import task_2.solution.exceptions.NoOrdersException; +import task_2.solution.exceptions.NotEnoughMaterialException; +import task_2.solution.exceptions.NotEnoughWoodException; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class OlivandersShop { + private List orders; + private Map woodTypeCount; + private Map coreMaterialCount; + + public OlivandersShop() { + orders = new ArrayList<>(); + woodTypeCount = new HashMap<>(); + coreMaterialCount = new HashMap<>(); + } + public void placeOrder(WandOrder order) throws NotEnoughMaterialException, NotEnoughWoodException { + String woodType = order.getWand().getWoodType(); + int requiredWoodCount = order.getQuantity(); + + if (woodTypeCount.containsKey(woodType)) { + int availableWoodCount = woodTypeCount.get(woodType); + if (availableWoodCount < requiredWoodCount) { + throw new NotEnoughWoodException(woodType); + } + woodTypeCount.put(woodType, availableWoodCount - requiredWoodCount); + } else { + throw new NotEnoughWoodException(woodType); + } + + String coreMaterial = order.getWand().getCoreMaterial(); + int requiredMaterialCount = order.getQuantity(); + + if (coreMaterialCount.containsKey(coreMaterial)) { + int availableMaterialCount = coreMaterialCount.get(coreMaterial); + if (availableMaterialCount < requiredMaterialCount) { + throw new NotEnoughMaterialException(coreMaterial); + } + coreMaterialCount.put(coreMaterial, availableMaterialCount - requiredMaterialCount); + } else { + throw new NotEnoughMaterialException(coreMaterial); + } + + orders.add(order); + } + public Wand findMostPowerfulWand() throws NoOrdersException{ + if (orders.isEmpty()) { + throw new NoOrdersException("Заказы недоступны"); + } + + Wand mostPowerfulWand = orders.get(0).getWand(); + int maxPowerLevel = mostPowerfulWand.getPowerLevel(); + + for (WandOrder order : orders) { + if (order.getWand().getPowerLevel() > maxPowerLevel) { + mostPowerfulWand = order.getWand(); + maxPowerLevel = mostPowerfulWand.getPowerLevel(); + } + } + + return mostPowerfulWand; + } +} diff --git a/src/main/java/task_2/solution/Wand.java b/src/main/java/task_2/solution/Wand.java new file mode 100644 index 0000000..67170c1 --- /dev/null +++ b/src/main/java/task_2/solution/Wand.java @@ -0,0 +1,47 @@ +package task_2.solution; + +import task_2.solution.exceptions.NotEnoughMaterialException; +import task_2.solution.exceptions.NotEnoughWoodException; + +public class Wand { + private String woodType; + private double length; + private String coreMaterial; + private int powerLevel; + + public Wand(String woodType, int length, String coreMaterial, int powerLevel) throws NotEnoughWoodException, + NotEnoughMaterialException { + if (woodType == null || woodType.isEmpty()) { + throw new NotEnoughWoodException("Тип дерева не может быть пустым"); + } + if (length <= 0) { + throw new IllegalArgumentException("Длина должна быть больше 0"); + } + if (coreMaterial == null || coreMaterial.isEmpty()) { + throw new NotEnoughMaterialException("Материал не может быть пустым"); + } + if (powerLevel <= 0) { + throw new IllegalArgumentException("Уровень мощности должен быть больше 0"); + } + this.woodType = woodType; + this.length = length; + this.coreMaterial = coreMaterial; + this.powerLevel = powerLevel; + } + + public String getWoodType() { + return woodType; + } + + public double getLength() { + return length; + } + + public String getCoreMaterial() { + return coreMaterial; + } + + public int getPowerLevel() { + return powerLevel; + } +} diff --git a/src/main/java/task_2/solution/WandOrder.java b/src/main/java/task_2/solution/WandOrder.java new file mode 100644 index 0000000..0194987 --- /dev/null +++ b/src/main/java/task_2/solution/WandOrder.java @@ -0,0 +1,31 @@ +package task_2.solution; + +public class WandOrder { + private String customerName; + private Wand wand; + private int quantity; + public WandOrder(String customerName, Wand wand, int quantity) { + if (customerName == null || customerName.isEmpty()) { + throw new IllegalArgumentException("Имя клиента не может быть пустым"); + } + if (quantity <= 0) { + throw new IllegalArgumentException("Количество должно быть больше 0"); + } + + this.customerName = customerName; + this.wand = wand; + this.quantity = quantity; + } + + public String getCustomerName() { + return customerName; + } + + public Wand getWand() { + return wand; + } + + public int getQuantity() { + return quantity; + } +} diff --git a/src/main/java/task_2/solution/exceptions/NoOrdersException.java b/src/main/java/task_2/solution/exceptions/NoOrdersException.java new file mode 100644 index 0000000..1158b11 --- /dev/null +++ b/src/main/java/task_2/solution/exceptions/NoOrdersException.java @@ -0,0 +1,7 @@ +package task_2.solution.exceptions; + +public class NoOrdersException extends Exception{ + public NoOrdersException(String message) { + super(message); + } +} diff --git a/src/main/java/task_2/solution/exceptions/NotEnoughMaterialException.java b/src/main/java/task_2/solution/exceptions/NotEnoughMaterialException.java new file mode 100644 index 0000000..14230a5 --- /dev/null +++ b/src/main/java/task_2/solution/exceptions/NotEnoughMaterialException.java @@ -0,0 +1,7 @@ +package task_2.solution.exceptions; + +public class NotEnoughMaterialException extends Exception{ + public NotEnoughMaterialException(String material) { + super("Недостаточно материала для сердца палочки: " + material); + } +} diff --git a/src/main/java/task_2/solution/exceptions/NotEnoughWoodException.java b/src/main/java/task_2/solution/exceptions/NotEnoughWoodException.java new file mode 100644 index 0000000..67f3dea --- /dev/null +++ b/src/main/java/task_2/solution/exceptions/NotEnoughWoodException.java @@ -0,0 +1,7 @@ +package task_2.solution.exceptions; + +public class NotEnoughWoodException extends Exception{ + public NotEnoughWoodException(String woodType) { + super("Недостаточно дерева типа " + woodType + " для изготовления палочек."); + } +} diff --git a/src/main/java/task_3/solution/Main.java b/src/main/java/task_3/solution/Main.java new file mode 100644 index 0000000..d27ec25 --- /dev/null +++ b/src/main/java/task_3/solution/Main.java @@ -0,0 +1,31 @@ +package task_3.solution; + +import java.util.List; + +public class Main { + public static void main(String[] args){ + SimpsonsSchool simpsonsSchool = new SimpsonsSchool(); + + SimpsonsCharacter bart = new SimpsonsCharacter("Bart", 11, 1); + SimpsonsCharacter lisa = new SimpsonsCharacter("Lisa", 9, 2); + + SimpsonsCourse math = new SimpsonsCourse("Math", 1); + SimpsonsCourse barts_pranks = new SimpsonsCourse("Bart's Pranks", 2); + SimpsonsCourse history = new SimpsonsCourse("History", 3); + + simpsonsSchool.enrollCharacter(bart, List.of(math, barts_pranks)); + simpsonsSchool.enrollCharacter(lisa, List.of(math, history, barts_pranks)); + + try { + simpsonsSchool.addGrade(bart, math, 4); + simpsonsSchool.addGrade(bart, history, 3); + simpsonsSchool.addGrade(bart, barts_pranks, 5); + + simpsonsSchool.addGrade(lisa, math, 5); + simpsonsSchool.addGrade(lisa, history, 4); + simpsonsSchool.addGrade(lisa, barts_pranks, 0); + } catch (IllegalArgumentException e) { + System.out.println(e.getMessage()); + } + } +} diff --git a/src/main/java/task_3/solution/SimpsonsCharacter.java b/src/main/java/task_3/solution/SimpsonsCharacter.java new file mode 100644 index 0000000..9140617 --- /dev/null +++ b/src/main/java/task_3/solution/SimpsonsCharacter.java @@ -0,0 +1,40 @@ +package task_3.solution; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class SimpsonsCharacter { + private String name; + private int age; + private int characterId; + private List enrolledCourses = new ArrayList<>(); + private Map grades = new HashMap<>(); + + public SimpsonsCharacter(String name, int age, int characterId) { + this.name = name; + this.age = age; + this.characterId = characterId; + } + + public String getName() { + return name; + } + + public int getAge() { + return age; + } + + public int getCharacterId() { + return characterId; + } + + public List getEnrolledCourses() { + return enrolledCourses; + } + + public Map getGrades() { + return grades; + } +} diff --git a/src/main/java/task_3/solution/SimpsonsCourse.java b/src/main/java/task_3/solution/SimpsonsCourse.java new file mode 100644 index 0000000..4a1042e --- /dev/null +++ b/src/main/java/task_3/solution/SimpsonsCourse.java @@ -0,0 +1,19 @@ +package task_3.solution; + +public class SimpsonsCourse { + private String courseName; + private int courseId; + + public SimpsonsCourse(String courseName, int courseId) { + this.courseName = courseName; + this.courseId = courseId; + } + + public String getCourseName() { + return courseName; + } + + public int getCourseId() { + return courseId; + } +} diff --git a/src/main/java/task_3/solution/SimpsonsGrade.java b/src/main/java/task_3/solution/SimpsonsGrade.java new file mode 100644 index 0000000..ebb5a91 --- /dev/null +++ b/src/main/java/task_3/solution/SimpsonsGrade.java @@ -0,0 +1,25 @@ +package task_3.solution; + +public class SimpsonsGrade { + private SimpsonsCourse course; + private SimpsonsCharacter character; + private int gradeValue; + + public SimpsonsGrade(SimpsonsCourse course, SimpsonsCharacter character, int gradeValue) { + this.course = course; + this.character = character; + this.gradeValue = gradeValue; + } + + public SimpsonsCourse getCourse() { + return course; + } + + public SimpsonsCharacter getCharacter() { + return character; + } + + public int getGradeValue() { + return gradeValue; + } +} diff --git a/src/main/java/task_3/solution/SimpsonsSchool.java b/src/main/java/task_3/solution/SimpsonsSchool.java new file mode 100644 index 0000000..56e32cf --- /dev/null +++ b/src/main/java/task_3/solution/SimpsonsSchool.java @@ -0,0 +1,33 @@ +package task_3.solution; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public class SimpsonsSchool { + private List characters = new ArrayList<>(); + private List courses = new ArrayList<>(); + private List grades = new ArrayList<>(); + + public void enrollCharacter(SimpsonsCharacter character, List courses){ + character.getEnrolledCourses().addAll(courses); + characters.add(character); + } + + public void addGrade(SimpsonsCharacter character, SimpsonsCourse course, int gradeValue){ + if(gradeValue < 1 || gradeValue > 5){ + throw new IllegalArgumentException("Оценка должна быть между 1 и 5."); + } + SimpsonsGrade grade = new SimpsonsGrade(course, character, gradeValue); + grades.add(grade); + character.getGrades().put(course, gradeValue); + } + + public Map getCharacterTranscript(SimpsonsCharacter character){ + if(!character.getEnrolledCourses().isEmpty()){ + return character.getGrades(); + } else { + throw new IllegalArgumentException(character.getName() + " не записан на курсы."); + } + } +} diff --git a/src/main/java/task_4/Main.java b/src/main/java/task_4/Main.java new file mode 100644 index 0000000..23a19e5 --- /dev/null +++ b/src/main/java/task_4/Main.java @@ -0,0 +1,25 @@ +package task_4; + +import task_4.exception.SecurityBreachException; +import task_4.exception.UnauthorizedAccessAttemptException; +import task_4.solution.AvengersBase; +import task_4.solution.Hero; + +public class Main { + public static void main(String[] args) { + try { + Hero name1 = new Hero("Grut"); + Hero name2 = new Hero("Loki"); + AvengersBase avengersBase = new AvengersBase(); + + avengersBase.enterBase(name1); + avengersBase.enterBase(name2); + System.out.println(avengersBase.getSecretDocuments(name1, " Доступ представлен груту")); + System.out.println(avengersBase.getSecretDocuments(name2, " Доступ не предоставлен локи")); + } catch (SecurityBreachException exp) { + System.out.println("Security Exception " + exp.getMessage()); + } catch (UnauthorizedAccessAttemptException exp) { + System.out.println("Unauthorized Access Exception " + exp.getMessage()); + } + } +} diff --git a/src/main/java/task_4/exception/SecurityBreachException.java b/src/main/java/task_4/exception/SecurityBreachException.java new file mode 100644 index 0000000..f1051b3 --- /dev/null +++ b/src/main/java/task_4/exception/SecurityBreachException.java @@ -0,0 +1,7 @@ +package task_4.exception; + +public class SecurityBreachException extends Exception{ + public SecurityBreachException(String message) { + super(message); + } +} diff --git a/src/main/java/task_4/exception/UnauthorizedAccessAttemptException.java b/src/main/java/task_4/exception/UnauthorizedAccessAttemptException.java new file mode 100644 index 0000000..59f9b41 --- /dev/null +++ b/src/main/java/task_4/exception/UnauthorizedAccessAttemptException.java @@ -0,0 +1,7 @@ +package task_4.exception; + +public class UnauthorizedAccessAttemptException extends Exception{ + public UnauthorizedAccessAttemptException(String message) { + super(message); + } +} diff --git a/src/main/java/task_4/solution/AvengersBase.java b/src/main/java/task_4/solution/AvengersBase.java new file mode 100644 index 0000000..b0194b1 --- /dev/null +++ b/src/main/java/task_4/solution/AvengersBase.java @@ -0,0 +1,22 @@ +package task_4.solution; + +import task_4.exception.SecurityBreachException; +import task_4.exception.UnauthorizedAccessAttemptException; + +public class AvengersBase { + // Герой пытается вотий в базу + public void enterBase(Hero hero) throws SecurityBreachException { + if (hero.equals("Loki")) { + throw new SecurityBreachException("Локи пытается проникнуть на базу Мстителей!"); + } + System.out.println(hero.getName() + "успешно проник на базу Мстителей"); + } + + // Герой пытается получить доступ к документу + public String getSecretDocuments(Hero hero, String documentName) throws UnauthorizedAccessAttemptException { + if (hero.getName().equals("Loki")) { + throw new UnauthorizedAccessAttemptException("Локи пытается заполучить доступ к секретным документам!"); + } + return ("Доступ к " + documentName + " предоставлен " + hero.getName()); + } +} diff --git a/src/main/java/task_4/solution/Hero.java b/src/main/java/task_4/solution/Hero.java new file mode 100644 index 0000000..a83fd51 --- /dev/null +++ b/src/main/java/task_4/solution/Hero.java @@ -0,0 +1,13 @@ +package task_4.solution; + +public class Hero { + private final String name; + + public Hero(String name) { + this.name = name; + } + + public String getName() { + return name; + } +}