public void decompile(JavaClass clz, Writer writer) throws DecompilerException {
Validate.notNull(clz, "Class is required, but not provided.");
Validate.notNull(writer, "Writer is required, but not provided.");
ClassIntermediateVisitor civ = new ClassIntermediateVisitor(clz);
ClassBlock classBlock = civ.decompile();
try {
classBlock.write(writer);
} catch (IOException e) {
throw new DecompilerException("Exception while decompiling.", e);