private void appendFactoryAccessMessage(Writer w) throws IOException { w.append(" @Override").append("\n"); w.append(" public CallTarget accessMessage(Message unknown) {").append("\n"); for (Object m : messageGenerators.keySet()) { if (!InteropDSLProcessor.KNOWN_MESSAGES.contains(m)) { String msg = m instanceof Message ? Message.toString((Message) m) : (String) m; w.append(" if (unknown != null && unknown.getClass().getCanonicalName().equals(\"").append(msg).append("\")) {").append("\n"); w.append(" return Truffle.getRuntime().createCallTarget(").append(messageGenerators.get(m).getRootNodeFactoryInvocation()).append(");").append("\n"); w.append(" }").append("\n"); } } w.append(" return null;\n"); w.append(" }").append("\n"); }