From 79340b8b68b0cc481b6ce995a6f83efc113404da Mon Sep 17 00:00:00 2001 From: Sven Gestegard Robertz <sven.robertz@cs.lth.se> Date: Wed, 18 Jun 2014 14:06:38 +0200 Subject: [PATCH] cherry-pick cd2917695 --- compiler/Java_CodeGen.jrag | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/compiler/Java_CodeGen.jrag b/compiler/Java_CodeGen.jrag index 4b6891d..ae4805e 100644 --- a/compiler/Java_CodeGen.jrag +++ b/compiler/Java_CodeGen.jrag @@ -399,9 +399,15 @@ aspect Java_Class { } if (getType().Java_needInstance() || hasDependencies()) { env.println("import se.lth.control.labcomm"+env.verStr+".Encoder;"); + env.println("import se.lth.control.labcomm"+env.verStr+".SampleDispatcher;"); + env.println("import se.lth.control.labcomm"+env.verStr+".SampleHandler;"); env.println(); } + if (getType().Java_needInstance()) { + env.println("import java.io.IOException;"); + env.println("import se.lth.control.labcomm"+env.verStr+".Decoder;"); + } // For types without type_dependencies and not needing an instance, // currently just an empty class is generated @@ -409,18 +415,21 @@ aspect Java_Class { env.println(); env.indent(); - if(hasDependencies() || isReferenced()) { - // XXX Java_emitRegisterEncoder(env); - // XXX Java_emitDispatcher(env, false); - } - if (getType().Java_needInstance()) { getType().Java_emitInstance(env); Java_emitEncoder(env); Java_emitDecoder(env); } + + if(hasDependencies() || isReferenced()) { + // XXX Java_emitRegisterEncoder(env); + // XXX Java_emitDispatcher(env, false); + Java_emitSignature(env); + } + env.unindent(); env.println("}"); + env.println(); } @@ -471,6 +480,13 @@ aspect Java_Class { Java_emitEncoder(env); Java_emitDecoder(env); + Java_emitSignature(env); + env.unindent(); + env.println("}"); + env.println(); + } + + public void Decl.Java_emitSignature(Java_env env) { env.println("private static byte[] signature = new byte[] {"); env.indent(); SignatureList signature = signature(env.version); @@ -492,10 +508,8 @@ aspect Java_Class { env.println("};"); env.unindent(); env.println(); - env.println("}"); } - public void Decl.Java_emitDispatcher(Java_env env, boolean canDecodeAndHandle) { env.println("private static class Dispatcher implements SampleDispatcher {"); env.indent(); -- GitLab