1 /**
2 * SpamSchutz - simple way to protect your mail addresses from naïve spammers
3 * Copyright (C) 2011, Aiki IT
4 * <p/>
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 * <p/>
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 * <p/>
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18 package de.aikiit.spamprotector.converter;
19
20 import lombok.Getter;
21
22 /**
23 * Encapsulates the character conversion logics.
24 * Each changeable character is represented by an enumeration instance and
25 * allows conversion from/to the encoded value.
26 */
27 @Getter
28 public enum CharacterConverter {
29
30 /** Space */
31 SPACE(" ", " "), //
32 /** Exclamation mark */
33 EXCLAMATION_MARK("!", "!"), //
34 /** Quotation */
35 QUOTE("\"", """), //
36 /** Hash */
37 HASH("#", "#"), //
38 /** Dollar sign */
39 DOLLAR("$", "$"), //
40 /** Percent */
41 PERCENT("%", "%"), //
42 /** Ampersand */
43 AMPERSAND("&", "&"), //
44 /** Single quotation */
45 SINGLE_QUOTE("'", "'"), //
46 /** Left bracket */
47 LEFT_BRACKET("(", "("), //
48 /** Right bracket */
49 RIGHT_BRACKET(")", ")"), //
50 /** Asterisk */
51 ASTERISK("*", "*"), //
52 /** Plus sign */
53 PLUS("+", "+"), //
54 /** Comma */
55 COMMA(",", ","), //
56 /** Minus sign */
57 MINUS("-", "-"), //
58 /** Plain dot */
59 DOT(".", "."), //
60 /** Single slash */
61 SLASH("/", "/"), //
62 /** Number 0 */
63 ZERO("0", "0"), //
64 /** Number 1 */
65 ONE("1", "1"), //
66 /** Number 2 */
67 TWO("2", "2"), //
68 /** Number 3 */
69 THREE("3", "3"), //
70 /** Number 4 */
71 FOUR("4", "4"), //
72 /** Number 5 */
73 FIVE("5", "5"), //
74 /** Number 6 */
75 SIX("6", "6"), //
76 /** Number 7 */
77 SEVEN("7", "7"), //
78 /** Number 8 */
79 EIGHT("8", "8"), //
80 /** Number 9 */
81 NINE("9", "9"), //
82 /** Colon */
83 COLON(":", ":"), //
84 /** Semicolon */
85 SEMICOLON(";", ";"), //
86 /** Less than */
87 LT("<", "<"), //
88 /** Equal sign */
89 EQUAL("=", "="), //
90 /** Greater than */
91 GT(">", ">"), //
92 /** Question mark */
93 QUESTION_MARK("?", "?"), //
94 /** AT sign */
95 AT("@", "@"), //
96 /** Capital A */
97 CAPITAL_A("A", "A"), //
98 /** Capital B */
99 CAPITAL_B("B", "B"), //
100 /** Capital C */
101 CAPITAL_C("C", "C"), //
102 /** Capital D */
103 CAPITAL_D("D", "D"), //
104 /** Capital E */
105 CAPITAL_E("E", "E"), //
106 /** Capital F */
107 CAPITAL_F("F", "F"), //
108 /** Capital G */
109 CAPITAL_G("G", "G"), //
110 /** Capital H */
111 CAPITAL_H("H", "H"), //
112 /** Capital I */
113 CAPITAL_I("I", "I"), //
114 /** Capital J */
115 CAPITAL_J("J", "J"), //
116 /** Capital K */
117 CAPITAL_K("K", "K"), //
118 /** Capital L */
119 CAPITAL_L("L", "L"), //
120 /** Capital M */
121 CAPITAL_M("M", "M"), //
122 /** Capital N */
123 CAPITAL_N("N", "N"), //
124 /** Capital O */
125 CAPITAL_O("O", "O"), //
126 /** Capital P */
127 CAPITAL_P("P", "P"), //
128 /** Capital Q */
129 CAPITAL_Q("Q", "Q"), //
130 /** Capital R */
131 CAPITAL_R("R", "R"), //
132 /** Capital S */
133 CAPITAL_S("S", "S"), //
134 /** Capital T */
135 CAPITAL_T("T", "T"), //
136 /** Capital U */
137 CAPITAL_U("U", "U"), //
138 /** Capital V */
139 CAPITAL_V("V", "V"), //
140 /** Capital W */
141 CAPITAL_W("W", "W"), //
142 /** Capital X */
143 CAPITAL_X("X", "X"), //
144 /** Capital Y */
145 CAPITAL_Y("Y", "Y"), //
146 /** Capital Z */
147 CAPITAL_Z("Z", "Z"), //
148 /** "[" */
149 LEFT_SQUARE_BRACKET("[", "["), //
150 /** Backslash */
151 BACKSLASH("\\", "\"), //
152 /** "]" */
153 RIGHT_SQUARE_BRACKET("]", "]"), //
154 /** Circumflex */
155 CIRCUMFLEX("^", "^"), //
156 /** Underscore */
157 UNDERSCORE("_", "_"), //
158 /** Tick */
159 TICK("`", "`"), //
160 /** Small a */
161 A("a", "a"), //
162 /** Small b */
163 B("b", "b"), //
164 /** Small c */
165 C("c", "c"), //
166 /** Small d */
167 D("d", "d"), //
168 /** Small e */
169 E("e", "e"), //
170 /** Small f */
171 F("f", "f"), //
172 /** Small g */
173 G("g", "g"), //
174 /** Small h */
175 H("h", "h"), //
176 /** Small i */
177 I("i", "i"), //
178 /** Small j */
179 J("j", "j"), //
180 /** Small k */
181 K("k", "k"), //
182 /** Small l */
183 L("l", "l"), //
184 /** Small m */
185 M("m", "m"), //
186 /** Small n */
187 N("n", "n"), //
188 /** Small o */
189 O("o", "o"), //
190 /** Small p */
191 P("p", "p"), //
192 /** Small q */
193 Q("q", "q"), //
194 /** Small r */
195 R("r", "r"), //
196 /** Small s */
197 S("s", "s"), //
198 /** Small t */
199 T("t", "t"), //
200 /** Small u */
201 U("u", "u"), //
202 /** Small v */
203 V("v", "v"), //
204 /** Small w */
205 W("w", "w"), //
206 /** Small x */
207 X("x", "x"), //
208 /** Small y */
209 Y("y", "y"), //
210 /** Small z */
211 Z("z", "z"), //
212 /** "{" */
213 LEFT_CURLY_BRACKET("{", "{"), //
214 /** Pipe */
215 PIPE("|", "|"), //
216 /** "}" */
217 RIGHT_CURLY_BRACKET("}", "}"), //
218 /** Tilde */
219 TILDE("~", "~"), //
220 //
221 ;
222
223 private final String plain;
224 private final String replacement;
225
226 CharacterConverter(final String plain, final String placement) {
227 this.plain = plain;
228 this.replacement = placement;
229 }
230
231 }