String rot13(String text) { var result = new StringBuilder(); for (var character : text.toCharArray()) { if (character >= 'a' && character <= 'z') character = (char) ('a' + (character - 'a' + 13) % 26); else if (character >= 'A' && character <= 'Z') character = (char) ('A' + (character - 'A' + 13) % 26); result.append(character); } return result.toString(); } void main() throws Exception { FileMessageBoard.watch("rot13/inbox", message -> { if (!message.type().equals("TEXT")) return; try { FileMessageBoard.publish( "rot13/outbox", new Message("TEXT", rot13(message.value())) ); } catch (IOException exception) { throw new UncheckedIOException(exception); } }); }