package de.tu.darmstadt.seemoo.ansian.tools.morse;
public class Decoder {
private MorseCodeCharacterGetter morseCodeCharacterGetter;
private StringBuffer morseDecodedTextBuffer;
public Decoder() {
morseCodeCharacterGetter = new MorseCodeCharacterGetter("morsecode.xml");
}
public String decode(String morseEncodedText) {
if (morseEncodedText.isEmpty())
return "";
morseDecodedTextBuffer = new StringBuffer();
String[] splittedMorseCode = morseEncodedText.split("/");
for (int wordCounter = 0; wordCounter < splittedMorseCode.length; wordCounter++) {
String word = splittedMorseCode[wordCounter];
String[] letters = word.split(" ");
for (int letterCounter = 0; letterCounter < letters.length; letterCounter++) {
String letter = letters[letterCounter];
morseDecodedTextBuffer.append(morseCodeCharacterGetter.getLetterForCode(letter));
}
if (wordCounter != (splittedMorseCode.length - 1))
morseDecodedTextBuffer.append(" ");
}
String res = new String(morseDecodedTextBuffer);
return res;
}
}