Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions src/main/java/task_1/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package task_1;

public class Main{
public static void main(String[] args) throws TimeTravelException {
TimeTraveler timeTraveler = new TimeTraveler("Petr", 1960, 2020);
TimeMachine timeMachine = new TimeMachine(9999, true);

try{
timeMachine.travelInTime(timeTraveler, 2001);}
catch (Exception e){
throw new TimeTravelException(e.getMessage());
}
}
}
25 changes: 25 additions & 0 deletions src/main/java/task_1/TimeMachine.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package task_1;
public class TimeMachine {

int currentYear;
boolean isWorking;

public TimeMachine(int currentYear, boolean isWorking) {
this.currentYear = currentYear;
this.isWorking = isWorking;
}

void travelInTime(TimeTraveler timeTraveler, int travelYear) throws TimeTravelException {
if(!isWorking) {
throw new TimeTravelException("machine malfunction");
}
if(currentYear < timeTraveler.birthYear) {
throw new TimeTravelException("you're not born yet");
}
if(currentYear > timeTraveler.deathYear) {
throw new TimeTravelException("you're already dead");
} else {
System.out.println("go go go");
}
}
}
9 changes: 9 additions & 0 deletions src/main/java/task_1/TimeTravelException.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package task_1;
class TimeTravelException extends Exception{

public TimeTravelException(String message) {

super(message);
}

}
15 changes: 15 additions & 0 deletions src/main/java/task_1/TimeTraveler.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package task_1;
public class TimeTraveler {
String name;
static int birthYear;
int deathYear;

public TimeTraveler(String name, int birthYear, int deathYear) {
this.name = name;
this.birthYear = birthYear;
this.deathYear = deathYear;
}
public static int getBirthYear(){
return birthYear;
}
}
40 changes: 40 additions & 0 deletions src/main/java/task_2/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package task_2;


import java.util.HashMap;
import java.util.Map;

public class Main{
public static void main(String[] args) throws NotEnoughWoodException, NotEnoughMaterialException, IllegalAccessException {

Wand wand1 = new Wand("dub", 10, "iron", 32); //создание экземпляра палки
Wand wand2 = new Wand("buk", 12, "carbon", 13); //создание экземпляра палки

HashMap<String, Integer> woodTypeCount = new HashMap<>(); //наполнение будущего экземпляра магаза
HashMap<String, Integer> coreMaterialCount = new HashMap<>();
woodTypeCount.put("dub", 5);
woodTypeCount.put("buk", 5);
coreMaterialCount.put("iron", 5);
coreMaterialCount.put("carbon", 5);

OlivandersShop olivandersShop1 = new OlivandersShop(woodTypeCount, coreMaterialCount); //создание экземпляра1 магаза


WandOrder wandOrder1 = new WandOrder("Frodo", wand1, 5); //создание экземпляра1 заказа
WandOrder wandOrder2 = new WandOrder("Sam", wand2, 5); //создание экземпляра2 заказа

try{
olivandersShop1.placeOrder(wandOrder1);}
catch (Exception e) {
throw new NotEnoughWoodException(e.getMessage());
}

try{
olivandersShop1.placeOrder(wandOrder2);}
catch (Exception e) {
throw new NotEnoughWoodException(e.getMessage());
}

olivandersShop1.findMostPowerfulWand();
}
}
7 changes: 7 additions & 0 deletions src/main/java/task_2/NotEnoughMaterialException.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package task_2;

public class NotEnoughMaterialException extends Exception{
public NotEnoughMaterialException(String message) {
super(message);
}
}
9 changes: 9 additions & 0 deletions src/main/java/task_2/NotEnoughWoodException.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package task_2;

public class NotEnoughWoodException extends Exception{

public NotEnoughWoodException(String message) {

super(message);
}
}
36 changes: 36 additions & 0 deletions src/main/java/task_2/OlivandersShop.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package task_2;

import java.util.HashMap;
import java.util.Map;

public class OlivandersShop{
Map<String, Integer> woodTypeCount;
Map<String, Integer> coreMaterialCount;



public OlivandersShop(Map<String, Integer> woodTypeCount, Map<String, Integer> coreMaterialCount) {
this.woodTypeCount = woodTypeCount;
this.coreMaterialCount = coreMaterialCount;
}





public void placeOrder(WandOrder order) throws NotEnoughMaterialException {
if(order.quantity > woodTypeCount.get(order.wand.woodType)) {
throw new NotEnoughMaterialException("нужно больше дерева");}
if(order.quantity > coreMaterialCount.get(order.wand.coreMaterial)) {
throw new NotEnoughMaterialException("нужно больше наполнителя");}
else {System.out.println("твой заказ выполнен");}




};
public Wand findMostPowerfulWand() {
System.out.println(Wand.instances);
return null;
};
}
28 changes: 28 additions & 0 deletions src/main/java/task_2/Wand.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package task_2;

import java.util.HashMap;

public class Wand{
String woodType;
int length;
String coreMaterial;
int powerLevel;

static HashMap<Integer, String> instances = new HashMap<Integer, String>();
static int cnt;


public Wand(String woodType, int length, String coreMaterial, int powerLevel) throws IllegalAccessException {
this.woodType = woodType;
if (woodType == null) throw new IllegalArgumentException ("Wood type must be not null");
this.length = length;
if (length <= 0) throw new IllegalArgumentException("lenght is " + length);
this.coreMaterial = coreMaterial;
if (coreMaterial == null) throw new IllegalArgumentException ("coreMaterial type must be not null");
this.powerLevel = powerLevel;
if (powerLevel <= 0) throw new IllegalArgumentException("powerLevel is " + powerLevel);

cnt++;
instances.put(powerLevel, this.toString());
}
}
15 changes: 15 additions & 0 deletions src/main/java/task_2/WandOrder.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package task_2;


public class WandOrder{
String customerName;
Wand wand;
int quantity;

public WandOrder(String customerName, Wand wand, int quantity) {

this.customerName = customerName;
this.wand = wand;
this.quantity = quantity;
}
}