package org.geogebra.keyboard.base;
import java.util.HashMap;
import java.util.Map;
/**
* Contains accents, adds available diacritics to simple letters.
*/
public class Accents {
public static final String ACCENT_ACUTE = "\u00B4";
public static final String ACCENT_GRAVE = "\u0060";
public static final String ACCENT_CARON = "\u02C7";
public static final String ACCENT_CIRCUMFLEX = "\u005E";
private static Map<String, String> acute;
private static Map<String, String> grave;
private static Map<String, String> caron;
private static Map<String, String> circumflex;
static {
initAcuteLetters();
initGraveLetters();
initCaronLetters();
initCircumflexLetters();
}
private static void initAcuteLetters() {
acute = new HashMap<>();
acute.put("a", "\u00e1");
acute.put("A", "\u00c1");
acute.put("e", "\u00e9");
acute.put("E", "\u00C9");
acute.put("i", "\u00ed");
acute.put("I", "\u00cd");
acute.put("l", "\u013A");
acute.put("L", "\u0139");
acute.put("o", "\u00f3");
acute.put("O", "\u00d3");
acute.put("r", "\u0155");
acute.put("R", "\u0154");
acute.put("u", "\u00fa");
acute.put("U", "\u00da");
acute.put("y", "\u00fd");
acute.put("Y", "\u00dd");
}
private static void initGraveLetters() {
grave = new HashMap<>();
grave.put("a", "\u00e0");
grave.put("A", "\u00c0");
grave.put("e", "\u00e8");
grave.put("E", "\u00C8");
grave.put("i", "\u00ec");
grave.put("I", "\u00cc");
grave.put("o", "\u00f2");
grave.put("O", "\u00d2");
grave.put("u", "\u00f9");
grave.put("U", "\u00d9");
}
private static void initCaronLetters() {
caron = new HashMap<>();
caron.put("c", "\u010d");
caron.put("C", "\u010c");
caron.put("d", "\u010F");
caron.put("D", "\u010e");
caron.put("e", "\u011b");
caron.put("E", "\u011A");
caron.put("l", "\u013E");
caron.put("L", "\u013D");
caron.put("n", "\u0148");
caron.put("N", "\u0147");
caron.put("r", "\u0159");
caron.put("R", "\u0158");
caron.put("s", "\u0161");
caron.put("S", "\u0160");
caron.put("t", "\u0165");
caron.put("T", "\u0164");
caron.put("z", "\u017e");
caron.put("Z", "\u017d");
}
private static void initCircumflexLetters() {
circumflex = new HashMap<>();
circumflex.put("a", "\u00e2");
circumflex.put("A", "\u00c2");
circumflex.put("e", "\u00ea");
circumflex.put("E", "\u00Ca");
circumflex.put("i", "\u00ee");
circumflex.put("I", "\u00ce");
circumflex.put("o", "\u00f4");
circumflex.put("O", "\u00d4");
circumflex.put("u", "\u00fb");
circumflex.put("U", "\u00db");
}
/**
* @param letter letter
* @return the acute version of letter if it exists, null otherwise.
*/
public String getAcuteLetter(String letter) {
return acute.get(letter);
}
/**
* @param letter letter
* @return the grave version of letter if it exists, null otherwise.
*/
public String getGraveAccent(String letter) {
return grave.get(letter);
}
/**
* @param letter letter
* @return the caron version of letter if it exists, null otherwise.
*/
public String getCaronLetter(String letter) {
return caron.get(letter);
}
/**
* @param letter letter
* @return the circumflex version of letter if it exists, null otherwise.
*/
public String getCircumflexLetter(String letter) {
return circumflex.get(letter);
}
}