Skip to content

Commit fa4ac91

Browse files
committed
java sprint 5 v1.1
1 parent b62c08b commit fa4ac91

File tree

7 files changed

+70
-30
lines changed

7 files changed

+70
-30
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package ru.yandex.javacource.golotin.schedule.service;
2+
3+
import java.util.List;
4+
5+
import ru.yandex.javacource.golotin.schedule.model.Task;
6+
7+
public interface HistoryManager {
8+
void add(Task task);
9+
10+
List<Task> getHistory();
11+
12+
13+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package ru.yandex.javacource.golotin.schedule.service;
2+
3+
import java.util.ArrayList;
4+
import java.util.List;
5+
6+
import ru.yandex.javacource.golotin.schedule.model.Task;
7+
import ru.yandex.javacource.golotin.schedule.service.HistoryManager;
8+
9+
public class InMemoryHistoryManager implements HistoryManager {
10+
private final int ARRAY_SIZE = 10;
11+
List<Task> history = new ArrayList<>();
12+
13+
@Override
14+
public void add(Task task) {
15+
if (task == null) {
16+
return;
17+
}
18+
if (history.size() < ARRAY_SIZE) {
19+
20+
history.add(task);
21+
} else {
22+
history.remove(0);
23+
history.add(task);
24+
}
25+
}
26+
27+
@Override
28+
public List<Task> getHistory() {
29+
return history;
30+
}
31+
}

src/ru/yandex/javacource/golotin/schedule/service/InMemoryTaskManager.java

Lines changed: 15 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,19 @@
77

88
import java.util.ArrayList;
99
import java.util.HashMap;
10+
import java.util.Map;
1011

1112

1213
public class InMemoryTaskManager implements TaskManager {
14+
//private final HistoryManager historyManager;
15+
// this.historyManager = historyManager;
1316
private int counterId = 0;
14-
private final HashMap<Integer, Task> tasks = new HashMap<>();
15-
private final HashMap<Integer, Epic> epics = new HashMap<>();
16-
private final HashMap<Integer, Subtask> subtasks = new HashMap<>();
17-
private final ArrayList<Object> history = new ArrayList<>(10);
17+
private final Map<Integer, Task> tasks = new HashMap<>();
18+
private final Map<Integer, Epic> epics = new HashMap<>();
19+
private final Map<Integer, Subtask> subtasks = new HashMap<>();
20+
21+
InMemoryHistoryManager history = new InMemoryHistoryManager();
22+
1823

1924
@Override
2025
public Task createTask(Task task) {
@@ -155,38 +160,33 @@ public ArrayList<Subtask> getEpicSubtasks(int epicId) {
155160

156161
@Override
157162
public Task getTask(int id) {
158-
checkArray(tasks.get(id));
163+
history.add(tasks.get(id));
159164
return tasks.get(id);
160165

161166
}
162167

163168
@Override
164169
public Epic getEpic(int id) {
165-
checkArray(epics.get(id));
170+
history.add(epics.get(id));
166171
return epics.get(id);
167172
}
168173

169174
@Override
170175
public Subtask getSubtask(int id) {
171-
checkArray(subtasks.get(id));
176+
history.add(subtasks.get(id));
172177
return subtasks.get(id);
173178
}
174179

175-
@Override
176-
public <T> ArrayList<T> getHistory() {
177-
System.out.println(history.size());
178-
return (ArrayList<T>) history;
179-
}
180180

181-
public HashMap<Integer, Task> getTask() {
181+
public Map<Integer, Task> getTask() {
182182
return tasks;
183183
}
184184

185-
public HashMap<Integer, Epic> getEpic() {
185+
public Map<Integer, Epic> getEpic() {
186186
return epics;
187187
}
188188

189-
public HashMap<Integer, Subtask> getSubtask() {
189+
public Map<Integer, Subtask> getSubtask() {
190190
return subtasks;
191191
}
192192

@@ -222,13 +222,4 @@ private void updateEpicStatus(int epicId) {
222222
}
223223
}
224224

225-
private <T> void checkArray(T t) {
226-
if (history.size() < 10) {
227-
228-
history.add(t);
229-
} else {
230-
history.remove(0);
231-
history.add(t);
232-
}
233-
}
234225
}
Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
package ru.yandex.javacource.golotin.schedule.service;
22

33
public class Manager {
4-
public static TaskManager getDefaults(){
4+
public static TaskManager getDefaults() {
55
return new InMemoryTaskManager();
66
}
7+
8+
public static InMemoryHistoryManager getDefaultHistory() {
9+
return new InMemoryHistoryManager();
10+
}
711
}

src/ru/yandex/javacource/golotin/schedule/service/TaskManager.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import ru.yandex.javacource.golotin.schedule.model.Task;
66

77
import java.util.ArrayList;
8+
import java.util.List;
89

910
public interface TaskManager {
1011
Task createTask(Task task);
@@ -31,18 +32,17 @@ public interface TaskManager {
3132

3233
void deleteEpic(int id);
3334

34-
ArrayList<Task> getTasks();
35+
List<Task> getTasks();
3536

36-
ArrayList<Epic> getEpics();
37+
List<Epic> getEpics();
3738

38-
ArrayList<Subtask> getEpicSubtasks(int epicId);
39+
List<Subtask> getEpicSubtasks(int epicId);
3940

4041
Task getTask(int id);
4142

4243
Epic getEpic(int id);
4344

4445
Subtask getSubtask(int id);
4546

46-
<T> ArrayList<T> getHistory();
4747

4848
}

src/ru/yandex/javacource/golotin/schedule/test/service/InMemoryTaskManagerTest.java renamed to test/ru/yandex/javacource/golotin/schedule/service/InMemoryTaskManagerTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99

1010
import java.util.ArrayList;
11+
import java.util.List;
1112

1213
import static org.junit.jupiter.api.Assertions.*;
1314

@@ -74,7 +75,7 @@ void shouldGetTasks() {
7475
taskManager.createTask(task);
7576
taskManager.createTask(task2);
7677

77-
ArrayList<Task> tasks = new ArrayList<>();
78+
List<Task> tasks = new ArrayList<>();
7879
tasks.add(task);
7980
tasks.add(task2);
8081
assertEquals(tasks, taskManager.getTasks());

0 commit comments

Comments
 (0)