Skip to content

Commit 92d37d7

Browse files
committed
java sprint 4 v1
1 parent 08ac47f commit 92d37d7

File tree

7 files changed

+280
-3
lines changed

7 files changed

+280
-3
lines changed

.DS_Store

6 KB
Binary file not shown.

src/Epic.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import java.util.ArrayList;
2+
3+
public class Epic extends Task{
4+
5+
ArrayList<Subtask> subtasks = new ArrayList<>();
6+
Epic(String name, Status status, String description) {
7+
super(name, status, description);
8+
}
9+
10+
public ArrayList<Subtask> getSubtasks() {
11+
return subtasks;
12+
}
13+
14+
public void setSubtasks(ArrayList<Subtask> subtasks) {
15+
16+
this.subtasks = subtasks;
17+
}
18+
19+
}

src/Main.java

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,33 @@
1-
public class Main {
21

2+
public class Main {
33
public static void main(String[] args) {
4-
System.out.println("Поехали!");
4+
TaskManager taskManager = new TaskManager();
5+
taskManager.createTask(new Task("Дом",Status.NEW,"Убраться в кухни и ванной"));
6+
taskManager.createTask(new Task("Работа",Status.IN_PROGRESS,"Сделать куча рутины и пойти домой:)"));
7+
8+
9+
taskManager.createEpic(new Epic("Прогулка", Status.NEW,"Прежде чем погулять нужно:"));
10+
taskManager.createSubtask(new Subtask("Уборка",Status.NEW,"Убраться в квартире"));
11+
taskManager.createSubtask(new Subtask("Одежда",Status.NEW,"Подготовить одежду к прогулке"));
12+
13+
taskManager.createEpic(new Epic("Приготовить кофе",Status.NEW,"Пойти на кухню и:"));
14+
taskManager.createSubtask(new Subtask("Сделать кофе",Status.NEW,"Налить в кружку горячую воду и наспать кофе"));
15+
16+
taskManager.updateTask(new Task("Дом",Status.IN_PROGRESS,"Уборка в кухни и ванной"));
17+
18+
taskManager.updateEpic(new Epic("Прогулка",Status.NEW,"Не пойду гулять"));
19+
taskManager.updateSubtask(new Subtask("Уборка",Status.IN_PROGRESS,"Убираюсь)"));
20+
taskManager.updateSubtask(new Subtask("Сделать кофе",Status.DONE,"Кофе приготовлено"));
21+
22+
taskManager.printTask();
23+
taskManager.printEpic();
24+
25+
taskManager.removeIdTask(1);
26+
taskManager.removeIdEpic(1);
27+
taskManager.removeIdSubtask(1);
28+
29+
taskManager.clearTask();
30+
taskManager.clearEpic();
31+
taskManager.clearSubtask();
532
}
6-
}
33+
}

src/Status.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
public enum Status {
2+
NEW,
3+
IN_PROGRESS,
4+
DONE
5+
}

src/Subtask.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
public class Subtask extends Task{
2+
3+
Integer epicId;
4+
Subtask(String name, Status status, String description) {
5+
super(name, status, description);
6+
}
7+
8+
public Integer getEpicId() {
9+
return epicId;
10+
}
11+
12+
public void setEpicId(Integer epicId) {
13+
this.epicId = epicId;
14+
}
15+
}

src/Task.java

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
import java.util.Objects;
2+
3+
public class Task {
4+
private int id;
5+
private String name;
6+
private String description;
7+
private Status status;
8+
9+
Task(String name, Status status,String description){
10+
this.name=name;
11+
this.status=status;
12+
this.description=description;
13+
}
14+
15+
public int getId() {
16+
return id;
17+
}
18+
19+
public void setId(int id) {
20+
this.id = id;
21+
}
22+
23+
public String getName() {
24+
return name;
25+
}
26+
27+
public void setName(String name) {
28+
this.name = name;
29+
}
30+
31+
public String getDescription() {
32+
return description;
33+
}
34+
35+
public void setDescription(String description) {
36+
this.description = description;
37+
}
38+
39+
public Status getStatus() {
40+
return status;
41+
}
42+
43+
public void setStatus(Status status) {
44+
this.status = status;
45+
}
46+
47+
@Override
48+
public boolean equals(Object o) {
49+
if (this == o) return true;
50+
if (o == null || getClass() != o.getClass()) return false;
51+
Task task = (Task) o;
52+
return id == task.id;
53+
}
54+
55+
@Override
56+
public int hashCode() {
57+
return Objects.hash(id);
58+
}
59+
}

src/TaskManager.java

Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
import java.util.ArrayList;
2+
import java.util.HashMap;
3+
import java.util.Objects;
4+
public class TaskManager {
5+
Integer idTask = 0;
6+
Integer idEpic=0;
7+
Integer idSubtask=0;
8+
HashMap<Integer,Task> task = new HashMap<>();
9+
HashMap<Integer,Epic> epic = new HashMap<>();
10+
HashMap<Integer,Subtask> subtask = new HashMap<>();
11+
12+
public Task createTask(Task task){
13+
idTask++;
14+
this.task.put(idTask,task);
15+
task.setId(idTask);
16+
return task;
17+
}
18+
public Epic createEpic(Epic epic){
19+
idEpic++;
20+
this.epic.put(idEpic,epic);
21+
epic.setId(idEpic);
22+
return epic;
23+
}
24+
public Subtask createSubtask(Subtask subtask){
25+
idSubtask++;
26+
subtask.setId(idSubtask);
27+
subtask.setEpicId(idEpic);
28+
if(epic.containsKey(idEpic)){
29+
Epic Objects = epic.get(idEpic);
30+
ArrayList<Subtask> subtask1 = Objects.getSubtasks();
31+
subtask1.add(subtask);
32+
Objects.setSubtasks(subtask1);
33+
34+
}
35+
this.subtask.put(idSubtask,subtask);
36+
return subtask;
37+
}
38+
39+
public void updateTask(Task task){
40+
for(Task idTask: this.task.values()){
41+
if(Objects.equals(idTask.getName(), task.getName())){
42+
task.setId(idTask.getId());
43+
this.task.put(task.getId(),task);
44+
}
45+
}
46+
}
47+
public void updateEpic(Epic epic){
48+
for(Epic idEpic: this.epic.values()){
49+
if(Objects.equals(idEpic.getName(),epic.getName())){
50+
epic.setId(idEpic.getId());
51+
ArrayList<Subtask> sub = idEpic.getSubtasks();
52+
for(Subtask subtask1: sub){
53+
54+
short subtaskNew = 0;
55+
short subtaskDone = 0;
56+
if(subtask1.getStatus()==Status.IN_PROGRESS){
57+
epic.setStatus(Status.IN_PROGRESS);
58+
break;
59+
}else if(subtask1.getStatus()==Status.NEW){
60+
subtaskNew++;
61+
} else if (subtask1.getStatus()==Status.DONE) {
62+
subtaskDone++;
63+
}
64+
if(subtaskDone==sub.size()){
65+
epic.setStatus(Status.DONE);
66+
break;
67+
}
68+
if(subtaskNew==sub.size()){
69+
epic.setStatus(Status.NEW);
70+
}else{
71+
epic.setStatus(Status.IN_PROGRESS);
72+
}
73+
break;
74+
}
75+
epic.setSubtasks(sub);
76+
this.epic.put(epic.getId(), epic);
77+
}
78+
}
79+
}
80+
public void updateSubtask(Subtask subtask){
81+
for(Subtask idSubtask : this.subtask.values()){
82+
if(Objects.equals(idSubtask.getName(),subtask.getName())){
83+
subtask.setId(idSubtask.getId());
84+
subtask.setEpicId(idSubtask.getEpicId());
85+
Epic Object = epic.get(subtask.getEpicId());
86+
ArrayList<Subtask> subtask1 = Object.getSubtasks();
87+
subtask1.set(subtask1.indexOf(idSubtask),subtask);
88+
Object.setSubtasks(subtask1);
89+
this.subtask.put(subtask.getId(), subtask);
90+
updateEpic(Object);
91+
}
92+
}
93+
}
94+
public void clearTask(){
95+
task.clear();
96+
System.out.println("Список задач был успешно удален");
97+
}
98+
public void clearSubtask(){
99+
subtask.clear();
100+
System.out.println("Список подзадач был успешно удален");
101+
}
102+
public void clearEpic(){
103+
epic.clear();
104+
System.out.println("Список эпиков был успешно удален");
105+
}
106+
107+
public void removeIdTask(int id){
108+
task.remove(id);
109+
System.out.println("Задача №"+id+" успешно удалена");
110+
}
111+
public void removeIdSubtask(int id){
112+
subtask.remove(id);
113+
System.out.println("Подзадача №"+id+" успешно удалена");
114+
}
115+
public void removeIdEpic(int id){
116+
epic.remove(id);
117+
System.out.println("Эпик №"+id+" успешно удалена");
118+
}
119+
120+
public void printTask(){
121+
for(Task tasks : task.values()){
122+
print(tasks);
123+
}
124+
}
125+
public void printEpic(){
126+
for(Epic epics : epic.values()){
127+
print(epics);
128+
ArrayList<Subtask> subtasks = epics.getSubtasks();
129+
for(Subtask subtask : subtasks){
130+
print(subtask);
131+
}
132+
}
133+
}
134+
135+
136+
private void print(Task task){
137+
System.out.println("№ "+task.getId());
138+
System.out.println("Задача: "+task.getName());
139+
System.out.println("Описание: "+task.getDescription());
140+
if(task.getStatus()==Status.NEW){
141+
System.out.println("Статус: Новый");
142+
}else if(task.getStatus()==Status.DONE){
143+
System.out.println("Статус: Выполнено");
144+
} else {
145+
System.out.println("Статус: В процессе");
146+
}
147+
System.out.println(" ");
148+
System.out.println(" ");
149+
}
150+
151+
}
152+

0 commit comments

Comments
 (0)