Skip to content

Commit 655d81a

Browse files
committed
Refactor: Move the move map into enum
1 parent 4dc6148 commit 655d81a

File tree

2 files changed

+47
-14
lines changed

2 files changed

+47
-14
lines changed

src/com/aizuddindeyn/mouse/MouseInstance.java

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44
*/
55
package com.aizuddindeyn.mouse;
66

7-
import java.util.HashMap;
8-
import java.util.Map;
97
import java.util.Timer;
108

119
/**
@@ -16,17 +14,10 @@ class MouseInstance {
1614

1715
private static final MouseInstance INSTANCE = new MouseInstance();
1816

19-
private static final Map<Integer, MouseMove> MOVE_MAP = new HashMap<>();
20-
2117
private Timer timer;
2218

2319
private boolean started = false;
2420

25-
static {
26-
MOVE_MAP.put(1, new MouseMoveRandom());
27-
MOVE_MAP.put(2, new MouseMoveEdge());
28-
}
29-
3021
private MouseInstance() {
3122
// Singleton
3223
}
@@ -51,11 +42,9 @@ synchronized void stop() {
5142

5243
void execute() {
5344
try {
54-
int type = MouseRandom.getSecureRandom().nextInt(MOVE_MAP.size()) + 1;
55-
MouseMove move = MOVE_MAP.get(type);
56-
if (move != null) {
57-
move.move();
58-
}
45+
int index = MouseRandom.getSecureRandom().nextInt(MouseMoveEnum.getEnumMap().size());
46+
MouseMoveEnum enums = MouseMoveEnum.values()[index];
47+
MouseMoveEnum.getEnumMap().get(enums).move();
5948

6049
} catch (Exception ex) {
6150
MouseUtils.logErr(ex.getMessage());
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/*
2+
* Owned by aizuddindeyn
3+
* Visit https://gitlab.com/group-bear/mouse-automation
4+
*/
5+
package com.aizuddindeyn.mouse;
6+
7+
import java.util.EnumMap;
8+
import java.util.Map;
9+
10+
/**
11+
* @author aizuddindeyn
12+
* @date 11/7/2020
13+
*/
14+
public enum MouseMoveEnum {
15+
16+
RANDOM(new MouseMoveRandom()),
17+
18+
EDGE(new MouseMoveEdge()),
19+
20+
CIRCLE(new MouseMoveCircular()),
21+
;
22+
23+
private static final Map<MouseMoveEnum, MouseMove> ENUM_MAP = new EnumMap<>(MouseMoveEnum.class);
24+
25+
private final MouseMove move;
26+
27+
static {
28+
for (MouseMoveEnum e : MouseMoveEnum.values()) {
29+
ENUM_MAP.put(e, e.getMove());
30+
}
31+
}
32+
33+
MouseMoveEnum(MouseMove move) {
34+
this.move = move;
35+
}
36+
37+
MouseMove getMove() {
38+
return move;
39+
}
40+
41+
static Map<MouseMoveEnum, MouseMove> getEnumMap() {
42+
return ENUM_MAP;
43+
}
44+
}

0 commit comments

Comments
 (0)