Skip to content

Commit 25181dd

Browse files
committed
refactor: create TranslationDictionary
1 parent f4b4475 commit 25181dd

2 files changed

Lines changed: 59 additions & 38 deletions

File tree

src/main/java/io/github/vbetsch/codecracker/Cypher.java

Lines changed: 3 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -6,48 +6,13 @@
66
import static java.util.Map.entry;
77

88
public class Cypher {
9-
private final Map<Character, Character> dictionary = Map.ofEntries(
10-
entry('a', '!'),
11-
entry('b', ')'),
12-
entry('c', '"'),
13-
entry('d', '('),
14-
entry('e', '£'),
15-
entry('f', '*'),
16-
entry('g', '%'),
17-
entry('h', '&'),
18-
entry('i', '>'),
19-
entry('j', '<'),
20-
entry('k', '@'),
21-
entry('l', 'a'),
22-
entry('m', 'b'),
23-
entry('n', 'c'),
24-
entry('o', 'd'),
25-
entry('p', 'e'),
26-
entry('q', 'f'),
27-
entry('r', 'g'),
28-
entry('s', 'h'),
29-
entry('t', 'i'),
30-
entry('u', 'j'),
31-
entry('v', 'k'),
32-
entry('w', 'l'),
33-
entry('x', 'm'),
34-
entry('y', 'n'),
35-
entry('z', 'o')
36-
);
37-
38-
private static Map<Character, Character> invertMap(Map<Character, Character> map) {
39-
Map<Character, Character> inverted = new HashMap<>();
40-
for (Map.Entry<Character, Character> entry : map.entrySet()) {
41-
inverted.put(entry.getValue(), entry.getKey());
42-
}
43-
return inverted;
44-
}
9+
private final TranslationDictionary dictionary = new TranslationDictionary();
4510

4611
public char decryptLetter(char letter) {
47-
return dictionary.get(letter);
12+
return dictionary.getDecryptions().get(letter);
4813
}
4914

5015
public char encryptChar(char character) {
51-
return invertMap(dictionary).get(character);
16+
return dictionary.getEncryptions().get(character);
5217
}
5318
}
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
package io.github.vbetsch.codecracker;
2+
3+
import java.util.HashMap;
4+
import java.util.Map;
5+
6+
import static java.util.Map.entry;
7+
8+
public class TranslationDictionary {
9+
10+
private final Map<Character, Character> decryptions = Map.ofEntries(
11+
entry('a', '!'),
12+
entry('b', ')'),
13+
entry('c', '"'),
14+
entry('d', '('),
15+
entry('e', '£'),
16+
entry('f', '*'),
17+
entry('g', '%'),
18+
entry('h', '&'),
19+
entry('i', '>'),
20+
entry('j', '<'),
21+
entry('k', '@'),
22+
entry('l', 'a'),
23+
entry('m', 'b'),
24+
entry('n', 'c'),
25+
entry('o', 'd'),
26+
entry('p', 'e'),
27+
entry('q', 'f'),
28+
entry('r', 'g'),
29+
entry('s', 'h'),
30+
entry('t', 'i'),
31+
entry('u', 'j'),
32+
entry('v', 'k'),
33+
entry('w', 'l'),
34+
entry('x', 'm'),
35+
entry('y', 'n'),
36+
entry('z', 'o')
37+
);
38+
39+
private final Map<Character, Character> encryptions = invert(decryptions);
40+
41+
public Map<Character, Character> getDecryptions() {
42+
return decryptions;
43+
}
44+
45+
public Map<Character, Character> getEncryptions() {
46+
return encryptions;
47+
}
48+
49+
private static Map<Character, Character> invert(Map<Character, Character> map) {
50+
Map<Character, Character> inverted = new HashMap<>();
51+
for (Map.Entry<Character, Character> entry : map.entrySet()) {
52+
inverted.put(entry.getValue(), entry.getKey());
53+
}
54+
return inverted;
55+
}
56+
}

0 commit comments

Comments
 (0)