-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDivision.java
More file actions
109 lines (98 loc) · 2.81 KB
/
Copy pathDivision.java
File metadata and controls
109 lines (98 loc) · 2.81 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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
// SkyPro
// Курсовая работа «Введение в профессию и синтаксис языка»
// Константин Терских, kostus.online.1974@yandex.ru, 2024
// https://google.github.io/styleguide/javaguide.html
import org.jetbrains.annotations.NotNull;
import java.util.Objects;
/**
* Отдел компании.<br>
* (Здесь должен быть enum c методами, но enum ещё не проходили.
* С enum всё было бы немного компактнее и вообще логичней.)
*
* @author Константин Терских, kostus.online.1974@yandex.ru, 2024
* @version 1.1
*/
public final class Division {
/**
* Отдел не определён
*/
public static final String DIVISION_UNKNOWN = "-";
/**
* Отдел 1
*/
public static final String DIVISION_1 = "1";
/**
* Отдел 2
*/
public static final String DIVISION_2 = "2";
/**
* Отдел 3
*/
public static final String DIVISION_3 = "3";
/**
* Отдел 4
*/
public static final String DIVISION_4 = "4";
/**
* Отдел 5
*/
public static final String DIVISION_5 = "5";
/**
* Название отдела
*/
@NotNull
private final String name;
/**
* Конструктор по умолчанию.<br>
* Создан только для удовлетворения анализатора.
*/
@SuppressWarnings("unused")
public Division() {
assert false;
this.name = DIVISION_UNKNOWN;
}
/**
* Конструктор.<br>
* Устанавливает название отдела {@link Division#name}.
*
* @param name название отдела.<br>
*/
public Division(@NotNull String name) {
this.name = switch (name) {
case "1" /* ... */ -> DIVISION_1;
case "2" /* ... */ -> DIVISION_2;
case "3" /* ... */ -> DIVISION_3;
case "4" /* ... */ -> DIVISION_4;
case "5" /* ... */ -> DIVISION_5;
default -> DIVISION_UNKNOWN;
};
}
/**
* Получение названия отдела {@link Division#name}.
*
* @return название отдела.
*/
@NotNull
public String getName() {
return name;
}
@Override
public String toString() {
return getName();
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
Division that = (Division) o;
return Objects.equals(name, that.name);
}
@Override
public int hashCode() {
return Objects.hash(name);
}
}