-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathSoftware.java
More file actions
63 lines (39 loc) · 2.42 KB
/
Software.java
File metadata and controls
63 lines (39 loc) · 2.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
//And prevailed not; neither was their place found any more in heaven. (Revelation 12:8)
package com.javarush.task.task39.task3911;
import java.util.*;
public class Software {
int currentVersion;
private Map<Integer, String> versionHistoryMap = new LinkedHashMap<>();
public void addNewVersion(int version, String description) {
if (version > currentVersion) {
versionHistoryMap.put(version, description);
currentVersion = version;
}
}
public int getCurrentVersion() {
return currentVersion;
}
public Map<Integer, String> getVersionHistoryMap() {
return Collections.unmodifiableMap(versionHistoryMap);
}
public boolean rollback(int rollbackVersion) {
if (!versionHistoryMap.containsKey(rollbackVersion))
return false;
Iterator<Integer> iterator = versionHistoryMap.keySet().iterator();
while (iterator.hasNext())
if (iterator.next()>rollbackVersion)
iterator.remove();
currentVersion = rollbackVersion;
return true;
}
}
/*
Rollback
Необходимо реализовать метод rollback в классе Software, который будет позволять откатить текущую версию ПО на желаемую. Все версии следующие после той, на которую откатываемся, должны быть удалены, также не забудь изменить поле currentVersion.
Метод rollback должен вернуть true, если все прошло успешно и false, если желаемая версия не была найдена.
Требования:
1. Метод rollback должен возвращать false, если желаемая версия не была найдена в versionHistoryMap.
2. Метод rollback должен удалять из versionHistoryMap только версии ПО, следующие за той, которую передали в качестве параметра.
3. Метод rollback должен устанавливать currentVersion в соответствие с новым значением и возвращать true в случае успешного отката.
4. Метод rollback не должен изменять currentVersion и versionHistoryMap, если откат невозможен.
*/