package de.tu.darmstadt.seemoo.ansian.tools.morse;
import java.util.List;
public class MorseCodeCharacterGetter {
private List<MorseCodeCharacter> morseCodeCharacters;
public static String ESCAPE_START = "<";
public static String ESCAPE_END = ">";
private boolean escaping = false;
private StringBuilder escapeStringBuilder = new StringBuilder();
public MorseCodeCharacterGetter(String pathToMorsecodeXML) {
morseCodeCharacters = new Parser().parseDocument(pathToMorsecodeXML);
}
public String getCodeForLetter(String letter) {
// if (letter.equals(escapeStart)){
// escaping =true;
// }
//
// if(escaping){
// escapeStringBuilder.append(letter);
// }
//
//
// if (letter.equals(escapeEnd)){
// escaping =false;
// String temp = escapeStringBuilder.toString();
// escapeStringBuilder = new StringBuilder();
// return temp;
// }
//
// if(escaping){return "";}
for (MorseCodeCharacter mc : morseCodeCharacters) {
if (mc.getLetter().equalsIgnoreCase(letter)) {
return mc.getCode();
}
}
return ESCAPE_START + letter + ESCAPE_END;
}
public String getLetterForCode(String code) {
for (MorseCodeCharacter mc : morseCodeCharacters) {
if (mc.getCode().equalsIgnoreCase(code)) {
return mc.getLetter();
}
}
if (code.contains(ESCAPE_END) || code.contains(ESCAPE_START))
return getLetterForCode(removeEscapes(code));
return ESCAPE_START + code + ESCAPE_END;
}
private String removeEscapes(String code) {
code = code.replace(ESCAPE_START, "");
code = code.replace(ESCAPE_END, "");
return code;
}
}