@@ -0,0 +1,1605 @@
+package sds.decompile;%0A%0Aimport sds.assemble.ClassContent;%0Aimport sds.assemble.FieldContent;%0A%0A/**%0A * This class is for to process decompiling.%0A * @author inagaki%0A */%0Apublic class DecompileProcessor %7B%0A%09/**%0A%09 * returns result of decompiled contents of class.%0A%09 * @param content contents of class%0A%09 * @return decompiled result%0A%09 */%0A%09public DecompiledResult process(ClassContent content) %7B%0A%09%09DecompiledResult result = new DecompiledResult(content.getSourceFile());%0A%09%09// class%0A%09%09if(content.getAnnotation() != null) %7B%0A%09%09%09for(String ann : content.getAnnotation().getAnnotations(true)) %7B%0A%09%09%09%09result.write(ann);%0A%09%09%09%7D%0A%09%09%09for(String ann : content.getAnnotation().getAnnotations(false)) %7B%0A%09%09%09%09result.write(ann);%0A%09%09%09%7D%0A%09%09%7D%0A%09%09StringBuilder classDeclaration = new StringBuilder();%0A%09%09classDeclaration.append(content.getAccessFlag()).append(content.getThisClass())%0A%09%09%09%09%09%09.append(%22 extends %22).append(content.getSuperClass());%0A%09%09if(content.getInterfaces().length %3E 0) %7B%0A%09%09%09classDeclaration.append(%22 implements %22);%0A%09%09%09String%5B%5D interfaces = content.getInterfaces();%0A%09%09%09for(int i = 0; i %3C interfaces.length - 1; i++) %7B%0A%09%09%09%09classDeclaration.append(interfaces%5Bi%5D).append(%22, %22);%0A%09%09%09%7D%0A%09%09%09classDeclaration.append(interfaces%5Binterfaces.length - 1%5D);%0A%09%09%7D%0A%09%09classDeclaration.append(%22 %7B%22);%0A%09%09result.write(classDeclaration.toString());%0A%09%09result.changeIndent(DecompiledResult.INCREMENT);%0A%0A%09%09// field%0A%09%09FieldDecompiler fDcom = new FieldDecompiler(result);%0A%09%09for(FieldContent field : content.getFields()) %7B%0A%09%09%09fDcom.decompile(field);%0A%09%09%7D%0A%09%09result = fDcom.getResult();%0A%0A%09%09// end%0A%09%09result.writeEndScope();%0A%09%09result.save();%0A%09%09return result;%0A%09%7D%0A%7D

add class for decompiling processor.