diff --git a/build.gradle b/build.gradle index e9a013a..d58b7c5 100644 --- a/build.gradle +++ b/build.gradle @@ -10,8 +10,14 @@ repositories { } dependencies { + implementation 'org.projectlombok:lombok:1.18.28' testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.2' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.2' + compileOnly 'org.projectlombok:lombok:1.18.30' + annotationProcessor 'org.projectlombok:lombok:1.18.30' + + testCompileOnly 'org.projectlombok:lombok:1.18.30' + testAnnotationProcessor 'org.projectlombok:lombok:1.18.30' } test { diff --git a/src/main/java/task_1/TimeMachine.java b/src/main/java/task_1/TimeMachine.java new file mode 100644 index 0000000..3f95f59 --- /dev/null +++ b/src/main/java/task_1/TimeMachine.java @@ -0,0 +1,44 @@ +package task_1; + +import lombok.extern.slf4j.Slf4j; + +import java.util.Date; + +@Slf4j +public class TimeMachine { + private int currentYear; + private boolean isWorking; + + public static void main(String[] args) { + TimeTraveler timeTraveler1 = new TimeTraveler("Ivan1", 1983, 2080); + TimeTraveler timeTraveler2 = new TimeTraveler("Ivan2", 2000, 2090); + TimeTraveler timeTraveler3 = new TimeTraveler("Ivan3", 1995, 2100); + TimeMachine timeMachine = new TimeMachine(); + timeMachine.isWorking = true; + timeMachine.traveInItemWithCatch(timeTraveler1, 2000); + timeMachine.traveInItemWithCatch(timeTraveler2, 1999); + timeMachine.traveInItemWithCatch(timeTraveler3, 2101); + timeMachine.traveInItemWithCatch(timeTraveler1, 2100); + } + + private void traveInItemWithCatch(TimeTraveler timeTraveler, int year) { + try { + traveInTime(timeTraveler, year); + } catch (TimeTravelException e) { + log.info(e.getStackTrace()); + } + } + + public void traveInTime(TimeTraveler timeTraveler, int year) { + if (!isWorking) { + throw new TimeTravelException("Machine is not working"); + } + if (year < timeTraveler.getBirthYear()) { + throw new TimeTravelException("Trave in " + year + " year were traveler not birth. BirthDay - " + timeTraveler.getBirthYear()); + } + if (year > timeTraveler.getDearthYear()) { + throw new TimeTravelException("Trave in " + year + " year were traveler is dead. DeathDay - " + timeTraveler.getDearthYear()); + } + System.out.println("Trave " + timeTraveler.getName() + "to " + year + " year"); + } +} diff --git a/src/main/java/task_1/TimeTravelException.java b/src/main/java/task_1/TimeTravelException.java new file mode 100644 index 0000000..519764d --- /dev/null +++ b/src/main/java/task_1/TimeTravelException.java @@ -0,0 +1,7 @@ +package task_1; + +public class TimeTravelException extends RuntimeException { + public TimeTravelException(String message) { + super(message); + } +} diff --git a/src/main/java/task_1/TimeTraveler.java b/src/main/java/task_1/TimeTraveler.java new file mode 100644 index 0000000..1e7b9a1 --- /dev/null +++ b/src/main/java/task_1/TimeTraveler.java @@ -0,0 +1,36 @@ +package task_1; + +import java.util.Date; + +public class TimeTraveler { + private String name; + private int birthYear; + private int dearthYear; + + public TimeTraveler(String name, int birthYear, int dearthYear) { + this.name = name; + this.birthYear = birthYear; + this.dearthYear = dearthYear; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getBirthYear() { + return birthYear; + } + + public void setBirthYear(int birthYear) { + this.birthYear = birthYear; + } + + public int getDearthYear() { + return dearthYear; + } + +}