2009-07-01

Exceptional Song


public class ExceptionalSong{
private static Pattern toMusicString(String input){
StringBuilder sb = new StringBuilder("I[").append(input.length()).append(']');
for(char c : input.toCharArray()){
if(!Character.isWhitespace(c)){
char cx = Character.toUpperCase(c);
int cxx = 'A' + ((cx % 7));
sb.append((char) cxx).append(' ');
}
}
System.err.println(sb.toString());
return new Pattern(sb.toString());
}

public static final String throwableStackTraceString(Throwable t,boolean indent){
StringBuilder sb = new StringBuilder('\n');
sb.append("StackTrace {\n");
String tabsString = indent ? "\t" : "";

for(StackTraceElement ste : t.getStackTrace()){
sb.append(tabsString).append(ste).append('\n');
if(indent){
tabsString += '\t';//Indent
}
}
sb.append('}');
return sb.toString();
}

public static void main(String[] args){
Player player = new Player();
RuntimeException rte = new RuntimeException("I'm a Runtime Exception!");

Pattern song = new Pattern();
song.add(toMusicString(rte.toString()));
song.add(toMusicString(rte.getMessage()));
song.add(toMusicString(rte.getLocalizedMessage()));
song.add(toMusicString(throwableStackTraceString(rte, false)));

player.play(song);
}
}