From c5375c7d42156ad584edccfb541ef72ddca29dd2 Mon Sep 17 00:00:00 2001 From: Yushan Gao Date: Fri, 27 Nov 2020 17:04:02 +0800 Subject: [PATCH 01/28] chore: update Gradle --- gradle/wrapper/gradle-wrapper.properties | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 9a6bf73b..92a78da3 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.2.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.4.1-bin.zip +# distributionUrl=https\://services.gradle.org/distributions/gradle-5.2.1-bin.zip From e1702e3279d09a02cb63313dd75d4059ef9a86a4 Mon Sep 17 00:00:00 2001 From: Yushan Gao Date: Fri, 27 Nov 2020 18:56:40 +0800 Subject: [PATCH 02/28] refactor: rename --- .../v1/ClassFileToJavaSourceDecompiler.java | 38 +- .../{Message.java => DecompileContext.java} | 6 +- .../jd/core/v1/model/processor/Processor.java | 4 +- .../ClassFileToJavaSyntaxProcessor.java | 16 +- .../processor/ConvertClassFileProcessor.java | 14 +- .../UpdateJavaSyntaxTreeProcessor.java | 8 +- .../DeserializeClassFileProcessor.java | 10 +- .../JavaSyntaxToJavaFragmentProcessor.java | 16 +- .../layouter/LayoutFragmentProcessor.java | 14 +- .../JavaFragmentToTokenProcessor.java | 8 +- .../service/writer/WriteTokenProcessor.java | 14 +- .../jd/core/v1/AnnotationConverterTest.java | 12 +- src/test/java/org/jd/core/v1/CfrTest.java | 26 +- .../jd/core/v1/ClassFileDeserializerTest.java | 12 +- .../org/jd/core/v1/ControlFlowGraphTest.java | 16 +- .../jd/core/v1/JarFileToJavaSourceTest.java | 24 +- .../org/jd/core/v1/Java9InterfaceTest.java | 25 +- .../org/jd/core/v1/JavaAnnotationTest.java | 27 +- .../jd/core/v1/JavaAnonymousClassTest.java | 27 +- .../java/org/jd/core/v1/JavaArrayTest.java | 28 +- .../java/org/jd/core/v1/JavaAssertTest.java | 27 +- .../org/jd/core/v1/JavaAutoboxingTest.java | 26 +- .../java/org/jd/core/v1/JavaBasicTest.java | 26 +- .../java/org/jd/core/v1/JavaEnumTest.java | 29 +- .../jd/core/v1/JavaFragmentToTokenTest.java | 644 +++++++++--------- .../java/org/jd/core/v1/JavaGenericTest.java | 27 +- .../java/org/jd/core/v1/JavaIfElseTest.java | 27 +- .../jd/core/v1/JavaInnerOuterClassTest.java | 27 +- .../java/org/jd/core/v1/JavaLambdaTest.java | 25 +- .../java/org/jd/core/v1/JavaLoopTest.java | 29 +- .../jd/core/v1/JavaMethodOverloadingTest.java | 26 +- .../core/v1/JavaOperatorPrecedenceTest.java | 26 +- .../java/org/jd/core/v1/JavaSwitchTest.java | 27 +- .../jd/core/v1/JavaSynchronizedBlockTest.java | 27 +- .../core/v1/JavaSyntaxToJavaSourceTest.java | 140 ++-- .../jd/core/v1/JavaTernaryOperatorTest.java | 27 +- .../jd/core/v1/JavaTryCatchFinallyTest.java | 27 +- .../core/v1/LayoutFragmentProcessorTest.java | 178 ++--- .../org/jd/core/v1/SignatureParserTest.java | 24 +- .../java/org/jd/core/v1/WriteTokenTest.java | 26 +- .../TestTokenizeJavaFragmentProcessor.java | 8 +- 41 files changed, 874 insertions(+), 894 deletions(-) rename src/main/java/org/jd/core/v1/model/message/{Message.java => DecompileContext.java} (91%) diff --git a/src/main/java/org/jd/core/v1/ClassFileToJavaSourceDecompiler.java b/src/main/java/org/jd/core/v1/ClassFileToJavaSourceDecompiler.java index be378347..a3ef98bb 100644 --- a/src/main/java/org/jd/core/v1/ClassFileToJavaSourceDecompiler.java +++ b/src/main/java/org/jd/core/v1/ClassFileToJavaSourceDecompiler.java @@ -10,7 +10,7 @@ import org.jd.core.v1.api.Decompiler; import org.jd.core.v1.api.loader.Loader; import org.jd.core.v1.api.printer.Printer; -import org.jd.core.v1.model.message.Message; +import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; import org.jd.core.v1.service.deserializer.classfile.DeserializeClassFileProcessor; import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; @@ -29,32 +29,32 @@ public class ClassFileToJavaSourceDecompiler implements Decompiler { protected WriteTokenProcessor writer = new WriteTokenProcessor(); public void decompile(Loader loader, Printer printer, String internalName) throws Exception { - Message message = new Message(); + DecompileContext decompileContext = new DecompileContext(); - message.setHeader("mainInternalTypeName", internalName); - message.setHeader("loader", loader); - message.setHeader("printer", printer); + decompileContext.setHeader("mainInternalTypeName", internalName); + decompileContext.setHeader("loader", loader); + decompileContext.setHeader("printer", printer); - decompile(message); + decompile(decompileContext); } public void decompile(Loader loader, Printer printer, String internalName, Map configuration) throws Exception { - Message message = new Message(); + DecompileContext decompileContext = new DecompileContext(); - message.setHeader("mainInternalTypeName", internalName); - message.setHeader("configuration", configuration); - message.setHeader("loader", loader); - message.setHeader("printer", printer); + decompileContext.setHeader("mainInternalTypeName", internalName); + decompileContext.setHeader("configuration", configuration); + decompileContext.setHeader("loader", loader); + decompileContext.setHeader("printer", printer); - decompile(message); + decompile(decompileContext); } - protected void decompile(Message message) throws Exception { - this.deserializer.process(message); - this.converter.process(message); - this.fragmenter.process(message); - this.layouter.process(message); - this.tokenizer.process(message); - this.writer.process(message); + protected void decompile(DecompileContext decompileContext) throws Exception { + this.deserializer.process(decompileContext); + this.converter.process(decompileContext); + this.fragmenter.process(decompileContext); + this.layouter.process(decompileContext); + this.tokenizer.process(decompileContext); + this.writer.process(decompileContext); } } diff --git a/src/main/java/org/jd/core/v1/model/message/Message.java b/src/main/java/org/jd/core/v1/model/message/DecompileContext.java similarity index 91% rename from src/main/java/org/jd/core/v1/model/message/Message.java rename to src/main/java/org/jd/core/v1/model/message/DecompileContext.java index 0b407287..40b16347 100644 --- a/src/main/java/org/jd/core/v1/model/message/Message.java +++ b/src/main/java/org/jd/core/v1/model/message/DecompileContext.java @@ -9,13 +9,13 @@ import java.util.HashMap; -public class Message { +public class DecompileContext { protected HashMap headers = new HashMap<>(); protected Object body; - public Message() {} + public DecompileContext() {} - public Message(Object body) { + public DecompileContext(Object body) { this.body = body; } diff --git a/src/main/java/org/jd/core/v1/model/processor/Processor.java b/src/main/java/org/jd/core/v1/model/processor/Processor.java index ad888b6c..16d1ed09 100644 --- a/src/main/java/org/jd/core/v1/model/processor/Processor.java +++ b/src/main/java/org/jd/core/v1/model/processor/Processor.java @@ -7,8 +7,8 @@ package org.jd.core.v1.model.processor; -import org.jd.core.v1.model.message.Message; +import org.jd.core.v1.model.message.DecompileContext; public interface Processor { - void process(Message message) throws Exception; + void process(DecompileContext decompileContext) throws Exception; } diff --git a/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/ClassFileToJavaSyntaxProcessor.java b/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/ClassFileToJavaSyntaxProcessor.java index d166c679..3155ab4c 100644 --- a/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/ClassFileToJavaSyntaxProcessor.java +++ b/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/ClassFileToJavaSyntaxProcessor.java @@ -8,7 +8,7 @@ package org.jd.core.v1.service.converter.classfiletojavasyntax; import org.jd.core.v1.api.loader.Loader; -import org.jd.core.v1.model.message.Message; +import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.model.processor.Processor; import org.jd.core.v1.service.converter.classfiletojavasyntax.processor.ConvertClassFileProcessor; import org.jd.core.v1.service.converter.classfiletojavasyntax.processor.UpdateJavaSyntaxTreeProcessor; @@ -28,12 +28,12 @@ public class ClassFileToJavaSyntaxProcessor implements Processor { protected static final ConvertClassFileProcessor CONVERT_CLASS_FILE_PROCESSOR = new ConvertClassFileProcessor(); protected static final UpdateJavaSyntaxTreeProcessor UPDATE_JAVA_SYNTAX_TREE_PROCESSOR = new UpdateJavaSyntaxTreeProcessor(); - public void process(Message message) throws Exception { - Loader loader = message.getHeader("loader"); - Map configuration = message.getHeader("configuration"); + public void process(DecompileContext decompileContext) throws Exception { + Loader loader = decompileContext.getHeader("loader"); + Map configuration = decompileContext.getHeader("configuration"); if (configuration == null) { - message.setHeader("typeMaker", new TypeMaker(loader)); + decompileContext.setHeader("typeMaker", new TypeMaker(loader)); } else { TypeMaker typeMaker = null; @@ -50,10 +50,10 @@ public void process(Message message) throws Exception { } } - message.setHeader("typeMaker", typeMaker); + decompileContext.setHeader("typeMaker", typeMaker); } - CONVERT_CLASS_FILE_PROCESSOR.process(message); - UPDATE_JAVA_SYNTAX_TREE_PROCESSOR.process(message); + CONVERT_CLASS_FILE_PROCESSOR.process(decompileContext); + UPDATE_JAVA_SYNTAX_TREE_PROCESSOR.process(decompileContext); } } diff --git a/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/ConvertClassFileProcessor.java b/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/ConvertClassFileProcessor.java index 2d424108..88d2a08b 100644 --- a/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/ConvertClassFileProcessor.java +++ b/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/ConvertClassFileProcessor.java @@ -19,7 +19,7 @@ import org.jd.core.v1.model.javasyntax.reference.BaseAnnotationReference; import org.jd.core.v1.model.javasyntax.reference.ElementValue; import org.jd.core.v1.model.javasyntax.type.*; -import org.jd.core.v1.model.message.Message; +import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.model.processor.Processor; import org.jd.core.v1.service.converter.classfiletojavasyntax.model.javasyntax.declaration.*; import org.jd.core.v1.service.converter.classfiletojavasyntax.util.AnnotationConverter; @@ -54,9 +54,9 @@ public void visit(TypeParameterWithTypeBounds parameter) { }; @Override - public void process(Message message) throws Exception { - TypeMaker typeMaker = message.getHeader("typeMaker"); - ClassFile classFile = message.getBody(); + public void process(DecompileContext decompileContext) throws Exception { + TypeMaker typeMaker = decompileContext.getHeader("typeMaker"); + ClassFile classFile = decompileContext.getBody(); AnnotationConverter annotationConverter = new AnnotationConverter(typeMaker); @@ -74,9 +74,9 @@ public void process(Message message) throws Exception { typeDeclaration = convertClassDeclaration(typeMaker, annotationConverter, classFile, null); } - message.setHeader("majorVersion", classFile.getMajorVersion()); - message.setHeader("minorVersion", classFile.getMinorVersion()); - message.setBody(new CompilationUnit(typeDeclaration)); + decompileContext.setHeader("majorVersion", classFile.getMajorVersion()); + decompileContext.setHeader("minorVersion", classFile.getMinorVersion()); + decompileContext.setBody(new CompilationUnit(typeDeclaration)); } protected ClassFileInterfaceDeclaration convertInterfaceDeclaration(TypeMaker parser, AnnotationConverter converter, ClassFile classFile, ClassFileBodyDeclaration outerClassFileBodyDeclaration) { diff --git a/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/UpdateJavaSyntaxTreeProcessor.java b/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/UpdateJavaSyntaxTreeProcessor.java index 13000862..05bbeb9b 100644 --- a/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/UpdateJavaSyntaxTreeProcessor.java +++ b/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/UpdateJavaSyntaxTreeProcessor.java @@ -8,7 +8,7 @@ package org.jd.core.v1.service.converter.classfiletojavasyntax.processor; import org.jd.core.v1.model.javasyntax.CompilationUnit; -import org.jd.core.v1.model.message.Message; +import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.model.processor.Processor; import org.jd.core.v1.service.converter.classfiletojavasyntax.util.TypeMaker; import org.jd.core.v1.service.converter.classfiletojavasyntax.visitor.UpdateJavaSyntaxTreeStep0Visitor; @@ -24,9 +24,9 @@ public class UpdateJavaSyntaxTreeProcessor implements Processor { @Override - public void process(Message message) throws Exception { - TypeMaker typeMaker = message.getHeader("typeMaker"); - CompilationUnit compilationUnit = message.getBody(); + public void process(DecompileContext decompileContext) throws Exception { + TypeMaker typeMaker = decompileContext.getHeader("typeMaker"); + CompilationUnit compilationUnit = decompileContext.getBody(); new UpdateJavaSyntaxTreeStep0Visitor(typeMaker).visit(compilationUnit); new UpdateJavaSyntaxTreeStep1Visitor(typeMaker).visit(compilationUnit); diff --git a/src/main/java/org/jd/core/v1/service/deserializer/classfile/DeserializeClassFileProcessor.java b/src/main/java/org/jd/core/v1/service/deserializer/classfile/DeserializeClassFileProcessor.java index 3c608cb4..b06f86bf 100644 --- a/src/main/java/org/jd/core/v1/service/deserializer/classfile/DeserializeClassFileProcessor.java +++ b/src/main/java/org/jd/core/v1/service/deserializer/classfile/DeserializeClassFileProcessor.java @@ -9,7 +9,7 @@ import org.jd.core.v1.api.loader.Loader; import org.jd.core.v1.model.classfile.ClassFile; -import org.jd.core.v1.model.message.Message; +import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.model.processor.Processor; /** @@ -21,11 +21,11 @@ public class DeserializeClassFileProcessor extends ClassFileDeserializer implements Processor { @Override - public void process(Message message) throws Exception { - Loader loader = message.getHeader("loader"); - String internalTypeName = message.getHeader("mainInternalTypeName"); + public void process(DecompileContext decompileContext) throws Exception { + Loader loader = decompileContext.getHeader("loader"); + String internalTypeName = decompileContext.getHeader("mainInternalTypeName"); ClassFile classFile = loadClassFile(loader, internalTypeName); - message.setBody(classFile); + decompileContext.setBody(classFile); } } diff --git a/src/main/java/org/jd/core/v1/service/fragmenter/javasyntaxtojavafragment/JavaSyntaxToJavaFragmentProcessor.java b/src/main/java/org/jd/core/v1/service/fragmenter/javasyntaxtojavafragment/JavaSyntaxToJavaFragmentProcessor.java index caa15c87..8610e90c 100644 --- a/src/main/java/org/jd/core/v1/service/fragmenter/javasyntaxtojavafragment/JavaSyntaxToJavaFragmentProcessor.java +++ b/src/main/java/org/jd/core/v1/service/fragmenter/javasyntaxtojavafragment/JavaSyntaxToJavaFragmentProcessor.java @@ -10,7 +10,7 @@ import org.jd.core.v1.api.loader.Loader; import org.jd.core.v1.model.javafragment.ImportsFragment; import org.jd.core.v1.model.javasyntax.CompilationUnit; -import org.jd.core.v1.model.message.Message; +import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.model.processor.Processor; import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.visitor.CompilationUnitVisitor; import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.visitor.SearchImportsVisitor; @@ -23,19 +23,19 @@ */ public class JavaSyntaxToJavaFragmentProcessor implements Processor { - public void process(Message message) throws Exception { - Loader loader = message.getHeader("loader"); - String mainInternalTypeName = message.getHeader("mainInternalTypeName"); - int majorVersion = message.getHeader("majorVersion"); - CompilationUnit compilationUnit = message.getBody(); + public void process(DecompileContext decompileContext) throws Exception { + Loader loader = decompileContext.getHeader("loader"); + String mainInternalTypeName = decompileContext.getHeader("mainInternalTypeName"); + int majorVersion = decompileContext.getHeader("majorVersion"); + CompilationUnit compilationUnit = decompileContext.getBody(); SearchImportsVisitor importsVisitor = new SearchImportsVisitor(loader, mainInternalTypeName); importsVisitor.visit(compilationUnit); ImportsFragment importsFragment = importsVisitor.getImportsFragment(); - message.setHeader("maxLineNumber", importsVisitor.getMaxLineNumber()); + decompileContext.setHeader("maxLineNumber", importsVisitor.getMaxLineNumber()); CompilationUnitVisitor visitor = new CompilationUnitVisitor(loader, mainInternalTypeName, majorVersion, importsFragment); visitor.visit(compilationUnit); - message.setBody(visitor.getFragments()); + decompileContext.setBody(visitor.getFragments()); } } diff --git a/src/main/java/org/jd/core/v1/service/layouter/LayoutFragmentProcessor.java b/src/main/java/org/jd/core/v1/service/layouter/LayoutFragmentProcessor.java index a0726505..885e298a 100644 --- a/src/main/java/org/jd/core/v1/service/layouter/LayoutFragmentProcessor.java +++ b/src/main/java/org/jd/core/v1/service/layouter/LayoutFragmentProcessor.java @@ -10,7 +10,7 @@ import org.jd.core.v1.model.fragment.FixedFragment; import org.jd.core.v1.model.fragment.FlexibleFragment; import org.jd.core.v1.model.fragment.Fragment; -import org.jd.core.v1.model.message.Message; +import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.model.processor.Processor; import org.jd.core.v1.service.layouter.model.Section; import org.jd.core.v1.service.layouter.util.VisitorsHolder; @@ -32,15 +32,15 @@ public class LayoutFragmentProcessor implements Processor { @Override - public void process(Message message) throws Exception { - int maxLineNumber = message.getHeader("maxLineNumber", UNKNOWN_LINE_NUMBER); - boolean containsByteCode = message.getHeader("containsByteCode", Boolean.FALSE); - boolean showBridgeAndSynthetic = message.getHeader("showBridgeAndSynthetic", Boolean.FALSE); - Map configuration = message.getHeader("configuration"); + public void process(DecompileContext decompileContext) throws Exception { + int maxLineNumber = decompileContext.getHeader("maxLineNumber", UNKNOWN_LINE_NUMBER); + boolean containsByteCode = decompileContext.getHeader("containsByteCode", Boolean.FALSE); + boolean showBridgeAndSynthetic = decompileContext.getHeader("showBridgeAndSynthetic", Boolean.FALSE); + Map configuration = decompileContext.getHeader("configuration"); Object realignLineNumbersConfiguration = (configuration == null) ? "false" : configuration.get("realignLineNumbers"); boolean realignLineNumbers = (realignLineNumbersConfiguration == null) ? false : "true".equals(realignLineNumbersConfiguration.toString()); - List fragments = message.getBody(); + List fragments = decompileContext.getBody(); if ((maxLineNumber != UNKNOWN_LINE_NUMBER) && !containsByteCode && !showBridgeAndSynthetic && realignLineNumbers) { BuildSectionsVisitor buildSectionsVisitor = new BuildSectionsVisitor(); diff --git a/src/main/java/org/jd/core/v1/service/tokenizer/javafragmenttotoken/JavaFragmentToTokenProcessor.java b/src/main/java/org/jd/core/v1/service/tokenizer/javafragmenttotoken/JavaFragmentToTokenProcessor.java index 9d77e5a0..f92bb321 100644 --- a/src/main/java/org/jd/core/v1/service/tokenizer/javafragmenttotoken/JavaFragmentToTokenProcessor.java +++ b/src/main/java/org/jd/core/v1/service/tokenizer/javafragmenttotoken/JavaFragmentToTokenProcessor.java @@ -8,7 +8,7 @@ package org.jd.core.v1.service.tokenizer.javafragmenttotoken; import org.jd.core.v1.model.javafragment.JavaFragment; -import org.jd.core.v1.model.message.Message; +import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.model.processor.Processor; import org.jd.core.v1.service.tokenizer.javafragmenttotoken.visitor.TokenizeJavaFragmentVisitor; @@ -23,8 +23,8 @@ public class JavaFragmentToTokenProcessor implements Processor { @Override - public void process(Message message) throws Exception { - List fragments = message.getBody(); + public void process(DecompileContext decompileContext) throws Exception { + List fragments = decompileContext.getBody(); TokenizeJavaFragmentVisitor visitor = new TokenizeJavaFragmentVisitor(fragments.size() * 3); // Create tokens @@ -32,6 +32,6 @@ public void process(Message message) throws Exception { fragment.accept(visitor); } - message.setBody(visitor.getTokens()); + decompileContext.setBody(visitor.getTokens()); } } diff --git a/src/main/java/org/jd/core/v1/service/writer/WriteTokenProcessor.java b/src/main/java/org/jd/core/v1/service/writer/WriteTokenProcessor.java index 2c90ab66..9ff9977c 100644 --- a/src/main/java/org/jd/core/v1/service/writer/WriteTokenProcessor.java +++ b/src/main/java/org/jd/core/v1/service/writer/WriteTokenProcessor.java @@ -8,7 +8,7 @@ package org.jd.core.v1.service.writer; import org.jd.core.v1.api.printer.Printer; -import org.jd.core.v1.model.message.Message; +import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.model.processor.Processor; import org.jd.core.v1.model.token.Token; import org.jd.core.v1.service.writer.visitor.PrintTokenVisitor; @@ -24,13 +24,13 @@ public class WriteTokenProcessor implements Processor { @Override - public void process(Message message) throws Exception { - Printer printer = message.getHeader("printer"); - List tokens = message.getBody(); + public void process(DecompileContext decompileContext) throws Exception { + Printer printer = decompileContext.getHeader("printer"); + List tokens = decompileContext.getBody(); PrintTokenVisitor visitor = new PrintTokenVisitor(); - int maxLineNumber = message.getHeader("maxLineNumber"); - int majorVersion = message.getHeader("majorVersion"); - int minorVersion = message.getHeader("minorVersion"); + int maxLineNumber = decompileContext.getHeader("maxLineNumber"); + int majorVersion = decompileContext.getHeader("majorVersion"); + int minorVersion = decompileContext.getHeader("minorVersion"); printer.start(maxLineNumber, majorVersion, minorVersion); visitor.start(printer, tokens); diff --git a/src/test/java/org/jd/core/v1/AnnotationConverterTest.java b/src/test/java/org/jd/core/v1/AnnotationConverterTest.java index e0c943b4..0886042a 100644 --- a/src/test/java/org/jd/core/v1/AnnotationConverterTest.java +++ b/src/test/java/org/jd/core/v1/AnnotationConverterTest.java @@ -12,7 +12,7 @@ import org.jd.core.v1.model.classfile.ClassFile; import org.jd.core.v1.model.classfile.attribute.Annotations; import org.jd.core.v1.model.javasyntax.reference.*; -import org.jd.core.v1.model.message.Message; +import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.service.converter.classfiletojavasyntax.util.AnnotationConverter; import org.jd.core.v1.service.converter.classfiletojavasyntax.util.TypeMaker; import org.jd.core.v1.service.deserializer.classfile.DeserializeClassFileProcessor; @@ -31,13 +31,13 @@ public void test() throws Exception { AnnotationConverter converter = new AnnotationConverter(typeMaker); DeserializeClassFileProcessor deserializer = new DeserializeClassFileProcessor(); - Message message = new Message(); - message.setHeader("mainInternalTypeName", "org/jd/core/test/AnnotatedClass"); - message.setHeader("loader", loader); + DecompileContext decompileContext = new DecompileContext(); + decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/AnnotatedClass"); + decompileContext.setHeader("loader", loader); - deserializer.process(message); + deserializer.process(decompileContext); - ClassFile classFile = message.getBody(); + ClassFile classFile = decompileContext.getBody(); // Check class assertNotNull(classFile); diff --git a/src/test/java/org/jd/core/v1/CfrTest.java b/src/test/java/org/jd/core/v1/CfrTest.java index 6140bd2c..f785e593 100644 --- a/src/test/java/org/jd/core/v1/CfrTest.java +++ b/src/test/java/org/jd/core/v1/CfrTest.java @@ -13,7 +13,7 @@ import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ClassPathLoader; -import org.jd.core.v1.model.message.Message; +import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; @@ -78,18 +78,18 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa } protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { - Message message = new Message(); - message.setHeader("loader", loader); - message.setHeader("printer", printer); - message.setHeader("mainInternalTypeName", internalTypeName); - message.setHeader("configuration", configuration); - - deserializer.process(message); - converter.process(message); - fragmenter.process(message); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + DecompileContext decompileContext = new DecompileContext(); + decompileContext.setHeader("loader", loader); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setHeader("configuration", configuration); + + deserializer.process(decompileContext); + converter.process(decompileContext); + fragmenter.process(decompileContext); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); diff --git a/src/test/java/org/jd/core/v1/ClassFileDeserializerTest.java b/src/test/java/org/jd/core/v1/ClassFileDeserializerTest.java index c8aa3fcf..20a40270 100644 --- a/src/test/java/org/jd/core/v1/ClassFileDeserializerTest.java +++ b/src/test/java/org/jd/core/v1/ClassFileDeserializerTest.java @@ -19,7 +19,7 @@ import org.jd.core.v1.model.classfile.attribute.ElementValuePrimitiveType; import org.jd.core.v1.model.classfile.constant.ConstantInteger; import org.jd.core.v1.model.classfile.constant.ConstantUtf8; -import org.jd.core.v1.model.message.Message; +import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; import org.jd.core.v1.service.deserializer.classfile.DeserializeClassFileProcessor; import org.junit.Test; @@ -57,13 +57,13 @@ public void testAnnotatedClass() throws Exception { ZipLoader loader = new ZipLoader(is); DeserializeClassFileProcessor deserializer = new DeserializeClassFileProcessor(); - Message message = new Message(); - message.setHeader("mainInternalTypeName", "org/jd/core/test/AnnotatedClass"); - message.setHeader("loader", loader); + DecompileContext decompileContext = new DecompileContext(); + decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/AnnotatedClass"); + decompileContext.setHeader("loader", loader); - deserializer.process(message); + deserializer.process(decompileContext); - ClassFile classFile = message.getBody(); + ClassFile classFile = decompileContext.getBody(); // Check class assertNotNull(classFile); diff --git a/src/test/java/org/jd/core/v1/ControlFlowGraphTest.java b/src/test/java/org/jd/core/v1/ControlFlowGraphTest.java index 6740b6d2..0e828934 100644 --- a/src/test/java/org/jd/core/v1/ControlFlowGraphTest.java +++ b/src/test/java/org/jd/core/v1/ControlFlowGraphTest.java @@ -14,7 +14,7 @@ import org.jd.core.v1.model.classfile.Method; import org.jd.core.v1.model.javasyntax.CompilationUnit; import org.jd.core.v1.model.javasyntax.declaration.*; -import org.jd.core.v1.model.message.Message; +import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.service.converter.classfiletojavasyntax.model.cfg.BasicBlock; import org.jd.core.v1.service.converter.classfiletojavasyntax.model.cfg.ControlFlowGraph; import org.jd.core.v1.service.converter.classfiletojavasyntax.model.cfg.Loop; @@ -2651,15 +2651,15 @@ protected Method searchMethod(InputStream is, String internalTypeName, String me } protected Method searchMethod(Loader loader, TypeMaker typeMaker, String internalTypeName, String methodName, String methodDescriptor) throws Exception { - Message message = new Message(); - message.setHeader("mainInternalTypeName", internalTypeName); - message.setHeader("loader", loader); - message.setHeader("typeMaker", typeMaker); + DecompileContext decompileContext = new DecompileContext(); + decompileContext.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setHeader("loader", loader); + decompileContext.setHeader("typeMaker", typeMaker); - deserializer.process(message); - converter.process(message); + deserializer.process(decompileContext); + converter.process(decompileContext); - CompilationUnit compilationUnit = message.getBody(); + CompilationUnit compilationUnit = decompileContext.getBody(); assertNotNull(compilationUnit); diff --git a/src/test/java/org/jd/core/v1/JarFileToJavaSourceTest.java b/src/test/java/org/jd/core/v1/JarFileToJavaSourceTest.java index 0e76de9c..e8a7f16f 100644 --- a/src/test/java/org/jd/core/v1/JarFileToJavaSourceTest.java +++ b/src/test/java/org/jd/core/v1/JarFileToJavaSourceTest.java @@ -11,7 +11,7 @@ import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ZipLoader; -import org.jd.core.v1.model.message.Message; +import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; import org.jd.core.v1.service.deserializer.classfile.DeserializeClassFileProcessor; @@ -146,10 +146,10 @@ protected void test(InputStream inputStream) throws Exception { configuration.put("realignLineNumbers", Boolean.TRUE); - Message message = new Message(); - message.setHeader("loader", loader); - message.setHeader("printer", printer); - message.setHeader("configuration", configuration); + DecompileContext decompileContext = new DecompileContext(); + decompileContext.setHeader("loader", loader); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("configuration", configuration); long time0 = System.currentTimeMillis(); @@ -160,19 +160,19 @@ protected void test(InputStream inputStream) throws Exception { // TODO DEBUG if (!internalTypeName.endsWith("/Debug")) continue; //if (!internalTypeName.endsWith("/MapUtils")) continue; - message.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setHeader("mainInternalTypeName", internalTypeName); printer.init(); fileCounter++; try { // Decompile class - deserializer.process(message); - converter.process(message); - fragmenter.process(message); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + deserializer.process(decompileContext); + converter.process(decompileContext); + fragmenter.process(decompileContext); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); } catch (AssertionError e) { String msg = (e.getMessage() == null) ? "" : e.getMessage(); Integer counter = statistics.get(msg); diff --git a/src/test/java/org/jd/core/v1/Java9InterfaceTest.java b/src/test/java/org/jd/core/v1/Java9InterfaceTest.java index bbfd1766..53d257ff 100644 --- a/src/test/java/org/jd/core/v1/Java9InterfaceTest.java +++ b/src/test/java/org/jd/core/v1/Java9InterfaceTest.java @@ -12,9 +12,8 @@ import org.jd.core.v1.api.printer.Printer; import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; -import org.jd.core.v1.loader.ClassPathLoader; import org.jd.core.v1.loader.ZipLoader; -import org.jd.core.v1.model.message.Message; +import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; @@ -77,18 +76,18 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa } protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { - Message message = new Message(); - message.setHeader("loader", loader); - message.setHeader("printer", printer); - message.setHeader("mainInternalTypeName", internalTypeName); - message.setHeader("configuration", configuration); + DecompileContext decompileContext = new DecompileContext(); + decompileContext.setHeader("loader", loader); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setHeader("configuration", configuration); - deserializer.process(message); - converter.process(message); - fragmenter.process(message); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + deserializer.process(decompileContext); + converter.process(decompileContext); + fragmenter.process(decompileContext); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); diff --git a/src/test/java/org/jd/core/v1/JavaAnnotationTest.java b/src/test/java/org/jd/core/v1/JavaAnnotationTest.java index d2b76ed1..885ed9b9 100644 --- a/src/test/java/org/jd/core/v1/JavaAnnotationTest.java +++ b/src/test/java/org/jd/core/v1/JavaAnnotationTest.java @@ -12,9 +12,8 @@ import org.jd.core.v1.api.printer.Printer; import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; -import org.jd.core.v1.loader.ClassPathLoader; import org.jd.core.v1.loader.ZipLoader; -import org.jd.core.v1.model.message.Message; +import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; @@ -116,18 +115,18 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa } protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { - Message message = new Message(); - message.setHeader("loader", loader); - message.setHeader("printer", printer); - message.setHeader("mainInternalTypeName", internalTypeName); - message.setHeader("configuration", configuration); - - deserializer.process(message); - converter.process(message); - fragmenter.process(message); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + DecompileContext decompileContext = new DecompileContext(); + decompileContext.setHeader("loader", loader); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setHeader("configuration", configuration); + + deserializer.process(decompileContext); + converter.process(decompileContext); + fragmenter.process(decompileContext); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); diff --git a/src/test/java/org/jd/core/v1/JavaAnonymousClassTest.java b/src/test/java/org/jd/core/v1/JavaAnonymousClassTest.java index c6d2a2fa..bad9727a 100644 --- a/src/test/java/org/jd/core/v1/JavaAnonymousClassTest.java +++ b/src/test/java/org/jd/core/v1/JavaAnonymousClassTest.java @@ -12,9 +12,8 @@ import org.jd.core.v1.api.printer.Printer; import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; -import org.jd.core.v1.loader.ClassPathLoader; import org.jd.core.v1.loader.ZipLoader; -import org.jd.core.v1.model.message.Message; +import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; @@ -124,18 +123,18 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa } protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { - Message message = new Message(); - message.setHeader("loader", loader); - message.setHeader("printer", printer); - message.setHeader("mainInternalTypeName", internalTypeName); - message.setHeader("configuration", configuration); - - deserializer.process(message); - converter.process(message); - fragmenter.process(message); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + DecompileContext decompileContext = new DecompileContext(); + decompileContext.setHeader("loader", loader); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setHeader("configuration", configuration); + + deserializer.process(decompileContext); + converter.process(decompileContext); + fragmenter.process(decompileContext); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); diff --git a/src/test/java/org/jd/core/v1/JavaArrayTest.java b/src/test/java/org/jd/core/v1/JavaArrayTest.java index 565302da..6076812d 100644 --- a/src/test/java/org/jd/core/v1/JavaArrayTest.java +++ b/src/test/java/org/jd/core/v1/JavaArrayTest.java @@ -14,7 +14,7 @@ import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ClassPathLoader; import org.jd.core.v1.loader.ZipLoader; -import org.jd.core.v1.model.message.Message; +import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; @@ -25,9 +25,7 @@ import org.jd.core.v1.service.writer.WriteTokenProcessor; import org.junit.Test; -import java.io.FileInputStream; import java.io.InputStream; -import java.nio.file.Paths; import java.util.Collections; import java.util.Map; @@ -135,18 +133,18 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa } protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { - Message message = new Message(); - message.setHeader("loader", loader); - message.setHeader("printer", printer); - message.setHeader("mainInternalTypeName", internalTypeName); - message.setHeader("configuration", configuration); - - deserializer.process(message); - converter.process(message); - fragmenter.process(message); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + DecompileContext decompileContext = new DecompileContext(); + decompileContext.setHeader("loader", loader); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setHeader("configuration", configuration); + + deserializer.process(decompileContext); + converter.process(decompileContext); + fragmenter.process(decompileContext); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); diff --git a/src/test/java/org/jd/core/v1/JavaAssertTest.java b/src/test/java/org/jd/core/v1/JavaAssertTest.java index fbffee1f..0774cf04 100644 --- a/src/test/java/org/jd/core/v1/JavaAssertTest.java +++ b/src/test/java/org/jd/core/v1/JavaAssertTest.java @@ -12,9 +12,8 @@ import org.jd.core.v1.api.printer.Printer; import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; -import org.jd.core.v1.loader.ClassPathLoader; import org.jd.core.v1.loader.ZipLoader; -import org.jd.core.v1.model.message.Message; +import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; @@ -85,18 +84,18 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa } protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { - Message message = new Message(); - message.setHeader("loader", loader); - message.setHeader("printer", printer); - message.setHeader("mainInternalTypeName", internalTypeName); - message.setHeader("configuration", configuration); - - deserializer.process(message); - converter.process(message); - fragmenter.process(message); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + DecompileContext decompileContext = new DecompileContext(); + decompileContext.setHeader("loader", loader); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setHeader("configuration", configuration); + + deserializer.process(decompileContext); + converter.process(decompileContext); + fragmenter.process(decompileContext); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); diff --git a/src/test/java/org/jd/core/v1/JavaAutoboxingTest.java b/src/test/java/org/jd/core/v1/JavaAutoboxingTest.java index b05ab2db..14af4ebc 100644 --- a/src/test/java/org/jd/core/v1/JavaAutoboxingTest.java +++ b/src/test/java/org/jd/core/v1/JavaAutoboxingTest.java @@ -13,7 +13,7 @@ import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ClassPathLoader; -import org.jd.core.v1.model.message.Message; +import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; @@ -62,18 +62,18 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa } protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { - Message message = new Message(); - message.setHeader("loader", loader); - message.setHeader("printer", printer); - message.setHeader("mainInternalTypeName", internalTypeName); - message.setHeader("configuration", configuration); - - deserializer.process(message); - converter.process(message); - fragmenter.process(message); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + DecompileContext decompileContext = new DecompileContext(); + decompileContext.setHeader("loader", loader); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setHeader("configuration", configuration); + + deserializer.process(decompileContext); + converter.process(decompileContext); + fragmenter.process(decompileContext); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); diff --git a/src/test/java/org/jd/core/v1/JavaBasicTest.java b/src/test/java/org/jd/core/v1/JavaBasicTest.java index 6221955b..4d5dc612 100644 --- a/src/test/java/org/jd/core/v1/JavaBasicTest.java +++ b/src/test/java/org/jd/core/v1/JavaBasicTest.java @@ -14,7 +14,7 @@ import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ClassPathLoader; import org.jd.core.v1.loader.ZipLoader; -import org.jd.core.v1.model.message.Message; +import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; import org.jd.core.v1.service.deserializer.classfile.DeserializeClassFileProcessor; @@ -281,18 +281,18 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa } protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { - Message message = new Message(); - message.setHeader("loader", loader); - message.setHeader("printer", printer); - message.setHeader("mainInternalTypeName", internalTypeName); - message.setHeader("configuration", configuration); - - deserializer.process(message); - converter.process(message); - fragmenter.process(message); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + DecompileContext decompileContext = new DecompileContext(); + decompileContext.setHeader("loader", loader); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setHeader("configuration", configuration); + + deserializer.process(decompileContext); + converter.process(decompileContext); + fragmenter.process(decompileContext); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); diff --git a/src/test/java/org/jd/core/v1/JavaEnumTest.java b/src/test/java/org/jd/core/v1/JavaEnumTest.java index 24a7b26f..e106ae4b 100644 --- a/src/test/java/org/jd/core/v1/JavaEnumTest.java +++ b/src/test/java/org/jd/core/v1/JavaEnumTest.java @@ -12,9 +12,8 @@ import org.jd.core.v1.api.printer.Printer; import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; -import org.jd.core.v1.loader.ClassPathLoader; import org.jd.core.v1.loader.ZipLoader; -import org.jd.core.v1.model.message.Message; +import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; @@ -25,9 +24,7 @@ import org.jd.core.v1.service.writer.WriteTokenProcessor; import org.junit.Test; -import java.io.FileInputStream; import java.io.InputStream; -import java.nio.file.Paths; import java.util.Collections; import java.util.Map; @@ -135,18 +132,18 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa } protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { - Message message = new Message(); - message.setHeader("loader", loader); - message.setHeader("printer", printer); - message.setHeader("mainInternalTypeName", internalTypeName); - message.setHeader("configuration", configuration); - - deserializer.process(message); - converter.process(message); - fragmenter.process(message); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + DecompileContext decompileContext = new DecompileContext(); + decompileContext.setHeader("loader", loader); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setHeader("configuration", configuration); + + deserializer.process(decompileContext); + converter.process(decompileContext); + fragmenter.process(decompileContext); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); diff --git a/src/test/java/org/jd/core/v1/JavaFragmentToTokenTest.java b/src/test/java/org/jd/core/v1/JavaFragmentToTokenTest.java index ff185694..b260062a 100644 --- a/src/test/java/org/jd/core/v1/JavaFragmentToTokenTest.java +++ b/src/test/java/org/jd/core/v1/JavaFragmentToTokenTest.java @@ -10,7 +10,7 @@ import junit.framework.TestCase; import org.jd.core.v1.model.fragment.Fragment; import org.jd.core.v1.model.javafragment.*; -import org.jd.core.v1.model.message.Message; +import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.model.token.*; import org.jd.core.v1.printer.PlainTextMetaPrinter; import org.jd.core.v1.printer.PlainTextPrinter; @@ -54,17 +54,17 @@ public class JavaFragmentToTokenTest extends TestCase { @Test public void testIfReturn_0() throws Exception { - Message message = createMessageToTestIfReturn(0, 0); + DecompileContext decompileContext = createMessageToTestIfReturn(0, 0); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); - message.setHeader("printer", printer); - message.setHeader("maxLineNumber", 0); - message.setHeader("majorVersion", 0); - message.setHeader("minorVersion", 0); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("maxLineNumber", 0); + decompileContext.setHeader("majorVersion", 0); + decompileContext.setHeader("minorVersion", 0); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -75,19 +75,19 @@ public void testIfReturn_0() throws Exception { @Test public void testIfReturn_1_3() throws Exception { - Message message = createMessageToTestIfReturn(1, 3); + DecompileContext decompileContext = createMessageToTestIfReturn(1, 3); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - message.setHeader("printer", printer); - message.setHeader("configuration", configuration); - message.setHeader("maxLineNumber", 3); - message.setHeader("majorVersion", 0); - message.setHeader("minorVersion", 0); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("configuration", configuration); + decompileContext.setHeader("maxLineNumber", 3); + decompileContext.setHeader("majorVersion", 0); + decompileContext.setHeader("minorVersion", 0); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -100,19 +100,19 @@ public void testIfReturn_1_3() throws Exception { @Test public void testIfReturn_1_4() throws Exception { - Message message = createMessageToTestIfReturn(1, 4); + DecompileContext decompileContext = createMessageToTestIfReturn(1, 4); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - message.setHeader("printer", printer); - message.setHeader("configuration", configuration); - message.setHeader("maxLineNumber", 4); - message.setHeader("majorVersion", 0); - message.setHeader("minorVersion", 0); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("configuration", configuration); + decompileContext.setHeader("maxLineNumber", 4); + decompileContext.setHeader("majorVersion", 0); + decompileContext.setHeader("minorVersion", 0); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -125,17 +125,17 @@ public void testIfReturn_1_4() throws Exception { @Test public void testIfAssignation_0() throws Exception { - Message message = createMessageToTestIfAssignation(0, 0, 0); + DecompileContext decompileContext = createMessageToTestIfAssignation(0, 0, 0); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); - message.setHeader("printer", printer); - message.setHeader("maxLineNumber", 0); - message.setHeader("majorVersion", 0); - message.setHeader("minorVersion", 0); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("maxLineNumber", 0); + decompileContext.setHeader("majorVersion", 0); + decompileContext.setHeader("minorVersion", 0); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -146,19 +146,19 @@ public void testIfAssignation_0() throws Exception { @Test public void testIfAssignation_1_2_3() throws Exception { - Message message = createMessageToTestIfAssignation(1, 2, 3); + DecompileContext decompileContext = createMessageToTestIfAssignation(1, 2, 3); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - message.setHeader("printer", printer); - message.setHeader("configuration", configuration); - message.setHeader("maxLineNumber", 3); - message.setHeader("majorVersion", 0); - message.setHeader("minorVersion", 0); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("configuration", configuration); + decompileContext.setHeader("maxLineNumber", 3); + decompileContext.setHeader("majorVersion", 0); + decompileContext.setHeader("minorVersion", 0); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -172,19 +172,19 @@ public void testIfAssignation_1_2_3() throws Exception { @Test public void testIfAssignation_1_3_5() throws Exception { - Message message = createMessageToTestIfAssignation(1, 3, 5); + DecompileContext decompileContext = createMessageToTestIfAssignation(1, 3, 5); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - message.setHeader("printer", printer); - message.setHeader("configuration", configuration); - message.setHeader("maxLineNumber", 5); - message.setHeader("majorVersion", 0); - message.setHeader("minorVersion", 0); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("configuration", configuration); + decompileContext.setHeader("maxLineNumber", 5); + decompileContext.setHeader("majorVersion", 0); + decompileContext.setHeader("minorVersion", 0); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -198,17 +198,17 @@ public void testIfAssignation_1_3_5() throws Exception { @Test public void testClassAndFieldDeclarationWithoutImports_0() throws Exception { - Message message = createMessageToTestClassDeclarationWithoutImports(0); + DecompileContext decompileContext = createMessageToTestClassDeclarationWithoutImports(0); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); - message.setHeader("printer", printer); - message.setHeader("maxLineNumber", 0); - message.setHeader("majorVersion", 0); - message.setHeader("minorVersion", 0); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("maxLineNumber", 0); + decompileContext.setHeader("majorVersion", 0); + decompileContext.setHeader("minorVersion", 0); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -219,17 +219,17 @@ public void testClassAndFieldDeclarationWithoutImports_0() throws Exception { @Test public void testClassAndFieldDeclaration_0() throws Exception { - Message message = createMessageToTestClassDeclaration(0); + DecompileContext decompileContext = createMessageToTestClassDeclaration(0); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); - message.setHeader("printer", printer); - message.setHeader("maxLineNumber", 0); - message.setHeader("majorVersion", 0); - message.setHeader("minorVersion", 0); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("maxLineNumber", 0); + decompileContext.setHeader("majorVersion", 0); + decompileContext.setHeader("minorVersion", 0); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -240,19 +240,19 @@ public void testClassAndFieldDeclaration_0() throws Exception { @Test public void testClassAndFieldDeclaration_1() throws Exception { - Message message = createMessageToTestClassDeclaration(1); + DecompileContext decompileContext = createMessageToTestClassDeclaration(1); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - message.setHeader("printer", printer); - message.setHeader("configuration", configuration); - message.setHeader("maxLineNumber", 1); - message.setHeader("majorVersion", 0); - message.setHeader("minorVersion", 0); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("configuration", configuration); + decompileContext.setHeader("maxLineNumber", 1); + decompileContext.setHeader("majorVersion", 0); + decompileContext.setHeader("minorVersion", 0); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -264,19 +264,19 @@ public void testClassAndFieldDeclaration_1() throws Exception { @Test public void testClassAndFieldDeclaration_2() throws Exception { - Message message = createMessageToTestClassDeclaration(2); + DecompileContext decompileContext = createMessageToTestClassDeclaration(2); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - message.setHeader("printer", printer); - message.setHeader("configuration", configuration); - message.setHeader("maxLineNumber", 2); - message.setHeader("majorVersion", 0); - message.setHeader("minorVersion", 0); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("configuration", configuration); + decompileContext.setHeader("maxLineNumber", 2); + decompileContext.setHeader("majorVersion", 0); + decompileContext.setHeader("minorVersion", 0); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -288,19 +288,19 @@ public void testClassAndFieldDeclaration_2() throws Exception { @Test public void testClassAndFieldDeclaration_3() throws Exception { - Message message = createMessageToTestClassDeclaration(3); + DecompileContext decompileContext = createMessageToTestClassDeclaration(3); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - message.setHeader("printer", printer); - message.setHeader("configuration", configuration); - message.setHeader("maxLineNumber", 3); - message.setHeader("majorVersion", 0); - message.setHeader("minorVersion", 0); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("configuration", configuration); + decompileContext.setHeader("maxLineNumber", 3); + decompileContext.setHeader("majorVersion", 0); + decompileContext.setHeader("minorVersion", 0); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -314,19 +314,19 @@ public void testClassAndFieldDeclaration_3() throws Exception { @Test public void testClassAndFieldDeclaration_4() throws Exception { - Message message = createMessageToTestClassDeclaration(4); + DecompileContext decompileContext = createMessageToTestClassDeclaration(4); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - message.setHeader("printer", printer); - message.setHeader("configuration", configuration); - message.setHeader("maxLineNumber", 4); - message.setHeader("majorVersion", 0); - message.setHeader("minorVersion", 0); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("configuration", configuration); + decompileContext.setHeader("maxLineNumber", 4); + decompileContext.setHeader("majorVersion", 0); + decompileContext.setHeader("minorVersion", 0); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -340,19 +340,19 @@ public void testClassAndFieldDeclaration_4() throws Exception { @Test public void testClassAndFieldDeclaration_5() throws Exception { - Message message = createMessageToTestClassDeclaration(5); + DecompileContext decompileContext = createMessageToTestClassDeclaration(5); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - message.setHeader("printer", printer); - message.setHeader("configuration", configuration); - message.setHeader("maxLineNumber", 5); - message.setHeader("majorVersion", 0); - message.setHeader("minorVersion", 0); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("configuration", configuration); + decompileContext.setHeader("maxLineNumber", 5); + decompileContext.setHeader("majorVersion", 0); + decompileContext.setHeader("minorVersion", 0); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -365,19 +365,19 @@ public void testClassAndFieldDeclaration_5() throws Exception { @Test public void testClassAndFieldDeclaration_6() throws Exception { - Message message = createMessageToTestClassDeclaration(6); + DecompileContext decompileContext = createMessageToTestClassDeclaration(6); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - message.setHeader("printer", printer); - message.setHeader("configuration", configuration); - message.setHeader("maxLineNumber", 6); - message.setHeader("majorVersion", 0); - message.setHeader("minorVersion", 0); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("configuration", configuration); + decompileContext.setHeader("maxLineNumber", 6); + decompileContext.setHeader("majorVersion", 0); + decompileContext.setHeader("minorVersion", 0); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -391,17 +391,17 @@ public void testClassAndFieldDeclaration_6() throws Exception { @Test public void testClassAndFieldDeclaration_7() throws Exception { - Message message = createMessageToTestClassDeclaration(7); + DecompileContext decompileContext = createMessageToTestClassDeclaration(7); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); - message.setHeader("printer", printer); - message.setHeader("maxLineNumber", 7); - message.setHeader("majorVersion", 0); - message.setHeader("minorVersion", 0); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("maxLineNumber", 7); + decompileContext.setHeader("majorVersion", 0); + decompileContext.setHeader("minorVersion", 0); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -416,19 +416,19 @@ public void testClassAndFieldDeclaration_7() throws Exception { @Test public void testClassAndFieldDeclaration_8() throws Exception { - Message message = createMessageToTestClassDeclaration(8); + DecompileContext decompileContext = createMessageToTestClassDeclaration(8); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - message.setHeader("printer", printer); - message.setHeader("configuration", configuration); - message.setHeader("maxLineNumber", 8); - message.setHeader("majorVersion", 0); - message.setHeader("minorVersion", 0); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("configuration", configuration); + decompileContext.setHeader("maxLineNumber", 8); + decompileContext.setHeader("majorVersion", 0); + decompileContext.setHeader("minorVersion", 0); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -443,19 +443,19 @@ public void testClassAndFieldDeclaration_8() throws Exception { @Test public void testClassAndFieldDeclaration_9() throws Exception { - Message message = createMessageToTestClassDeclaration(9); + DecompileContext decompileContext = createMessageToTestClassDeclaration(9); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - message.setHeader("printer", printer); - message.setHeader("configuration", configuration); - message.setHeader("maxLineNumber", 9); - message.setHeader("majorVersion", 0); - message.setHeader("minorVersion", 0); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("configuration", configuration); + decompileContext.setHeader("maxLineNumber", 9); + decompileContext.setHeader("majorVersion", 0); + decompileContext.setHeader("minorVersion", 0); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -470,20 +470,20 @@ public void testClassAndFieldDeclaration_9() throws Exception { @Test public void testClassAndFieldDeclaration_10() throws Exception { - Message message = createMessageToTestClassDeclaration(10); + DecompileContext decompileContext = createMessageToTestClassDeclaration(10); //PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); PlainTextPrinter printer = new PlainTextPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - message.setHeader("printer", printer); - message.setHeader("configuration", configuration); - message.setHeader("maxLineNumber", 10); - message.setHeader("majorVersion", 0); - message.setHeader("minorVersion", 0); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("configuration", configuration); + decompileContext.setHeader("maxLineNumber", 10); + decompileContext.setHeader("majorVersion", 0); + decompileContext.setHeader("minorVersion", 0); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -498,19 +498,19 @@ public void testClassAndFieldDeclaration_10() throws Exception { @Test public void testClassAndMethodDeclaration_3() throws Exception { - Message message = createMessageToTestClassAndMethodDeclaration(3); + DecompileContext decompileContext = createMessageToTestClassAndMethodDeclaration(3); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - message.setHeader("printer", printer); - message.setHeader("configuration", configuration); - message.setHeader("maxLineNumber", 3); - message.setHeader("majorVersion", 0); - message.setHeader("minorVersion", 0); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("configuration", configuration); + decompileContext.setHeader("maxLineNumber", 3); + decompileContext.setHeader("majorVersion", 0); + decompileContext.setHeader("minorVersion", 0); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -523,19 +523,19 @@ public void testClassAndMethodDeclaration_3() throws Exception { @Test public void testClassAndMethodDeclaration_4() throws Exception { - Message message = createMessageToTestClassAndMethodDeclaration(4); + DecompileContext decompileContext = createMessageToTestClassAndMethodDeclaration(4); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - message.setHeader("printer", printer); - message.setHeader("configuration", configuration); - message.setHeader("maxLineNumber", 4); - message.setHeader("majorVersion", 0); - message.setHeader("minorVersion", 0); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("configuration", configuration); + decompileContext.setHeader("maxLineNumber", 4); + decompileContext.setHeader("majorVersion", 0); + decompileContext.setHeader("minorVersion", 0); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -548,17 +548,17 @@ public void testClassAndMethodDeclaration_4() throws Exception { @Test public void testClassAndMethodDeclaration_8() throws Exception { - Message message = createMessageToTestClassAndMethodDeclaration(8); + DecompileContext decompileContext = createMessageToTestClassAndMethodDeclaration(8); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); - message.setHeader("printer", printer); - message.setHeader("maxLineNumber", 8); - message.setHeader("majorVersion", 0); - message.setHeader("minorVersion", 0); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("maxLineNumber", 8); + decompileContext.setHeader("majorVersion", 0); + decompileContext.setHeader("minorVersion", 0); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -573,19 +573,19 @@ public void testClassAndMethodDeclaration_8() throws Exception { @Test public void testClassAndMethodDeclaration_9() throws Exception { - Message message = createMessageToTestClassAndMethodDeclaration(9); + DecompileContext decompileContext = createMessageToTestClassAndMethodDeclaration(9); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - message.setHeader("printer", printer); - message.setHeader("configuration", configuration); - message.setHeader("maxLineNumber", 9); - message.setHeader("majorVersion", 0); - message.setHeader("minorVersion", 0); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("configuration", configuration); + decompileContext.setHeader("maxLineNumber", 9); + decompileContext.setHeader("majorVersion", 0); + decompileContext.setHeader("minorVersion", 0); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -600,20 +600,20 @@ public void testClassAndMethodDeclaration_9() throws Exception { @Test public void testClassAndMethodDeclaration_10() throws Exception { - Message message = createMessageToTestClassAndMethodDeclaration(10); + DecompileContext decompileContext = createMessageToTestClassAndMethodDeclaration(10); //PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); PlainTextPrinter printer = new PlainTextPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - message.setHeader("printer", printer); - message.setHeader("configuration", configuration); - message.setHeader("maxLineNumber", 10); - message.setHeader("majorVersion", 0); - message.setHeader("minorVersion", 0); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("configuration", configuration); + decompileContext.setHeader("maxLineNumber", 10); + decompileContext.setHeader("majorVersion", 0); + decompileContext.setHeader("minorVersion", 0); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -631,20 +631,20 @@ public void testClassAndMethodDeclaration_10() throws Exception { @Test public void testClassAndMethodDeclaration_11() throws Exception { - Message message = createMessageToTestClassAndMethodDeclaration(11); + DecompileContext decompileContext = createMessageToTestClassAndMethodDeclaration(11); //PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); PlainTextPrinter printer = new PlainTextPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - message.setHeader("printer", printer); - message.setHeader("configuration", configuration); - message.setHeader("maxLineNumber", 11); - message.setHeader("majorVersion", 0); - message.setHeader("minorVersion", 0); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("configuration", configuration); + decompileContext.setHeader("maxLineNumber", 11); + decompileContext.setHeader("majorVersion", 0); + decompileContext.setHeader("minorVersion", 0); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -662,20 +662,20 @@ public void testClassAndMethodDeclaration_11() throws Exception { @Test public void testClassAndMethodDeclaration_12() throws Exception { - Message message = createMessageToTestClassAndMethodDeclaration(12); + DecompileContext decompileContext = createMessageToTestClassAndMethodDeclaration(12); //PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); PlainTextPrinter printer = new PlainTextPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - message.setHeader("printer", printer); - message.setHeader("configuration", configuration); - message.setHeader("maxLineNumber", 12); - message.setHeader("majorVersion", 0); - message.setHeader("minorVersion", 0); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("configuration", configuration); + decompileContext.setHeader("maxLineNumber", 12); + decompileContext.setHeader("majorVersion", 0); + decompileContext.setHeader("minorVersion", 0); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -693,20 +693,20 @@ public void testClassAndMethodDeclaration_12() throws Exception { @Test public void testClassAndMethodDeclaration_14() throws Exception { - Message message = createMessageToTestClassAndMethodDeclaration(14); + DecompileContext decompileContext = createMessageToTestClassAndMethodDeclaration(14); //PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); PlainTextPrinter printer = new PlainTextPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - message.setHeader("printer", printer); - message.setHeader("configuration", configuration); - message.setHeader("maxLineNumber", 14); - message.setHeader("majorVersion", 0); - message.setHeader("minorVersion", 0); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("configuration", configuration); + decompileContext.setHeader("maxLineNumber", 14); + decompileContext.setHeader("majorVersion", 0); + decompileContext.setHeader("minorVersion", 0); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -724,17 +724,17 @@ public void testClassAndMethodDeclaration_14() throws Exception { @Test public void testLayout() throws Exception { - Message message = createSimpleMessage(1); + DecompileContext decompileContext = createSimpleMessage(1); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); - message.setHeader("printer", printer); - message.setHeader("maxLineNumber", 22); - message.setHeader("majorVersion", 0); - message.setHeader("minorVersion", 0); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("maxLineNumber", 22); + decompileContext.setHeader("majorVersion", 0); + decompileContext.setHeader("minorVersion", 0); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -745,17 +745,17 @@ public void testLayout() throws Exception { @Test public void testLayoutWithoutLineNumber() throws Exception { - Message message = createSimpleMessage(0); + DecompileContext decompileContext = createSimpleMessage(0); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); - message.setHeader("printer", printer); - message.setHeader("maxLineNumber", 0); - message.setHeader("majorVersion", 0); - message.setHeader("minorVersion", 0); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("maxLineNumber", 0); + decompileContext.setHeader("majorVersion", 0); + decompileContext.setHeader("minorVersion", 0); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -766,19 +766,19 @@ public void testLayoutWithoutLineNumber() throws Exception { @Test public void testLayoutWithStretchedfFragments_2() throws Exception { - Message message = createSimpleMessage(2); + DecompileContext decompileContext = createSimpleMessage(2); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - message.setHeader("printer", printer); - message.setHeader("configuration", configuration); - message.setHeader("maxLineNumber", 44); - message.setHeader("majorVersion", 0); - message.setHeader("minorVersion", 0); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("configuration", configuration); + decompileContext.setHeader("maxLineNumber", 44); + decompileContext.setHeader("majorVersion", 0); + decompileContext.setHeader("minorVersion", 0); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -789,19 +789,19 @@ public void testLayoutWithStretchedfFragments_2() throws Exception { @Test public void testLayoutWithStretchedfFragments_3() throws Exception { - Message message = createSimpleMessage(3); + DecompileContext decompileContext = createSimpleMessage(3); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - message.setHeader("printer", printer); - message.setHeader("configuration", configuration); - message.setHeader("maxLineNumber", 66); - message.setHeader("majorVersion", 0); - message.setHeader("minorVersion", 0); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("configuration", configuration); + decompileContext.setHeader("maxLineNumber", 66); + decompileContext.setHeader("majorVersion", 0); + decompileContext.setHeader("minorVersion", 0); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -812,19 +812,19 @@ public void testLayoutWithStretchedfFragments_3() throws Exception { @Test public void testMoveDown() throws Exception { - Message message = createMessageToTestMoveDown(); + DecompileContext decompileContext = createMessageToTestMoveDown(); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - message.setHeader("printer", printer); - message.setHeader("configuration", configuration); - message.setHeader("maxLineNumber", 8); - message.setHeader("majorVersion", 0); - message.setHeader("minorVersion", 0); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("configuration", configuration); + decompileContext.setHeader("maxLineNumber", 8); + decompileContext.setHeader("majorVersion", 0); + decompileContext.setHeader("minorVersion", 0); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -835,19 +835,19 @@ public void testMoveDown() throws Exception { @Test public void testLinkedBlocks_16() throws Exception { - Message message = createMessageToTestLinkedBlocks(6, 9, 11, 13, 16); + DecompileContext decompileContext = createMessageToTestLinkedBlocks(6, 9, 11, 13, 16); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - message.setHeader("printer", printer); - message.setHeader("configuration", configuration); - message.setHeader("maxLineNumber", 16); - message.setHeader("majorVersion", 0); - message.setHeader("minorVersion", 0); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("configuration", configuration); + decompileContext.setHeader("maxLineNumber", 16); + decompileContext.setHeader("majorVersion", 0); + decompileContext.setHeader("minorVersion", 0); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -858,19 +858,19 @@ public void testLinkedBlocks_16() throws Exception { @Test public void testLinkedBlocks_22() throws Exception { - Message message = createMessageToTestLinkedBlocks(7, 11, 15, 19, 22); + DecompileContext decompileContext = createMessageToTestLinkedBlocks(7, 11, 15, 19, 22); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - message.setHeader("printer", printer); - message.setHeader("configuration", configuration); - message.setHeader("maxLineNumber", 22); - message.setHeader("majorVersion", 0); - message.setHeader("minorVersion", 0); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("configuration", configuration); + decompileContext.setHeader("maxLineNumber", 22); + decompileContext.setHeader("majorVersion", 0); + decompileContext.setHeader("minorVersion", 0); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -892,7 +892,7 @@ public void testLinkedBlocks_22() throws Exception { * @return A message * @throws Exception */ - public Message createMessageToTestIfReturn(int lineNumber1, int lineNumber2) throws Exception { + public DecompileContext createMessageToTestIfReturn(int lineNumber1, int lineNumber2) throws Exception { DefaultList fragments = new DefaultList<>(); JavaFragmentFactory.addSpacerBetweenStatements(fragments); @@ -938,10 +938,10 @@ public Message createMessageToTestIfReturn(int lineNumber1, int lineNumber2) thr JavaFragmentFactory.addSpacerBetweenStatements(fragments); - Message message = new Message(fragments); - message.setHeader("maxLineNumber", Integer.valueOf(lineNumber2)); + DecompileContext decompileContext = new DecompileContext(fragments); + decompileContext.setHeader("maxLineNumber", Integer.valueOf(lineNumber2)); - return message; + return decompileContext; } /** @@ -958,7 +958,7 @@ public Message createMessageToTestIfReturn(int lineNumber1, int lineNumber2) thr * @return A message * @throws Exception */ - public Message createMessageToTestIfAssignation(int lineNumber1, int lineNumber2, int lineNumber3) throws Exception { + public DecompileContext createMessageToTestIfAssignation(int lineNumber1, int lineNumber2, int lineNumber3) throws Exception { DefaultList fragments = new DefaultList<>(); JavaFragmentFactory.addSpacerBetweenStatements(fragments); @@ -1009,13 +1009,13 @@ public Message createMessageToTestIfAssignation(int lineNumber1, int lineNumber2 JavaFragmentFactory.addSpacerBetweenStatements(fragments); - Message message = new Message(fragments); - message.setHeader("maxLineNumber", Integer.valueOf(lineNumber3)); + DecompileContext decompileContext = new DecompileContext(fragments); + decompileContext.setHeader("maxLineNumber", Integer.valueOf(lineNumber3)); - return message; + return decompileContext; } - public Message createMessageToTestClassDeclaration(int lineNumber) throws Exception { + public DecompileContext createMessageToTestClassDeclaration(int lineNumber) throws Exception { DefaultList fragments = new DefaultList<>(); // package org.jd.core.v1.service.writer;\n\n @@ -1099,13 +1099,13 @@ public Message createMessageToTestClassDeclaration(int lineNumber) throws Except JavaFragmentFactory.addEndTypeBody(fragments, classStart); - Message message = new Message(fragments); - message.setHeader("maxLineNumber", Integer.valueOf(lineNumber)); + DecompileContext decompileContext = new DecompileContext(fragments); + decompileContext.setHeader("maxLineNumber", Integer.valueOf(lineNumber)); - return message; + return decompileContext; } - public Message createMessageToTestClassDeclarationWithoutImports(int lineNumber) throws Exception { + public DecompileContext createMessageToTestClassDeclarationWithoutImports(int lineNumber) throws Exception { DefaultList fragments = new DefaultList<>(); // package org.jd.core.v1.service.writer;\n\n @@ -1178,10 +1178,10 @@ public Message createMessageToTestClassDeclarationWithoutImports(int lineNumber) JavaFragmentFactory.addEndTypeBody(fragments, classStart); - Message message = new Message(fragments); - message.setHeader("maxLineNumber", Integer.valueOf(lineNumber)); + DecompileContext decompileContext = new DecompileContext(fragments); + decompileContext.setHeader("maxLineNumber", Integer.valueOf(lineNumber)); - return message; + return decompileContext; } /* @@ -1196,7 +1196,7 @@ public Message createMessageToTestClassDeclarationWithoutImports(int lineNumber) * } * } */ - public Message createMessageToTestClassAndMethodDeclaration(int lineNumber) throws Exception { + public DecompileContext createMessageToTestClassAndMethodDeclaration(int lineNumber) throws Exception { DefaultList fragments = new DefaultList<>(); // package org.jd.core.v1.service.writer;\n\n @@ -1282,10 +1282,10 @@ public Message createMessageToTestClassAndMethodDeclaration(int lineNumber) thro JavaFragmentFactory.addEndMethodBody(fragments, startConstructor); JavaFragmentFactory.addEndTypeBody(fragments, startMainClass); - Message message = new Message(fragments); - message.setHeader("maxLineNumber", Integer.valueOf(lineNumber)); + DecompileContext decompileContext = new DecompileContext(fragments); + decompileContext.setHeader("maxLineNumber", Integer.valueOf(lineNumber)); - return message; + return decompileContext; } /* @@ -1316,7 +1316,7 @@ public Message createMessageToTestClassAndMethodDeclaration(int lineNumber) thro * } 0,2,7 --><-- * } 0,2,2 --> */ - public Message createSimpleMessage(int factor) { + public DecompileContext createSimpleMessage(int factor) { DefaultList fragments = new DefaultList<>(); // package org.jd.core.v1.service.writer;\n\n @@ -1530,14 +1530,14 @@ public Message createSimpleMessage(int factor) { JavaFragmentFactory.addEndTypeBody(fragments, startMainClass); fragments.add(EndMovableJavaBlockFragment.END_MOVABLE_BLOCK); - Message message = new Message(fragments); + DecompileContext decompileContext = new DecompileContext(fragments); if (factor != 0) - message.setHeader("maxLineNumber", Integer.valueOf(22 * factor)); + decompileContext.setHeader("maxLineNumber", Integer.valueOf(22 * factor)); - return message; + return decompileContext; } - public Message createMessageToTestMoveDown() { + public DecompileContext createMessageToTestMoveDown() { DefaultList fragments = new DefaultList<>(); // package org.jd.core.v1.service.writer;\n\n @@ -1666,11 +1666,11 @@ public Message createMessageToTestMoveDown() { JavaFragmentFactory.addEndTypeBody(fragments, startMainClass); fragments.add(EndMovableJavaBlockFragment.END_MOVABLE_BLOCK); - Message message = new Message(fragments); - message.setHeader("maxLineNumber", Integer.valueOf(8)); + DecompileContext decompileContext = new DecompileContext(fragments); + decompileContext.setHeader("maxLineNumber", Integer.valueOf(8)); //message.setStart("containsByteCode", Boolean.TRUE); - return message; + return decompileContext; } /** @@ -1701,7 +1701,7 @@ public Message createMessageToTestMoveDown() { * @param lineNumber5 * @return */ - public Message createMessageToTestLinkedBlocks(int lineNumber1, int lineNumber2, int lineNumber3, int lineNumber4, int lineNumber5) { + public DecompileContext createMessageToTestLinkedBlocks(int lineNumber1, int lineNumber2, int lineNumber3, int lineNumber4, int lineNumber5) { DefaultList fragments = new DefaultList<>(); // package org.jd.core.v1.service.writer;\n\n @@ -1811,11 +1811,11 @@ public Message createMessageToTestLinkedBlocks(int lineNumber1, int lineNumber2, JavaFragmentFactory.addEndTypeBody(fragments, startMainClass); fragments.add(EndMovableJavaBlockFragment.END_MOVABLE_BLOCK); - Message message = new Message(fragments); - message.setHeader("maxLineNumber", Integer.valueOf(8)); + DecompileContext decompileContext = new DecompileContext(fragments); + decompileContext.setHeader("maxLineNumber", Integer.valueOf(8)); //message.setStart("containsByteCode", Boolean.TRUE); - return message; + return decompileContext; } protected void printSource(String source) { diff --git a/src/test/java/org/jd/core/v1/JavaGenericTest.java b/src/test/java/org/jd/core/v1/JavaGenericTest.java index 75ceb195..f9bf4a0c 100644 --- a/src/test/java/org/jd/core/v1/JavaGenericTest.java +++ b/src/test/java/org/jd/core/v1/JavaGenericTest.java @@ -12,9 +12,8 @@ import org.jd.core.v1.api.printer.Printer; import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; -import org.jd.core.v1.loader.ClassPathLoader; import org.jd.core.v1.loader.ZipLoader; -import org.jd.core.v1.model.message.Message; +import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; @@ -78,18 +77,18 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa } protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { - Message message = new Message(); - message.setHeader("loader", loader); - message.setHeader("printer", printer); - message.setHeader("mainInternalTypeName", internalTypeName); - message.setHeader("configuration", configuration); - - deserializer.process(message); - converter.process(message); - fragmenter.process(message); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + DecompileContext decompileContext = new DecompileContext(); + decompileContext.setHeader("loader", loader); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setHeader("configuration", configuration); + + deserializer.process(decompileContext); + converter.process(decompileContext); + fragmenter.process(decompileContext); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); diff --git a/src/test/java/org/jd/core/v1/JavaIfElseTest.java b/src/test/java/org/jd/core/v1/JavaIfElseTest.java index 9ac28215..e17d5b1f 100644 --- a/src/test/java/org/jd/core/v1/JavaIfElseTest.java +++ b/src/test/java/org/jd/core/v1/JavaIfElseTest.java @@ -12,9 +12,8 @@ import org.jd.core.v1.api.printer.Printer; import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; -import org.jd.core.v1.loader.ClassPathLoader; import org.jd.core.v1.loader.ZipLoader; -import org.jd.core.v1.model.message.Message; +import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; @@ -85,18 +84,18 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa } protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { - Message message = new Message(); - message.setHeader("loader", loader); - message.setHeader("printer", printer); - message.setHeader("mainInternalTypeName", internalTypeName); - message.setHeader("configuration", configuration); - - deserializer.process(message); - converter.process(message); - fragmenter.process(message); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + DecompileContext decompileContext = new DecompileContext(); + decompileContext.setHeader("loader", loader); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setHeader("configuration", configuration); + + deserializer.process(decompileContext); + converter.process(decompileContext); + fragmenter.process(decompileContext); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); diff --git a/src/test/java/org/jd/core/v1/JavaInnerOuterClassTest.java b/src/test/java/org/jd/core/v1/JavaInnerOuterClassTest.java index eb8905de..a7edbae4 100644 --- a/src/test/java/org/jd/core/v1/JavaInnerOuterClassTest.java +++ b/src/test/java/org/jd/core/v1/JavaInnerOuterClassTest.java @@ -12,9 +12,8 @@ import org.jd.core.v1.api.printer.Printer; import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; -import org.jd.core.v1.loader.ClassPathLoader; import org.jd.core.v1.loader.ZipLoader; -import org.jd.core.v1.model.message.Message; +import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; @@ -108,18 +107,18 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa } protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { - Message message = new Message(); - message.setHeader("loader", loader); - message.setHeader("printer", printer); - message.setHeader("mainInternalTypeName", internalTypeName); - message.setHeader("configuration", configuration); - - deserializer.process(message); - converter.process(message); - fragmenter.process(message); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + DecompileContext decompileContext = new DecompileContext(); + decompileContext.setHeader("loader", loader); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setHeader("configuration", configuration); + + deserializer.process(decompileContext); + converter.process(decompileContext); + fragmenter.process(decompileContext); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); diff --git a/src/test/java/org/jd/core/v1/JavaLambdaTest.java b/src/test/java/org/jd/core/v1/JavaLambdaTest.java index 52763630..d3bc1534 100644 --- a/src/test/java/org/jd/core/v1/JavaLambdaTest.java +++ b/src/test/java/org/jd/core/v1/JavaLambdaTest.java @@ -12,9 +12,8 @@ import org.jd.core.v1.api.printer.Printer; import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; -import org.jd.core.v1.loader.ClassPathLoader; import org.jd.core.v1.loader.ZipLoader; -import org.jd.core.v1.model.message.Message; +import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; @@ -72,18 +71,18 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa } protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { - Message message = new Message(); - message.setHeader("loader", loader); - message.setHeader("printer", printer); - message.setHeader("mainInternalTypeName", internalTypeName); - message.setHeader("configuration", configuration); + DecompileContext decompileContext = new DecompileContext(); + decompileContext.setHeader("loader", loader); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setHeader("configuration", configuration); - deserializer.process(message); - converter.process(message); - fragmenter.process(message); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + deserializer.process(decompileContext); + converter.process(decompileContext); + fragmenter.process(decompileContext); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); diff --git a/src/test/java/org/jd/core/v1/JavaLoopTest.java b/src/test/java/org/jd/core/v1/JavaLoopTest.java index 3409f99f..76095e2a 100644 --- a/src/test/java/org/jd/core/v1/JavaLoopTest.java +++ b/src/test/java/org/jd/core/v1/JavaLoopTest.java @@ -12,9 +12,8 @@ import org.jd.core.v1.api.printer.Printer; import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; -import org.jd.core.v1.loader.ClassPathLoader; import org.jd.core.v1.loader.ZipLoader; -import org.jd.core.v1.model.message.Message; +import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; @@ -25,9 +24,7 @@ import org.jd.core.v1.service.writer.WriteTokenProcessor; import org.junit.Test; -import java.io.FileInputStream; import java.io.InputStream; -import java.nio.file.Paths; import java.util.Collections; import java.util.Map; @@ -396,18 +393,18 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa } protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { - Message message = new Message(); - message.setHeader("loader", loader); - message.setHeader("printer", printer); - message.setHeader("mainInternalTypeName", internalTypeName); - message.setHeader("configuration", configuration); - - deserializer.process(message); - converter.process(message); - fragmenter.process(message); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + DecompileContext decompileContext = new DecompileContext(); + decompileContext.setHeader("loader", loader); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setHeader("configuration", configuration); + + deserializer.process(decompileContext); + converter.process(decompileContext); + fragmenter.process(decompileContext); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); diff --git a/src/test/java/org/jd/core/v1/JavaMethodOverloadingTest.java b/src/test/java/org/jd/core/v1/JavaMethodOverloadingTest.java index 59c4aad7..2c3ebde7 100644 --- a/src/test/java/org/jd/core/v1/JavaMethodOverloadingTest.java +++ b/src/test/java/org/jd/core/v1/JavaMethodOverloadingTest.java @@ -13,7 +13,7 @@ import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ClassPathLoader; -import org.jd.core.v1.model.message.Message; +import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; @@ -103,18 +103,18 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa } protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { - Message message = new Message(); - message.setHeader("loader", loader); - message.setHeader("printer", printer); - message.setHeader("mainInternalTypeName", internalTypeName); - message.setHeader("configuration", configuration); - - deserializer.process(message); - converter.process(message); - fragmenter.process(message); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + DecompileContext decompileContext = new DecompileContext(); + decompileContext.setHeader("loader", loader); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setHeader("configuration", configuration); + + deserializer.process(decompileContext); + converter.process(decompileContext); + fragmenter.process(decompileContext); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); diff --git a/src/test/java/org/jd/core/v1/JavaOperatorPrecedenceTest.java b/src/test/java/org/jd/core/v1/JavaOperatorPrecedenceTest.java index e0f08ba3..1048206c 100644 --- a/src/test/java/org/jd/core/v1/JavaOperatorPrecedenceTest.java +++ b/src/test/java/org/jd/core/v1/JavaOperatorPrecedenceTest.java @@ -13,7 +13,7 @@ import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ClassPathLoader; -import org.jd.core.v1.model.message.Message; +import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; @@ -60,18 +60,18 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa } protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { - Message message = new Message(); - message.setHeader("loader", loader); - message.setHeader("printer", printer); - message.setHeader("mainInternalTypeName", internalTypeName); - message.setHeader("configuration", configuration); - - deserializer.process(message); - converter.process(message); - fragmenter.process(message); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + DecompileContext decompileContext = new DecompileContext(); + decompileContext.setHeader("loader", loader); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setHeader("configuration", configuration); + + deserializer.process(decompileContext); + converter.process(decompileContext); + fragmenter.process(decompileContext); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); diff --git a/src/test/java/org/jd/core/v1/JavaSwitchTest.java b/src/test/java/org/jd/core/v1/JavaSwitchTest.java index f2fa604a..b2766b19 100644 --- a/src/test/java/org/jd/core/v1/JavaSwitchTest.java +++ b/src/test/java/org/jd/core/v1/JavaSwitchTest.java @@ -12,9 +12,8 @@ import org.jd.core.v1.api.printer.Printer; import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; -import org.jd.core.v1.loader.ClassPathLoader; import org.jd.core.v1.loader.ZipLoader; -import org.jd.core.v1.model.message.Message; +import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; @@ -173,18 +172,18 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa } protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { - Message message = new Message(); - message.setHeader("loader", loader); - message.setHeader("printer", printer); - message.setHeader("mainInternalTypeName", internalTypeName); - message.setHeader("configuration", configuration); - - deserializer.process(message); - converter.process(message); - fragmenter.process(message); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + DecompileContext decompileContext = new DecompileContext(); + decompileContext.setHeader("loader", loader); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setHeader("configuration", configuration); + + deserializer.process(decompileContext); + converter.process(decompileContext); + fragmenter.process(decompileContext); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); diff --git a/src/test/java/org/jd/core/v1/JavaSynchronizedBlockTest.java b/src/test/java/org/jd/core/v1/JavaSynchronizedBlockTest.java index 52cba281..7d61e997 100644 --- a/src/test/java/org/jd/core/v1/JavaSynchronizedBlockTest.java +++ b/src/test/java/org/jd/core/v1/JavaSynchronizedBlockTest.java @@ -12,9 +12,8 @@ import org.jd.core.v1.api.printer.Printer; import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; -import org.jd.core.v1.loader.ClassPathLoader; import org.jd.core.v1.loader.ZipLoader; -import org.jd.core.v1.model.message.Message; +import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; @@ -74,18 +73,18 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa } protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { - Message message = new Message(); - message.setHeader("loader", loader); - message.setHeader("printer", printer); - message.setHeader("mainInternalTypeName", internalTypeName); - message.setHeader("configuration", configuration); - - deserializer.process(message); - converter.process(message); - fragmenter.process(message); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + DecompileContext decompileContext = new DecompileContext(); + decompileContext.setHeader("loader", loader); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setHeader("configuration", configuration); + + deserializer.process(decompileContext); + converter.process(decompileContext); + fragmenter.process(decompileContext); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); diff --git a/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java b/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java index 0a2d9e1d..ff97f933 100644 --- a/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java +++ b/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java @@ -17,7 +17,7 @@ import org.jd.core.v1.model.javasyntax.type.PrimitiveType; import org.jd.core.v1.model.javasyntax.type.Type; import org.jd.core.v1.model.javasyntax.type.Types; -import org.jd.core.v1.model.message.Message; +import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextMetaPrinter; import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; @@ -140,20 +140,20 @@ public void testClassDeclaration() throws Exception { PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - Message message = new Message(compilationUnit); + DecompileContext decompileContext = new DecompileContext(compilationUnit); - message.setHeader("mainInternalTypeName", "org/jd/core/v1/service/test/TokenWriterTest"); - message.setHeader("loader", new NopLoader()); - message.setHeader("printer", printer); - message.setHeader("configuration", configuration); - message.setHeader("maxLineNumber", 22); - message.setHeader("majorVersion", 0); - message.setHeader("minorVersion", 0); + decompileContext.setHeader("mainInternalTypeName", "org/jd/core/v1/service/test/TokenWriterTest"); + decompileContext.setHeader("loader", new NopLoader()); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("configuration", configuration); + decompileContext.setHeader("maxLineNumber", 22); + decompileContext.setHeader("majorVersion", 0); + decompileContext.setHeader("minorVersion", 0); - fragmenter.process(message); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + fragmenter.process(decompileContext); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -181,19 +181,19 @@ public void testInterfaceDeclaration() throws Exception { ); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); - Message message = new Message(compilationUnit); + DecompileContext decompileContext = new DecompileContext(compilationUnit); - message.setHeader("mainInternalTypeName", "org/jd/core/v1/service/test/InterfaceTest"); - message.setHeader("loader", new NopLoader()); - message.setHeader("printer", printer); - message.setHeader("maxLineNumber", 0); - message.setHeader("majorVersion", 49); - message.setHeader("minorVersion", 0); + decompileContext.setHeader("mainInternalTypeName", "org/jd/core/v1/service/test/InterfaceTest"); + decompileContext.setHeader("loader", new NopLoader()); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("maxLineNumber", 0); + decompileContext.setHeader("majorVersion", 49); + decompileContext.setHeader("minorVersion", 0); - fragmenter.process(message); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + fragmenter.process(decompileContext); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -231,19 +231,19 @@ public void testEnumDayDeclaration() throws Exception { ); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); - Message message = new Message(compilationUnit); + DecompileContext decompileContext = new DecompileContext(compilationUnit); - message.setHeader("mainInternalTypeName", "org/jd/core/v1/service/test/Day"); - message.setHeader("loader", new NopLoader()); - message.setHeader("printer", printer); - message.setHeader("maxLineNumber", 0); - message.setHeader("majorVersion", 0); - message.setHeader("minorVersion", 0); + decompileContext.setHeader("mainInternalTypeName", "org/jd/core/v1/service/test/Day"); + decompileContext.setHeader("loader", new NopLoader()); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("maxLineNumber", 0); + decompileContext.setHeader("majorVersion", 0); + decompileContext.setHeader("minorVersion", 0); - fragmenter.process(message); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + fragmenter.process(decompileContext); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -515,20 +515,20 @@ public void testEnumPlanetDeclaration() throws Exception { ); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); - Message message = new Message(compilationUnit); + DecompileContext decompileContext = new DecompileContext(compilationUnit); - message.setHeader("mainInternalTypeName", "org/jd/core/v1/service/test/Planet"); - message.setHeader("loader", new NopLoader()); - message.setHeader("printer", printer); - message.setHeader("maxLineNumber", 0); - message.setHeader("majorVersion", 0); - message.setHeader("minorVersion", 0); + decompileContext.setHeader("mainInternalTypeName", "org/jd/core/v1/service/test/Planet"); + decompileContext.setHeader("loader", new NopLoader()); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("maxLineNumber", 0); + decompileContext.setHeader("majorVersion", 0); + decompileContext.setHeader("minorVersion", 0); - fragmenter.process(message); - layouter.process(message); + fragmenter.process(decompileContext); + layouter.process(decompileContext); //tokenizer.process(message); - new JavaFragmentToTokenProcessor().process(message); - writer.process(message); + new JavaFragmentToTokenProcessor().process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -584,19 +584,19 @@ public void testSwitch() throws Exception { ); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); - Message message = new Message(compilationUnit); + DecompileContext decompileContext = new DecompileContext(compilationUnit); - message.setHeader("mainInternalTypeName", "org/jd/core/v1/service/test/SwitchTest"); - message.setHeader("loader", new NopLoader()); - message.setHeader("printer", printer); - message.setHeader("maxLineNumber", 0); - message.setHeader("majorVersion", 0); - message.setHeader("minorVersion", 0); + decompileContext.setHeader("mainInternalTypeName", "org/jd/core/v1/service/test/SwitchTest"); + decompileContext.setHeader("loader", new NopLoader()); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("maxLineNumber", 0); + decompileContext.setHeader("majorVersion", 0); + decompileContext.setHeader("minorVersion", 0); - fragmenter.process(message); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + fragmenter.process(decompileContext); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -640,19 +640,19 @@ public void testBridgeAndSyntheticAttributes() throws Exception { ); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); - Message message = new Message(compilationUnit); - - message.setHeader("mainInternalTypeName", "org/jd/core/v1/service/test/SyntheticAttributeTest"); - message.setHeader("loader", new NopLoader()); - message.setHeader("printer", printer); - message.setHeader("maxLineNumber", 0); - message.setHeader("majorVersion", 0); - message.setHeader("minorVersion", 0); - - fragmenter.process(message); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + DecompileContext decompileContext = new DecompileContext(compilationUnit); + + decompileContext.setHeader("mainInternalTypeName", "org/jd/core/v1/service/test/SyntheticAttributeTest"); + decompileContext.setHeader("loader", new NopLoader()); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("maxLineNumber", 0); + decompileContext.setHeader("majorVersion", 0); + decompileContext.setHeader("minorVersion", 0); + + fragmenter.process(decompileContext); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); diff --git a/src/test/java/org/jd/core/v1/JavaTernaryOperatorTest.java b/src/test/java/org/jd/core/v1/JavaTernaryOperatorTest.java index 22b0dced..651946d7 100644 --- a/src/test/java/org/jd/core/v1/JavaTernaryOperatorTest.java +++ b/src/test/java/org/jd/core/v1/JavaTernaryOperatorTest.java @@ -12,9 +12,8 @@ import org.jd.core.v1.api.printer.Printer; import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; -import org.jd.core.v1.loader.ClassPathLoader; import org.jd.core.v1.loader.ZipLoader; -import org.jd.core.v1.model.message.Message; +import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; @@ -94,18 +93,18 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa } protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { - Message message = new Message(); - message.setHeader("loader", loader); - message.setHeader("printer", printer); - message.setHeader("mainInternalTypeName", internalTypeName); - message.setHeader("configuration", configuration); - - deserializer.process(message); - converter.process(message); - fragmenter.process(message); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + DecompileContext decompileContext = new DecompileContext(); + decompileContext.setHeader("loader", loader); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setHeader("configuration", configuration); + + deserializer.process(decompileContext); + converter.process(decompileContext); + fragmenter.process(decompileContext); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); diff --git a/src/test/java/org/jd/core/v1/JavaTryCatchFinallyTest.java b/src/test/java/org/jd/core/v1/JavaTryCatchFinallyTest.java index 76130389..043144ce 100644 --- a/src/test/java/org/jd/core/v1/JavaTryCatchFinallyTest.java +++ b/src/test/java/org/jd/core/v1/JavaTryCatchFinallyTest.java @@ -12,9 +12,8 @@ import org.jd.core.v1.api.printer.Printer; import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; -import org.jd.core.v1.loader.ClassPathLoader; import org.jd.core.v1.loader.ZipLoader; -import org.jd.core.v1.model.message.Message; +import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; @@ -345,18 +344,18 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa } protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { - Message message = new Message(); - message.setHeader("loader", loader); - message.setHeader("printer", printer); - message.setHeader("mainInternalTypeName", internalTypeName); - message.setHeader("configuration", configuration); - - deserializer.process(message); - converter.process(message); - fragmenter.process(message); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + DecompileContext decompileContext = new DecompileContext(); + decompileContext.setHeader("loader", loader); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setHeader("configuration", configuration); + + deserializer.process(decompileContext); + converter.process(decompileContext); + fragmenter.process(decompileContext); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); diff --git a/src/test/java/org/jd/core/v1/LayoutFragmentProcessorTest.java b/src/test/java/org/jd/core/v1/LayoutFragmentProcessorTest.java index ca8bcc05..2dcc1542 100644 --- a/src/test/java/org/jd/core/v1/LayoutFragmentProcessorTest.java +++ b/src/test/java/org/jd/core/v1/LayoutFragmentProcessorTest.java @@ -9,7 +9,7 @@ import junit.framework.TestCase; import org.jd.core.v1.loader.ZipLoader; -import org.jd.core.v1.model.message.Message; +import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; import org.jd.core.v1.service.deserializer.classfile.DeserializeClassFileProcessor; @@ -43,18 +43,18 @@ public void testJdk118Basic() throws Exception { PlainTextPrinter printer = new PlainTextPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - Message message = new Message(); - message.setHeader("mainInternalTypeName", "org/jd/core/test/Basic"); - message.setHeader("loader", loader); - message.setHeader("printer", printer); - message.setHeader("configuration", configuration); + DecompileContext decompileContext = new DecompileContext(); + decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/Basic"); + decompileContext.setHeader("loader", loader); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("configuration", configuration); - deserializer.process(message); - converter.process(message); - fragmenter.process(message); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + deserializer.process(decompileContext); + converter.process(decompileContext); + fragmenter.process(decompileContext); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -71,18 +71,18 @@ public void testJdk131TryCatchFinally() throws Exception { PlainTextPrinter printer = new PlainTextPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - Message message = new Message(); - message.setHeader("mainInternalTypeName", "org/jd/core/test/TryCatchFinally"); - message.setHeader("loader", loader); - message.setHeader("printer", printer); - message.setHeader("configuration", configuration); + DecompileContext decompileContext = new DecompileContext(); + decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/TryCatchFinally"); + decompileContext.setHeader("loader", loader); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("configuration", configuration); - deserializer.process(message); - converter.process(message); - fragmenter.process(message); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + deserializer.process(decompileContext); + converter.process(decompileContext); + fragmenter.process(decompileContext); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -99,18 +99,18 @@ public void testTryCatchFinally() throws Exception { PlainTextPrinter printer = new PlainTextPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - Message message = new Message(); - message.setHeader("mainInternalTypeName", "org/jd/core/test/TryCatchFinally"); - message.setHeader("loader", loader); - message.setHeader("printer", printer); - message.setHeader("configuration", configuration); + DecompileContext decompileContext = new DecompileContext(); + decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/TryCatchFinally"); + decompileContext.setHeader("loader", loader); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("configuration", configuration); - deserializer.process(message); - converter.process(message); - fragmenter.process(message); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + deserializer.process(decompileContext); + converter.process(decompileContext); + fragmenter.process(decompileContext); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -127,18 +127,18 @@ public void testAnonymousClass() throws Exception { PlainTextPrinter printer = new PlainTextPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - Message message = new Message(); - message.setHeader("mainInternalTypeName", "org/jd/core/test/AnonymousClass"); - message.setHeader("loader", loader); - message.setHeader("printer", printer); - message.setHeader("configuration", configuration); + DecompileContext decompileContext = new DecompileContext(); + decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/AnonymousClass"); + decompileContext.setHeader("loader", loader); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("configuration", configuration); - deserializer.process(message); - converter.process(message); - fragmenter.process(message); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + deserializer.process(decompileContext); + converter.process(decompileContext); + fragmenter.process(decompileContext); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -157,18 +157,18 @@ public void testOuterClass() throws Exception { PlainTextPrinter printer = new PlainTextPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - Message message = new Message(); - message.setHeader("mainInternalTypeName", "org/jd/core/test/OuterClass"); - message.setHeader("loader", loader); - message.setHeader("printer", printer); - message.setHeader("configuration", configuration); + DecompileContext decompileContext = new DecompileContext(); + decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/OuterClass"); + decompileContext.setHeader("loader", loader); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("configuration", configuration); - deserializer.process(message); - converter.process(message); - fragmenter.process(message); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + deserializer.process(decompileContext); + converter.process(decompileContext); + fragmenter.process(decompileContext); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -186,17 +186,17 @@ public void testEnumClass() throws Exception { TestTokenizeJavaFragmentProcessor tokenizer = new TestTokenizeJavaFragmentProcessor(); - Message message = new Message(); - message.setHeader("mainInternalTypeName", "org/jd/core/test/Enum"); - message.setHeader("loader", loader); - message.setHeader("printer", printer); + DecompileContext decompileContext = new DecompileContext(); + decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/Enum"); + decompileContext.setHeader("loader", loader); + decompileContext.setHeader("printer", printer); - deserializer.process(message); - converter.process(message); - fragmenter.process(message); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + deserializer.process(decompileContext); + converter.process(decompileContext); + fragmenter.process(decompileContext); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -216,18 +216,18 @@ public void testAnnotationQuality() throws Exception { TestTokenizeJavaFragmentProcessor tokenizer = new TestTokenizeJavaFragmentProcessor(); - Message message = new Message(); - message.setHeader("mainInternalTypeName", "org/jd/core/test/annotation/Quality"); - message.setHeader("loader", loader); - message.setHeader("printer", printer); - message.setHeader("configuration", configuration); + DecompileContext decompileContext = new DecompileContext(); + decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/annotation/Quality"); + decompileContext.setHeader("loader", loader); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("configuration", configuration); - deserializer.process(message); - converter.process(message); - fragmenter.process(message); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + deserializer.process(decompileContext); + converter.process(decompileContext); + fragmenter.process(decompileContext); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); @@ -246,18 +246,18 @@ public void testJdk170Array() throws Exception { TestTokenizeJavaFragmentProcessor tokenizer = new TestTokenizeJavaFragmentProcessor(); - Message message = new Message(); - message.setHeader("mainInternalTypeName", "org/jd/core/test/Array"); - message.setHeader("loader", loader); - message.setHeader("printer", printer); - message.setHeader("configuration", configuration); - - deserializer.process(message); - converter.process(message); - fragmenter.process(message); - layouter.process(message); - tokenizer.process(message); - writer.process(message); + DecompileContext decompileContext = new DecompileContext(); + decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/Array"); + decompileContext.setHeader("loader", loader); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("configuration", configuration); + + deserializer.process(decompileContext); + converter.process(decompileContext); + fragmenter.process(decompileContext); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); String source = printer.toString(); diff --git a/src/test/java/org/jd/core/v1/SignatureParserTest.java b/src/test/java/org/jd/core/v1/SignatureParserTest.java index 5d0fbb0d..32693178 100644 --- a/src/test/java/org/jd/core/v1/SignatureParserTest.java +++ b/src/test/java/org/jd/core/v1/SignatureParserTest.java @@ -12,7 +12,7 @@ import org.jd.core.v1.loader.ZipLoader; import org.jd.core.v1.model.classfile.ClassFile; import org.jd.core.v1.model.javasyntax.type.*; -import org.jd.core.v1.model.message.Message; +import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.service.converter.classfiletojavasyntax.util.TypeMaker; import org.jd.core.v1.service.deserializer.classfile.DeserializeClassFileProcessor; import org.jd.core.v1.services.javasyntax.type.visitor.PrintTypeVisitor; @@ -31,13 +31,13 @@ public void testAnnotatedClass() throws Exception { ZipLoader loader = new ZipLoader(is); TypeMaker typeMaker = new TypeMaker(loader); - Message message = new Message(); - message.setHeader("mainInternalTypeName", "org/jd/core/test/AnnotatedClass"); - message.setHeader("loader", loader); + DecompileContext decompileContext = new DecompileContext(); + decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/AnnotatedClass"); + decompileContext.setHeader("loader", loader); - deserializer.process(message); + deserializer.process(decompileContext); - ClassFile classFile = message.getBody(); + ClassFile classFile = decompileContext.getBody(); // Check type TypeMaker.TypeTypes typeTypes = typeMaker.parseClassFileSignature(classFile); @@ -149,13 +149,13 @@ public void testGenericClass() throws Exception { ZipLoader loader = new ZipLoader(is); TypeMaker typeMaker = new TypeMaker(loader); - Message message = new Message(); - message.setHeader("mainInternalTypeName", "org/jd/core/test/GenericClass"); - message.setHeader("loader", loader); + DecompileContext decompileContext = new DecompileContext(); + decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/GenericClass"); + decompileContext.setHeader("loader", loader); - deserializer.process(message); + deserializer.process(decompileContext); - ClassFile classFile = message.getBody(); + ClassFile classFile = decompileContext.getBody(); // Check type TypeMaker.TypeTypes typeTypes = typeMaker.parseClassFileSignature(classFile); @@ -363,4 +363,4 @@ public void testGenericInnerClass() throws Exception { Assert.assertEquals(typeArguments.getFirst().toString(), "GenericType{K}"); Assert.assertEquals(typeArguments.getLast().toString(), "GenericType{V}"); } -} \ No newline at end of file +} diff --git a/src/test/java/org/jd/core/v1/WriteTokenTest.java b/src/test/java/org/jd/core/v1/WriteTokenTest.java index d098a158..a764f46b 100644 --- a/src/test/java/org/jd/core/v1/WriteTokenTest.java +++ b/src/test/java/org/jd/core/v1/WriteTokenTest.java @@ -7,7 +7,7 @@ package org.jd.core.v1; -import org.jd.core.v1.model.message.Message; +import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.model.token.*; import org.jd.core.v1.printer.PlainTextMetaPrinter; import org.jd.core.v1.service.writer.WriteTokenProcessor; @@ -198,13 +198,13 @@ public void writeClassDeclaration() throws Exception { PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); WriteTokenProcessor writer = new WriteTokenProcessor(); - Message message = new Message(tokens); - message.setHeader("printer", printer); - message.setHeader("maxLineNumber", 22); - message.setHeader("majorVersion", 0); - message.setHeader("minorVersion", 0); + DecompileContext decompileContext = new DecompileContext(tokens); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("maxLineNumber", 22); + decompileContext.setHeader("majorVersion", 0); + decompileContext.setHeader("minorVersion", 0); - writer.process(message); + writer.process(decompileContext); String source = printer.toString(); @@ -279,13 +279,13 @@ public void testComments() throws Exception { PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); WriteTokenProcessor writer = new WriteTokenProcessor(); - Message message = new Message(tokens); - message.setHeader("printer", printer); - message.setHeader("maxLineNumber", 0); - message.setHeader("majorVersion", 0); - message.setHeader("minorVersion", 0); + DecompileContext decompileContext = new DecompileContext(tokens); + decompileContext.setHeader("printer", printer); + decompileContext.setHeader("maxLineNumber", 0); + decompileContext.setHeader("majorVersion", 0); + decompileContext.setHeader("minorVersion", 0); - writer.process(message); + writer.process(decompileContext); String source = printer.toString(); diff --git a/src/test/java/org/jd/core/v1/services/tokenizer/javafragmenttotoken/TestTokenizeJavaFragmentProcessor.java b/src/test/java/org/jd/core/v1/services/tokenizer/javafragmenttotoken/TestTokenizeJavaFragmentProcessor.java index 7f0ea8e8..a7fc61a2 100644 --- a/src/test/java/org/jd/core/v1/services/tokenizer/javafragmenttotoken/TestTokenizeJavaFragmentProcessor.java +++ b/src/test/java/org/jd/core/v1/services/tokenizer/javafragmenttotoken/TestTokenizeJavaFragmentProcessor.java @@ -8,7 +8,7 @@ package org.jd.core.v1.services.tokenizer.javafragmenttotoken; import org.jd.core.v1.model.javafragment.JavaFragment; -import org.jd.core.v1.model.message.Message; +import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.model.processor.Processor; import org.jd.core.v1.services.tokenizer.javafragmenttotoken.visitor.TokenizeJavaFragmentTestVisitor; @@ -17,8 +17,8 @@ public class TestTokenizeJavaFragmentProcessor implements Processor { @Override - public void process(Message message) throws Exception { - List fragments = message.getBody(); + public void process(DecompileContext decompileContext) throws Exception { + List fragments = decompileContext.getBody(); TokenizeJavaFragmentTestVisitor visitor = new TokenizeJavaFragmentTestVisitor(fragments.size() * 3); // Create tokens @@ -26,6 +26,6 @@ public void process(Message message) throws Exception { fragment.accept(visitor); } - message.setBody(visitor.getTokens()); + decompileContext.setBody(visitor.getTokens()); } } From 957302bfeae901b96bd8a10e31743ec4dcd6767c Mon Sep 17 00:00:00 2001 From: Yushan Gao Date: Fri, 27 Nov 2020 18:57:06 +0800 Subject: [PATCH 03/28] refactor: move mainInternalTypeName to context --- build.gradle | 3 +++ .../org/jd/core/v1/ClassFileToJavaSourceDecompiler.java | 4 ++-- .../java/org/jd/core/v1/model/message/DecompileContext.java | 6 ++++++ .../classfile/DeserializeClassFileProcessor.java | 2 +- .../JavaSyntaxToJavaFragmentProcessor.java | 2 +- 5 files changed, 13 insertions(+), 4 deletions(-) diff --git a/build.gradle b/build.gradle index b2225bfb..38e140c6 100644 --- a/build.gradle +++ b/build.gradle @@ -5,6 +5,9 @@ apply plugin: 'maven-publish' apply plugin: 'com.jfrog.bintray' dependencies { + compileOnly 'org.projectlombok:lombok:1.18.12' + annotationProcessor 'org.projectlombok:lombok:1.18.12' + testCompile 'commons-codec:commons-codec:1.13' testCompile 'org.apache.commons:commons-collections4:4.1' testCompile 'org.apache.commons:commons-imaging:1.0-alpha1' diff --git a/src/main/java/org/jd/core/v1/ClassFileToJavaSourceDecompiler.java b/src/main/java/org/jd/core/v1/ClassFileToJavaSourceDecompiler.java index a3ef98bb..1986f03e 100644 --- a/src/main/java/org/jd/core/v1/ClassFileToJavaSourceDecompiler.java +++ b/src/main/java/org/jd/core/v1/ClassFileToJavaSourceDecompiler.java @@ -31,7 +31,7 @@ public class ClassFileToJavaSourceDecompiler implements Decompiler { public void decompile(Loader loader, Printer printer, String internalName) throws Exception { DecompileContext decompileContext = new DecompileContext(); - decompileContext.setHeader("mainInternalTypeName", internalName); + decompileContext.setMainInternalTypeName(internalName); decompileContext.setHeader("loader", loader); decompileContext.setHeader("printer", printer); @@ -41,7 +41,7 @@ public void decompile(Loader loader, Printer printer, String internalName) throw public void decompile(Loader loader, Printer printer, String internalName, Map configuration) throws Exception { DecompileContext decompileContext = new DecompileContext(); - decompileContext.setHeader("mainInternalTypeName", internalName); + decompileContext.setMainInternalTypeName(internalName); decompileContext.setHeader("configuration", configuration); decompileContext.setHeader("loader", loader); decompileContext.setHeader("printer", printer); diff --git a/src/main/java/org/jd/core/v1/model/message/DecompileContext.java b/src/main/java/org/jd/core/v1/model/message/DecompileContext.java index 40b16347..914e2b67 100644 --- a/src/main/java/org/jd/core/v1/model/message/DecompileContext.java +++ b/src/main/java/org/jd/core/v1/model/message/DecompileContext.java @@ -7,9 +7,15 @@ package org.jd.core.v1.model.message; +import lombok.Getter; +import lombok.Setter; + import java.util.HashMap; +@Getter +@Setter public class DecompileContext { + protected String mainInternalTypeName; protected HashMap headers = new HashMap<>(); protected Object body; diff --git a/src/main/java/org/jd/core/v1/service/deserializer/classfile/DeserializeClassFileProcessor.java b/src/main/java/org/jd/core/v1/service/deserializer/classfile/DeserializeClassFileProcessor.java index b06f86bf..985acbbd 100644 --- a/src/main/java/org/jd/core/v1/service/deserializer/classfile/DeserializeClassFileProcessor.java +++ b/src/main/java/org/jd/core/v1/service/deserializer/classfile/DeserializeClassFileProcessor.java @@ -23,7 +23,7 @@ public class DeserializeClassFileProcessor extends ClassFileDeserializer impleme @Override public void process(DecompileContext decompileContext) throws Exception { Loader loader = decompileContext.getHeader("loader"); - String internalTypeName = decompileContext.getHeader("mainInternalTypeName"); + String internalTypeName = decompileContext.getMainInternalTypeName(); ClassFile classFile = loadClassFile(loader, internalTypeName); decompileContext.setBody(classFile); diff --git a/src/main/java/org/jd/core/v1/service/fragmenter/javasyntaxtojavafragment/JavaSyntaxToJavaFragmentProcessor.java b/src/main/java/org/jd/core/v1/service/fragmenter/javasyntaxtojavafragment/JavaSyntaxToJavaFragmentProcessor.java index 8610e90c..b6ead5c8 100644 --- a/src/main/java/org/jd/core/v1/service/fragmenter/javasyntaxtojavafragment/JavaSyntaxToJavaFragmentProcessor.java +++ b/src/main/java/org/jd/core/v1/service/fragmenter/javasyntaxtojavafragment/JavaSyntaxToJavaFragmentProcessor.java @@ -25,7 +25,7 @@ public class JavaSyntaxToJavaFragmentProcessor implements Processor { public void process(DecompileContext decompileContext) throws Exception { Loader loader = decompileContext.getHeader("loader"); - String mainInternalTypeName = decompileContext.getHeader("mainInternalTypeName"); + String mainInternalTypeName = decompileContext.getMainInternalTypeName(); int majorVersion = decompileContext.getHeader("majorVersion"); CompilationUnit compilationUnit = decompileContext.getBody(); From 04396b8c62ef76e29a07ee678d4ea1e7761b407b Mon Sep 17 00:00:00 2001 From: Yushan Gao Date: Fri, 27 Nov 2020 21:56:05 +0800 Subject: [PATCH 04/28] refactor: use field configuration --- .../v1/ClassFileToJavaSourceDecompiler.java | 2 +- .../v1/model/message/DecompileContext.java | 4 ++ .../ClassFileToJavaSyntaxProcessor.java | 2 +- .../layouter/LayoutFragmentProcessor.java | 2 +- src/test/java/org/jd/core/v1/CfrTest.java | 2 +- .../jd/core/v1/JarFileToJavaSourceTest.java | 2 +- .../org/jd/core/v1/Java9InterfaceTest.java | 2 +- .../org/jd/core/v1/JavaAnnotationTest.java | 2 +- .../jd/core/v1/JavaAnonymousClassTest.java | 2 +- .../java/org/jd/core/v1/JavaArrayTest.java | 2 +- .../java/org/jd/core/v1/JavaAssertTest.java | 2 +- .../org/jd/core/v1/JavaAutoboxingTest.java | 2 +- .../java/org/jd/core/v1/JavaBasicTest.java | 2 +- .../java/org/jd/core/v1/JavaEnumTest.java | 2 +- .../jd/core/v1/JavaFragmentToTokenTest.java | 50 +++++++++---------- .../java/org/jd/core/v1/JavaGenericTest.java | 2 +- .../java/org/jd/core/v1/JavaIfElseTest.java | 2 +- .../jd/core/v1/JavaInnerOuterClassTest.java | 2 +- .../java/org/jd/core/v1/JavaLambdaTest.java | 2 +- .../java/org/jd/core/v1/JavaLoopTest.java | 2 +- .../jd/core/v1/JavaMethodOverloadingTest.java | 2 +- .../core/v1/JavaOperatorPrecedenceTest.java | 2 +- .../java/org/jd/core/v1/JavaSwitchTest.java | 2 +- .../jd/core/v1/JavaSynchronizedBlockTest.java | 2 +- .../core/v1/JavaSyntaxToJavaSourceTest.java | 2 +- .../jd/core/v1/JavaTernaryOperatorTest.java | 2 +- .../jd/core/v1/JavaTryCatchFinallyTest.java | 2 +- .../core/v1/LayoutFragmentProcessorTest.java | 14 +++--- 28 files changed, 61 insertions(+), 57 deletions(-) diff --git a/src/main/java/org/jd/core/v1/ClassFileToJavaSourceDecompiler.java b/src/main/java/org/jd/core/v1/ClassFileToJavaSourceDecompiler.java index 1986f03e..151ce796 100644 --- a/src/main/java/org/jd/core/v1/ClassFileToJavaSourceDecompiler.java +++ b/src/main/java/org/jd/core/v1/ClassFileToJavaSourceDecompiler.java @@ -42,7 +42,7 @@ public void decompile(Loader loader, Printer printer, String internalName, Map configuration = new HashMap<>(); + + @Deprecated protected HashMap headers = new HashMap<>(); protected Object body; diff --git a/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/ClassFileToJavaSyntaxProcessor.java b/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/ClassFileToJavaSyntaxProcessor.java index 3155ab4c..b4904807 100644 --- a/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/ClassFileToJavaSyntaxProcessor.java +++ b/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/ClassFileToJavaSyntaxProcessor.java @@ -30,7 +30,7 @@ public class ClassFileToJavaSyntaxProcessor implements Processor { public void process(DecompileContext decompileContext) throws Exception { Loader loader = decompileContext.getHeader("loader"); - Map configuration = decompileContext.getHeader("configuration"); + Map configuration = decompileContext.getConfiguration(); if (configuration == null) { decompileContext.setHeader("typeMaker", new TypeMaker(loader)); diff --git a/src/main/java/org/jd/core/v1/service/layouter/LayoutFragmentProcessor.java b/src/main/java/org/jd/core/v1/service/layouter/LayoutFragmentProcessor.java index 885e298a..21830018 100644 --- a/src/main/java/org/jd/core/v1/service/layouter/LayoutFragmentProcessor.java +++ b/src/main/java/org/jd/core/v1/service/layouter/LayoutFragmentProcessor.java @@ -36,7 +36,7 @@ public void process(DecompileContext decompileContext) throws Exception { int maxLineNumber = decompileContext.getHeader("maxLineNumber", UNKNOWN_LINE_NUMBER); boolean containsByteCode = decompileContext.getHeader("containsByteCode", Boolean.FALSE); boolean showBridgeAndSynthetic = decompileContext.getHeader("showBridgeAndSynthetic", Boolean.FALSE); - Map configuration = decompileContext.getHeader("configuration"); + Map configuration = decompileContext.getConfiguration(); Object realignLineNumbersConfiguration = (configuration == null) ? "false" : configuration.get("realignLineNumbers"); boolean realignLineNumbers = (realignLineNumbersConfiguration == null) ? false : "true".equals(realignLineNumbersConfiguration.toString()); diff --git a/src/test/java/org/jd/core/v1/CfrTest.java b/src/test/java/org/jd/core/v1/CfrTest.java index f785e593..4165a53c 100644 --- a/src/test/java/org/jd/core/v1/CfrTest.java +++ b/src/test/java/org/jd/core/v1/CfrTest.java @@ -82,7 +82,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa decompileContext.setHeader("loader", loader); decompileContext.setHeader("printer", printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); converter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JarFileToJavaSourceTest.java b/src/test/java/org/jd/core/v1/JarFileToJavaSourceTest.java index e8a7f16f..4d5b4984 100644 --- a/src/test/java/org/jd/core/v1/JarFileToJavaSourceTest.java +++ b/src/test/java/org/jd/core/v1/JarFileToJavaSourceTest.java @@ -149,7 +149,7 @@ protected void test(InputStream inputStream) throws Exception { DecompileContext decompileContext = new DecompileContext(); decompileContext.setHeader("loader", loader); decompileContext.setHeader("printer", printer); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); long time0 = System.currentTimeMillis(); diff --git a/src/test/java/org/jd/core/v1/Java9InterfaceTest.java b/src/test/java/org/jd/core/v1/Java9InterfaceTest.java index 53d257ff..f7c00937 100644 --- a/src/test/java/org/jd/core/v1/Java9InterfaceTest.java +++ b/src/test/java/org/jd/core/v1/Java9InterfaceTest.java @@ -80,7 +80,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa decompileContext.setHeader("loader", loader); decompileContext.setHeader("printer", printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); converter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaAnnotationTest.java b/src/test/java/org/jd/core/v1/JavaAnnotationTest.java index 885ed9b9..70ef1c9a 100644 --- a/src/test/java/org/jd/core/v1/JavaAnnotationTest.java +++ b/src/test/java/org/jd/core/v1/JavaAnnotationTest.java @@ -119,7 +119,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa decompileContext.setHeader("loader", loader); decompileContext.setHeader("printer", printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); converter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaAnonymousClassTest.java b/src/test/java/org/jd/core/v1/JavaAnonymousClassTest.java index bad9727a..360f4367 100644 --- a/src/test/java/org/jd/core/v1/JavaAnonymousClassTest.java +++ b/src/test/java/org/jd/core/v1/JavaAnonymousClassTest.java @@ -127,7 +127,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa decompileContext.setHeader("loader", loader); decompileContext.setHeader("printer", printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); converter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaArrayTest.java b/src/test/java/org/jd/core/v1/JavaArrayTest.java index 6076812d..607f9705 100644 --- a/src/test/java/org/jd/core/v1/JavaArrayTest.java +++ b/src/test/java/org/jd/core/v1/JavaArrayTest.java @@ -137,7 +137,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa decompileContext.setHeader("loader", loader); decompileContext.setHeader("printer", printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); converter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaAssertTest.java b/src/test/java/org/jd/core/v1/JavaAssertTest.java index 0774cf04..09eb5075 100644 --- a/src/test/java/org/jd/core/v1/JavaAssertTest.java +++ b/src/test/java/org/jd/core/v1/JavaAssertTest.java @@ -88,7 +88,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa decompileContext.setHeader("loader", loader); decompileContext.setHeader("printer", printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); converter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaAutoboxingTest.java b/src/test/java/org/jd/core/v1/JavaAutoboxingTest.java index 14af4ebc..49f4367a 100644 --- a/src/test/java/org/jd/core/v1/JavaAutoboxingTest.java +++ b/src/test/java/org/jd/core/v1/JavaAutoboxingTest.java @@ -66,7 +66,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa decompileContext.setHeader("loader", loader); decompileContext.setHeader("printer", printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); converter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaBasicTest.java b/src/test/java/org/jd/core/v1/JavaBasicTest.java index 4d5dc612..419f6995 100644 --- a/src/test/java/org/jd/core/v1/JavaBasicTest.java +++ b/src/test/java/org/jd/core/v1/JavaBasicTest.java @@ -285,7 +285,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa decompileContext.setHeader("loader", loader); decompileContext.setHeader("printer", printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); converter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaEnumTest.java b/src/test/java/org/jd/core/v1/JavaEnumTest.java index e106ae4b..b3da5f9c 100644 --- a/src/test/java/org/jd/core/v1/JavaEnumTest.java +++ b/src/test/java/org/jd/core/v1/JavaEnumTest.java @@ -136,7 +136,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa decompileContext.setHeader("loader", loader); decompileContext.setHeader("printer", printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); converter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaFragmentToTokenTest.java b/src/test/java/org/jd/core/v1/JavaFragmentToTokenTest.java index b260062a..1cdb0d36 100644 --- a/src/test/java/org/jd/core/v1/JavaFragmentToTokenTest.java +++ b/src/test/java/org/jd/core/v1/JavaFragmentToTokenTest.java @@ -80,7 +80,7 @@ public void testIfReturn_1_3() throws Exception { Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); decompileContext.setHeader("printer", printer); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 3); decompileContext.setHeader("majorVersion", 0); decompileContext.setHeader("minorVersion", 0); @@ -105,7 +105,7 @@ public void testIfReturn_1_4() throws Exception { Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); decompileContext.setHeader("printer", printer); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 4); decompileContext.setHeader("majorVersion", 0); decompileContext.setHeader("minorVersion", 0); @@ -151,7 +151,7 @@ public void testIfAssignation_1_2_3() throws Exception { Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); decompileContext.setHeader("printer", printer); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 3); decompileContext.setHeader("majorVersion", 0); decompileContext.setHeader("minorVersion", 0); @@ -177,7 +177,7 @@ public void testIfAssignation_1_3_5() throws Exception { Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); decompileContext.setHeader("printer", printer); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 5); decompileContext.setHeader("majorVersion", 0); decompileContext.setHeader("minorVersion", 0); @@ -245,7 +245,7 @@ public void testClassAndFieldDeclaration_1() throws Exception { Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); decompileContext.setHeader("printer", printer); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 1); decompileContext.setHeader("majorVersion", 0); decompileContext.setHeader("minorVersion", 0); @@ -269,7 +269,7 @@ public void testClassAndFieldDeclaration_2() throws Exception { Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); decompileContext.setHeader("printer", printer); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 2); decompileContext.setHeader("majorVersion", 0); decompileContext.setHeader("minorVersion", 0); @@ -293,7 +293,7 @@ public void testClassAndFieldDeclaration_3() throws Exception { Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); decompileContext.setHeader("printer", printer); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 3); decompileContext.setHeader("majorVersion", 0); decompileContext.setHeader("minorVersion", 0); @@ -319,7 +319,7 @@ public void testClassAndFieldDeclaration_4() throws Exception { Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); decompileContext.setHeader("printer", printer); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 4); decompileContext.setHeader("majorVersion", 0); decompileContext.setHeader("minorVersion", 0); @@ -345,7 +345,7 @@ public void testClassAndFieldDeclaration_5() throws Exception { Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); decompileContext.setHeader("printer", printer); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 5); decompileContext.setHeader("majorVersion", 0); decompileContext.setHeader("minorVersion", 0); @@ -370,7 +370,7 @@ public void testClassAndFieldDeclaration_6() throws Exception { Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); decompileContext.setHeader("printer", printer); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 6); decompileContext.setHeader("majorVersion", 0); decompileContext.setHeader("minorVersion", 0); @@ -421,7 +421,7 @@ public void testClassAndFieldDeclaration_8() throws Exception { Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); decompileContext.setHeader("printer", printer); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 8); decompileContext.setHeader("majorVersion", 0); decompileContext.setHeader("minorVersion", 0); @@ -448,7 +448,7 @@ public void testClassAndFieldDeclaration_9() throws Exception { Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); decompileContext.setHeader("printer", printer); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 9); decompileContext.setHeader("majorVersion", 0); decompileContext.setHeader("minorVersion", 0); @@ -476,7 +476,7 @@ public void testClassAndFieldDeclaration_10() throws Exception { Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); decompileContext.setHeader("printer", printer); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 10); decompileContext.setHeader("majorVersion", 0); decompileContext.setHeader("minorVersion", 0); @@ -503,7 +503,7 @@ public void testClassAndMethodDeclaration_3() throws Exception { Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); decompileContext.setHeader("printer", printer); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 3); decompileContext.setHeader("majorVersion", 0); decompileContext.setHeader("minorVersion", 0); @@ -528,7 +528,7 @@ public void testClassAndMethodDeclaration_4() throws Exception { Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); decompileContext.setHeader("printer", printer); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 4); decompileContext.setHeader("majorVersion", 0); decompileContext.setHeader("minorVersion", 0); @@ -578,7 +578,7 @@ public void testClassAndMethodDeclaration_9() throws Exception { Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); decompileContext.setHeader("printer", printer); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 9); decompileContext.setHeader("majorVersion", 0); decompileContext.setHeader("minorVersion", 0); @@ -606,7 +606,7 @@ public void testClassAndMethodDeclaration_10() throws Exception { Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); decompileContext.setHeader("printer", printer); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 10); decompileContext.setHeader("majorVersion", 0); decompileContext.setHeader("minorVersion", 0); @@ -637,7 +637,7 @@ public void testClassAndMethodDeclaration_11() throws Exception { Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); decompileContext.setHeader("printer", printer); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 11); decompileContext.setHeader("majorVersion", 0); decompileContext.setHeader("minorVersion", 0); @@ -668,7 +668,7 @@ public void testClassAndMethodDeclaration_12() throws Exception { Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); decompileContext.setHeader("printer", printer); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 12); decompileContext.setHeader("majorVersion", 0); decompileContext.setHeader("minorVersion", 0); @@ -699,7 +699,7 @@ public void testClassAndMethodDeclaration_14() throws Exception { Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); decompileContext.setHeader("printer", printer); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 14); decompileContext.setHeader("majorVersion", 0); decompileContext.setHeader("minorVersion", 0); @@ -771,7 +771,7 @@ public void testLayoutWithStretchedfFragments_2() throws Exception { Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); decompileContext.setHeader("printer", printer); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 44); decompileContext.setHeader("majorVersion", 0); decompileContext.setHeader("minorVersion", 0); @@ -794,7 +794,7 @@ public void testLayoutWithStretchedfFragments_3() throws Exception { Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); decompileContext.setHeader("printer", printer); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 66); decompileContext.setHeader("majorVersion", 0); decompileContext.setHeader("minorVersion", 0); @@ -817,7 +817,7 @@ public void testMoveDown() throws Exception { Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); decompileContext.setHeader("printer", printer); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 8); decompileContext.setHeader("majorVersion", 0); decompileContext.setHeader("minorVersion", 0); @@ -840,7 +840,7 @@ public void testLinkedBlocks_16() throws Exception { Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); decompileContext.setHeader("printer", printer); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 16); decompileContext.setHeader("majorVersion", 0); decompileContext.setHeader("minorVersion", 0); @@ -863,7 +863,7 @@ public void testLinkedBlocks_22() throws Exception { Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); decompileContext.setHeader("printer", printer); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 22); decompileContext.setHeader("majorVersion", 0); decompileContext.setHeader("minorVersion", 0); diff --git a/src/test/java/org/jd/core/v1/JavaGenericTest.java b/src/test/java/org/jd/core/v1/JavaGenericTest.java index f9bf4a0c..e45b216c 100644 --- a/src/test/java/org/jd/core/v1/JavaGenericTest.java +++ b/src/test/java/org/jd/core/v1/JavaGenericTest.java @@ -81,7 +81,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa decompileContext.setHeader("loader", loader); decompileContext.setHeader("printer", printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); converter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaIfElseTest.java b/src/test/java/org/jd/core/v1/JavaIfElseTest.java index e17d5b1f..d5b51666 100644 --- a/src/test/java/org/jd/core/v1/JavaIfElseTest.java +++ b/src/test/java/org/jd/core/v1/JavaIfElseTest.java @@ -88,7 +88,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa decompileContext.setHeader("loader", loader); decompileContext.setHeader("printer", printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); converter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaInnerOuterClassTest.java b/src/test/java/org/jd/core/v1/JavaInnerOuterClassTest.java index a7edbae4..b45b26f1 100644 --- a/src/test/java/org/jd/core/v1/JavaInnerOuterClassTest.java +++ b/src/test/java/org/jd/core/v1/JavaInnerOuterClassTest.java @@ -111,7 +111,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa decompileContext.setHeader("loader", loader); decompileContext.setHeader("printer", printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); converter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaLambdaTest.java b/src/test/java/org/jd/core/v1/JavaLambdaTest.java index d3bc1534..b2c51b66 100644 --- a/src/test/java/org/jd/core/v1/JavaLambdaTest.java +++ b/src/test/java/org/jd/core/v1/JavaLambdaTest.java @@ -75,7 +75,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa decompileContext.setHeader("loader", loader); decompileContext.setHeader("printer", printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); converter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaLoopTest.java b/src/test/java/org/jd/core/v1/JavaLoopTest.java index 76095e2a..ef8512fe 100644 --- a/src/test/java/org/jd/core/v1/JavaLoopTest.java +++ b/src/test/java/org/jd/core/v1/JavaLoopTest.java @@ -397,7 +397,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa decompileContext.setHeader("loader", loader); decompileContext.setHeader("printer", printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); converter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaMethodOverloadingTest.java b/src/test/java/org/jd/core/v1/JavaMethodOverloadingTest.java index 2c3ebde7..59e03222 100644 --- a/src/test/java/org/jd/core/v1/JavaMethodOverloadingTest.java +++ b/src/test/java/org/jd/core/v1/JavaMethodOverloadingTest.java @@ -107,7 +107,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa decompileContext.setHeader("loader", loader); decompileContext.setHeader("printer", printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); converter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaOperatorPrecedenceTest.java b/src/test/java/org/jd/core/v1/JavaOperatorPrecedenceTest.java index 1048206c..4d3bdb22 100644 --- a/src/test/java/org/jd/core/v1/JavaOperatorPrecedenceTest.java +++ b/src/test/java/org/jd/core/v1/JavaOperatorPrecedenceTest.java @@ -64,7 +64,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa decompileContext.setHeader("loader", loader); decompileContext.setHeader("printer", printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); converter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaSwitchTest.java b/src/test/java/org/jd/core/v1/JavaSwitchTest.java index b2766b19..a18c9442 100644 --- a/src/test/java/org/jd/core/v1/JavaSwitchTest.java +++ b/src/test/java/org/jd/core/v1/JavaSwitchTest.java @@ -176,7 +176,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa decompileContext.setHeader("loader", loader); decompileContext.setHeader("printer", printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); converter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaSynchronizedBlockTest.java b/src/test/java/org/jd/core/v1/JavaSynchronizedBlockTest.java index 7d61e997..ba8ec5be 100644 --- a/src/test/java/org/jd/core/v1/JavaSynchronizedBlockTest.java +++ b/src/test/java/org/jd/core/v1/JavaSynchronizedBlockTest.java @@ -77,7 +77,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa decompileContext.setHeader("loader", loader); decompileContext.setHeader("printer", printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); converter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java b/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java index ff97f933..545d8f1c 100644 --- a/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java +++ b/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java @@ -145,7 +145,7 @@ public void testClassDeclaration() throws Exception { decompileContext.setHeader("mainInternalTypeName", "org/jd/core/v1/service/test/TokenWriterTest"); decompileContext.setHeader("loader", new NopLoader()); decompileContext.setHeader("printer", printer); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 22); decompileContext.setHeader("majorVersion", 0); decompileContext.setHeader("minorVersion", 0); diff --git a/src/test/java/org/jd/core/v1/JavaTernaryOperatorTest.java b/src/test/java/org/jd/core/v1/JavaTernaryOperatorTest.java index 651946d7..295bb67e 100644 --- a/src/test/java/org/jd/core/v1/JavaTernaryOperatorTest.java +++ b/src/test/java/org/jd/core/v1/JavaTernaryOperatorTest.java @@ -97,7 +97,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa decompileContext.setHeader("loader", loader); decompileContext.setHeader("printer", printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); converter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaTryCatchFinallyTest.java b/src/test/java/org/jd/core/v1/JavaTryCatchFinallyTest.java index 043144ce..dd54b572 100644 --- a/src/test/java/org/jd/core/v1/JavaTryCatchFinallyTest.java +++ b/src/test/java/org/jd/core/v1/JavaTryCatchFinallyTest.java @@ -348,7 +348,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa decompileContext.setHeader("loader", loader); decompileContext.setHeader("printer", printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); converter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/LayoutFragmentProcessorTest.java b/src/test/java/org/jd/core/v1/LayoutFragmentProcessorTest.java index 2dcc1542..3bf449e4 100644 --- a/src/test/java/org/jd/core/v1/LayoutFragmentProcessorTest.java +++ b/src/test/java/org/jd/core/v1/LayoutFragmentProcessorTest.java @@ -47,7 +47,7 @@ public void testJdk118Basic() throws Exception { decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/Basic"); decompileContext.setHeader("loader", loader); decompileContext.setHeader("printer", printer); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); converter.process(decompileContext); @@ -75,7 +75,7 @@ public void testJdk131TryCatchFinally() throws Exception { decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/TryCatchFinally"); decompileContext.setHeader("loader", loader); decompileContext.setHeader("printer", printer); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); converter.process(decompileContext); @@ -103,7 +103,7 @@ public void testTryCatchFinally() throws Exception { decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/TryCatchFinally"); decompileContext.setHeader("loader", loader); decompileContext.setHeader("printer", printer); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); converter.process(decompileContext); @@ -131,7 +131,7 @@ public void testAnonymousClass() throws Exception { decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/AnonymousClass"); decompileContext.setHeader("loader", loader); decompileContext.setHeader("printer", printer); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); converter.process(decompileContext); @@ -161,7 +161,7 @@ public void testOuterClass() throws Exception { decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/OuterClass"); decompileContext.setHeader("loader", loader); decompileContext.setHeader("printer", printer); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); converter.process(decompileContext); @@ -220,7 +220,7 @@ public void testAnnotationQuality() throws Exception { decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/annotation/Quality"); decompileContext.setHeader("loader", loader); decompileContext.setHeader("printer", printer); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); converter.process(decompileContext); @@ -250,7 +250,7 @@ public void testJdk170Array() throws Exception { decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/Array"); decompileContext.setHeader("loader", loader); decompileContext.setHeader("printer", printer); - decompileContext.setHeader("configuration", configuration); + decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); converter.process(decompileContext); From 6e2bf530268001a96db24794040e9d756eccc88f Mon Sep 17 00:00:00 2001 From: Yushan Gao Date: Fri, 27 Nov 2020 22:00:40 +0800 Subject: [PATCH 05/28] Refactor: move load into context as field --- .../core/v1/ClassFileToJavaSourceDecompiler.java | 4 ++-- .../core/v1/model/message/DecompileContext.java | 2 ++ .../ClassFileToJavaSyntaxProcessor.java | 2 +- .../classfile/DeserializeClassFileProcessor.java | 2 +- .../JavaSyntaxToJavaFragmentProcessor.java | 2 +- .../org/jd/core/v1/AnnotationConverterTest.java | 2 +- src/test/java/org/jd/core/v1/CfrTest.java | 2 +- .../jd/core/v1/ClassFileDeserializerTest.java | 2 +- .../org/jd/core/v1/ControlFlowGraphTest.java | 2 +- .../org/jd/core/v1/JarFileToJavaSourceTest.java | 2 +- .../java/org/jd/core/v1/Java9InterfaceTest.java | 2 +- .../java/org/jd/core/v1/JavaAnnotationTest.java | 2 +- .../org/jd/core/v1/JavaAnonymousClassTest.java | 2 +- src/test/java/org/jd/core/v1/JavaArrayTest.java | 2 +- src/test/java/org/jd/core/v1/JavaAssertTest.java | 2 +- .../java/org/jd/core/v1/JavaAutoboxingTest.java | 2 +- src/test/java/org/jd/core/v1/JavaBasicTest.java | 2 +- src/test/java/org/jd/core/v1/JavaEnumTest.java | 2 +- .../java/org/jd/core/v1/JavaGenericTest.java | 2 +- src/test/java/org/jd/core/v1/JavaIfElseTest.java | 2 +- .../org/jd/core/v1/JavaInnerOuterClassTest.java | 2 +- src/test/java/org/jd/core/v1/JavaLambdaTest.java | 2 +- src/test/java/org/jd/core/v1/JavaLoopTest.java | 2 +- .../jd/core/v1/JavaMethodOverloadingTest.java | 2 +- .../jd/core/v1/JavaOperatorPrecedenceTest.java | 2 +- src/test/java/org/jd/core/v1/JavaSwitchTest.java | 2 +- .../jd/core/v1/JavaSynchronizedBlockTest.java | 2 +- .../jd/core/v1/JavaSyntaxToJavaSourceTest.java | 12 ++++++------ .../org/jd/core/v1/JavaTernaryOperatorTest.java | 2 +- .../org/jd/core/v1/JavaTryCatchFinallyTest.java | 2 +- .../jd/core/v1/LayoutFragmentProcessorTest.java | 16 ++++++++-------- .../java/org/jd/core/v1/SignatureParserTest.java | 4 ++-- 32 files changed, 47 insertions(+), 45 deletions(-) diff --git a/src/main/java/org/jd/core/v1/ClassFileToJavaSourceDecompiler.java b/src/main/java/org/jd/core/v1/ClassFileToJavaSourceDecompiler.java index 151ce796..6d3dde6c 100644 --- a/src/main/java/org/jd/core/v1/ClassFileToJavaSourceDecompiler.java +++ b/src/main/java/org/jd/core/v1/ClassFileToJavaSourceDecompiler.java @@ -32,7 +32,7 @@ public void decompile(Loader loader, Printer printer, String internalName) throw DecompileContext decompileContext = new DecompileContext(); decompileContext.setMainInternalTypeName(internalName); - decompileContext.setHeader("loader", loader); + decompileContext.setLoader(loader); decompileContext.setHeader("printer", printer); decompile(decompileContext); @@ -43,7 +43,7 @@ public void decompile(Loader loader, Printer printer, String internalName, Map configuration = new HashMap<>(); + protected Loader loader; @Deprecated protected HashMap headers = new HashMap<>(); diff --git a/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/ClassFileToJavaSyntaxProcessor.java b/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/ClassFileToJavaSyntaxProcessor.java index b4904807..c5dda984 100644 --- a/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/ClassFileToJavaSyntaxProcessor.java +++ b/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/ClassFileToJavaSyntaxProcessor.java @@ -29,7 +29,7 @@ public class ClassFileToJavaSyntaxProcessor implements Processor { protected static final UpdateJavaSyntaxTreeProcessor UPDATE_JAVA_SYNTAX_TREE_PROCESSOR = new UpdateJavaSyntaxTreeProcessor(); public void process(DecompileContext decompileContext) throws Exception { - Loader loader = decompileContext.getHeader("loader"); + Loader loader = decompileContext.getLoader(); Map configuration = decompileContext.getConfiguration(); if (configuration == null) { diff --git a/src/main/java/org/jd/core/v1/service/deserializer/classfile/DeserializeClassFileProcessor.java b/src/main/java/org/jd/core/v1/service/deserializer/classfile/DeserializeClassFileProcessor.java index 985acbbd..72637467 100644 --- a/src/main/java/org/jd/core/v1/service/deserializer/classfile/DeserializeClassFileProcessor.java +++ b/src/main/java/org/jd/core/v1/service/deserializer/classfile/DeserializeClassFileProcessor.java @@ -22,7 +22,7 @@ public class DeserializeClassFileProcessor extends ClassFileDeserializer impleme @Override public void process(DecompileContext decompileContext) throws Exception { - Loader loader = decompileContext.getHeader("loader"); + Loader loader = decompileContext.getLoader(); String internalTypeName = decompileContext.getMainInternalTypeName(); ClassFile classFile = loadClassFile(loader, internalTypeName); diff --git a/src/main/java/org/jd/core/v1/service/fragmenter/javasyntaxtojavafragment/JavaSyntaxToJavaFragmentProcessor.java b/src/main/java/org/jd/core/v1/service/fragmenter/javasyntaxtojavafragment/JavaSyntaxToJavaFragmentProcessor.java index b6ead5c8..8170f1e8 100644 --- a/src/main/java/org/jd/core/v1/service/fragmenter/javasyntaxtojavafragment/JavaSyntaxToJavaFragmentProcessor.java +++ b/src/main/java/org/jd/core/v1/service/fragmenter/javasyntaxtojavafragment/JavaSyntaxToJavaFragmentProcessor.java @@ -24,7 +24,7 @@ public class JavaSyntaxToJavaFragmentProcessor implements Processor { public void process(DecompileContext decompileContext) throws Exception { - Loader loader = decompileContext.getHeader("loader"); + Loader loader = decompileContext.getLoader(); String mainInternalTypeName = decompileContext.getMainInternalTypeName(); int majorVersion = decompileContext.getHeader("majorVersion"); CompilationUnit compilationUnit = decompileContext.getBody(); diff --git a/src/test/java/org/jd/core/v1/AnnotationConverterTest.java b/src/test/java/org/jd/core/v1/AnnotationConverterTest.java index 0886042a..9be340a6 100644 --- a/src/test/java/org/jd/core/v1/AnnotationConverterTest.java +++ b/src/test/java/org/jd/core/v1/AnnotationConverterTest.java @@ -33,7 +33,7 @@ public void test() throws Exception { DecompileContext decompileContext = new DecompileContext(); decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/AnnotatedClass"); - decompileContext.setHeader("loader", loader); + decompileContext.setLoader(loader); deserializer.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/CfrTest.java b/src/test/java/org/jd/core/v1/CfrTest.java index 4165a53c..61155d0f 100644 --- a/src/test/java/org/jd/core/v1/CfrTest.java +++ b/src/test/java/org/jd/core/v1/CfrTest.java @@ -79,7 +79,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { DecompileContext decompileContext = new DecompileContext(); - decompileContext.setHeader("loader", loader); + decompileContext.setLoader(loader); decompileContext.setHeader("printer", printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); decompileContext.setConfiguration(configuration); diff --git a/src/test/java/org/jd/core/v1/ClassFileDeserializerTest.java b/src/test/java/org/jd/core/v1/ClassFileDeserializerTest.java index 20a40270..f829cff4 100644 --- a/src/test/java/org/jd/core/v1/ClassFileDeserializerTest.java +++ b/src/test/java/org/jd/core/v1/ClassFileDeserializerTest.java @@ -59,7 +59,7 @@ public void testAnnotatedClass() throws Exception { DecompileContext decompileContext = new DecompileContext(); decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/AnnotatedClass"); - decompileContext.setHeader("loader", loader); + decompileContext.setLoader(loader); deserializer.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/ControlFlowGraphTest.java b/src/test/java/org/jd/core/v1/ControlFlowGraphTest.java index 0e828934..a0282e18 100644 --- a/src/test/java/org/jd/core/v1/ControlFlowGraphTest.java +++ b/src/test/java/org/jd/core/v1/ControlFlowGraphTest.java @@ -2653,7 +2653,7 @@ protected Method searchMethod(InputStream is, String internalTypeName, String me protected Method searchMethod(Loader loader, TypeMaker typeMaker, String internalTypeName, String methodName, String methodDescriptor) throws Exception { DecompileContext decompileContext = new DecompileContext(); decompileContext.setHeader("mainInternalTypeName", internalTypeName); - decompileContext.setHeader("loader", loader); + decompileContext.setLoader(loader); decompileContext.setHeader("typeMaker", typeMaker); deserializer.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JarFileToJavaSourceTest.java b/src/test/java/org/jd/core/v1/JarFileToJavaSourceTest.java index 4d5b4984..0fb1101c 100644 --- a/src/test/java/org/jd/core/v1/JarFileToJavaSourceTest.java +++ b/src/test/java/org/jd/core/v1/JarFileToJavaSourceTest.java @@ -147,7 +147,7 @@ protected void test(InputStream inputStream) throws Exception { configuration.put("realignLineNumbers", Boolean.TRUE); DecompileContext decompileContext = new DecompileContext(); - decompileContext.setHeader("loader", loader); + decompileContext.setLoader(loader); decompileContext.setHeader("printer", printer); decompileContext.setConfiguration(configuration); diff --git a/src/test/java/org/jd/core/v1/Java9InterfaceTest.java b/src/test/java/org/jd/core/v1/Java9InterfaceTest.java index f7c00937..3a13ebe0 100644 --- a/src/test/java/org/jd/core/v1/Java9InterfaceTest.java +++ b/src/test/java/org/jd/core/v1/Java9InterfaceTest.java @@ -77,7 +77,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { DecompileContext decompileContext = new DecompileContext(); - decompileContext.setHeader("loader", loader); + decompileContext.setLoader(loader); decompileContext.setHeader("printer", printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); decompileContext.setConfiguration(configuration); diff --git a/src/test/java/org/jd/core/v1/JavaAnnotationTest.java b/src/test/java/org/jd/core/v1/JavaAnnotationTest.java index 70ef1c9a..93967f8a 100644 --- a/src/test/java/org/jd/core/v1/JavaAnnotationTest.java +++ b/src/test/java/org/jd/core/v1/JavaAnnotationTest.java @@ -116,7 +116,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { DecompileContext decompileContext = new DecompileContext(); - decompileContext.setHeader("loader", loader); + decompileContext.setLoader(loader); decompileContext.setHeader("printer", printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); decompileContext.setConfiguration(configuration); diff --git a/src/test/java/org/jd/core/v1/JavaAnonymousClassTest.java b/src/test/java/org/jd/core/v1/JavaAnonymousClassTest.java index 360f4367..109d9288 100644 --- a/src/test/java/org/jd/core/v1/JavaAnonymousClassTest.java +++ b/src/test/java/org/jd/core/v1/JavaAnonymousClassTest.java @@ -124,7 +124,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { DecompileContext decompileContext = new DecompileContext(); - decompileContext.setHeader("loader", loader); + decompileContext.setLoader(loader); decompileContext.setHeader("printer", printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); decompileContext.setConfiguration(configuration); diff --git a/src/test/java/org/jd/core/v1/JavaArrayTest.java b/src/test/java/org/jd/core/v1/JavaArrayTest.java index 607f9705..22a54a5e 100644 --- a/src/test/java/org/jd/core/v1/JavaArrayTest.java +++ b/src/test/java/org/jd/core/v1/JavaArrayTest.java @@ -134,7 +134,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { DecompileContext decompileContext = new DecompileContext(); - decompileContext.setHeader("loader", loader); + decompileContext.setLoader(loader); decompileContext.setHeader("printer", printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); decompileContext.setConfiguration(configuration); diff --git a/src/test/java/org/jd/core/v1/JavaAssertTest.java b/src/test/java/org/jd/core/v1/JavaAssertTest.java index 09eb5075..151c0b38 100644 --- a/src/test/java/org/jd/core/v1/JavaAssertTest.java +++ b/src/test/java/org/jd/core/v1/JavaAssertTest.java @@ -85,7 +85,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { DecompileContext decompileContext = new DecompileContext(); - decompileContext.setHeader("loader", loader); + decompileContext.setLoader(loader); decompileContext.setHeader("printer", printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); decompileContext.setConfiguration(configuration); diff --git a/src/test/java/org/jd/core/v1/JavaAutoboxingTest.java b/src/test/java/org/jd/core/v1/JavaAutoboxingTest.java index 49f4367a..f963a398 100644 --- a/src/test/java/org/jd/core/v1/JavaAutoboxingTest.java +++ b/src/test/java/org/jd/core/v1/JavaAutoboxingTest.java @@ -63,7 +63,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { DecompileContext decompileContext = new DecompileContext(); - decompileContext.setHeader("loader", loader); + decompileContext.setLoader(loader); decompileContext.setHeader("printer", printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); decompileContext.setConfiguration(configuration); diff --git a/src/test/java/org/jd/core/v1/JavaBasicTest.java b/src/test/java/org/jd/core/v1/JavaBasicTest.java index 419f6995..b81c84be 100644 --- a/src/test/java/org/jd/core/v1/JavaBasicTest.java +++ b/src/test/java/org/jd/core/v1/JavaBasicTest.java @@ -282,7 +282,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { DecompileContext decompileContext = new DecompileContext(); - decompileContext.setHeader("loader", loader); + decompileContext.setLoader(loader); decompileContext.setHeader("printer", printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); decompileContext.setConfiguration(configuration); diff --git a/src/test/java/org/jd/core/v1/JavaEnumTest.java b/src/test/java/org/jd/core/v1/JavaEnumTest.java index b3da5f9c..6fd7c5fa 100644 --- a/src/test/java/org/jd/core/v1/JavaEnumTest.java +++ b/src/test/java/org/jd/core/v1/JavaEnumTest.java @@ -133,7 +133,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { DecompileContext decompileContext = new DecompileContext(); - decompileContext.setHeader("loader", loader); + decompileContext.setLoader(loader); decompileContext.setHeader("printer", printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); decompileContext.setConfiguration(configuration); diff --git a/src/test/java/org/jd/core/v1/JavaGenericTest.java b/src/test/java/org/jd/core/v1/JavaGenericTest.java index e45b216c..6d2cbaaa 100644 --- a/src/test/java/org/jd/core/v1/JavaGenericTest.java +++ b/src/test/java/org/jd/core/v1/JavaGenericTest.java @@ -78,7 +78,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { DecompileContext decompileContext = new DecompileContext(); - decompileContext.setHeader("loader", loader); + decompileContext.setLoader(loader); decompileContext.setHeader("printer", printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); decompileContext.setConfiguration(configuration); diff --git a/src/test/java/org/jd/core/v1/JavaIfElseTest.java b/src/test/java/org/jd/core/v1/JavaIfElseTest.java index d5b51666..56fd2c37 100644 --- a/src/test/java/org/jd/core/v1/JavaIfElseTest.java +++ b/src/test/java/org/jd/core/v1/JavaIfElseTest.java @@ -85,7 +85,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { DecompileContext decompileContext = new DecompileContext(); - decompileContext.setHeader("loader", loader); + decompileContext.setLoader(loader); decompileContext.setHeader("printer", printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); decompileContext.setConfiguration(configuration); diff --git a/src/test/java/org/jd/core/v1/JavaInnerOuterClassTest.java b/src/test/java/org/jd/core/v1/JavaInnerOuterClassTest.java index b45b26f1..9e3f8e0d 100644 --- a/src/test/java/org/jd/core/v1/JavaInnerOuterClassTest.java +++ b/src/test/java/org/jd/core/v1/JavaInnerOuterClassTest.java @@ -108,7 +108,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { DecompileContext decompileContext = new DecompileContext(); - decompileContext.setHeader("loader", loader); + decompileContext.setLoader(loader); decompileContext.setHeader("printer", printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); decompileContext.setConfiguration(configuration); diff --git a/src/test/java/org/jd/core/v1/JavaLambdaTest.java b/src/test/java/org/jd/core/v1/JavaLambdaTest.java index b2c51b66..40309a6e 100644 --- a/src/test/java/org/jd/core/v1/JavaLambdaTest.java +++ b/src/test/java/org/jd/core/v1/JavaLambdaTest.java @@ -72,7 +72,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { DecompileContext decompileContext = new DecompileContext(); - decompileContext.setHeader("loader", loader); + decompileContext.setLoader(loader); decompileContext.setHeader("printer", printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); decompileContext.setConfiguration(configuration); diff --git a/src/test/java/org/jd/core/v1/JavaLoopTest.java b/src/test/java/org/jd/core/v1/JavaLoopTest.java index ef8512fe..101a86c2 100644 --- a/src/test/java/org/jd/core/v1/JavaLoopTest.java +++ b/src/test/java/org/jd/core/v1/JavaLoopTest.java @@ -394,7 +394,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { DecompileContext decompileContext = new DecompileContext(); - decompileContext.setHeader("loader", loader); + decompileContext.setLoader(loader); decompileContext.setHeader("printer", printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); decompileContext.setConfiguration(configuration); diff --git a/src/test/java/org/jd/core/v1/JavaMethodOverloadingTest.java b/src/test/java/org/jd/core/v1/JavaMethodOverloadingTest.java index 59e03222..0006bd1b 100644 --- a/src/test/java/org/jd/core/v1/JavaMethodOverloadingTest.java +++ b/src/test/java/org/jd/core/v1/JavaMethodOverloadingTest.java @@ -104,7 +104,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { DecompileContext decompileContext = new DecompileContext(); - decompileContext.setHeader("loader", loader); + decompileContext.setLoader(loader); decompileContext.setHeader("printer", printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); decompileContext.setConfiguration(configuration); diff --git a/src/test/java/org/jd/core/v1/JavaOperatorPrecedenceTest.java b/src/test/java/org/jd/core/v1/JavaOperatorPrecedenceTest.java index 4d3bdb22..95248f02 100644 --- a/src/test/java/org/jd/core/v1/JavaOperatorPrecedenceTest.java +++ b/src/test/java/org/jd/core/v1/JavaOperatorPrecedenceTest.java @@ -61,7 +61,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { DecompileContext decompileContext = new DecompileContext(); - decompileContext.setHeader("loader", loader); + decompileContext.setLoader(loader); decompileContext.setHeader("printer", printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); decompileContext.setConfiguration(configuration); diff --git a/src/test/java/org/jd/core/v1/JavaSwitchTest.java b/src/test/java/org/jd/core/v1/JavaSwitchTest.java index a18c9442..3fc10555 100644 --- a/src/test/java/org/jd/core/v1/JavaSwitchTest.java +++ b/src/test/java/org/jd/core/v1/JavaSwitchTest.java @@ -173,7 +173,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { DecompileContext decompileContext = new DecompileContext(); - decompileContext.setHeader("loader", loader); + decompileContext.setLoader(loader); decompileContext.setHeader("printer", printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); decompileContext.setConfiguration(configuration); diff --git a/src/test/java/org/jd/core/v1/JavaSynchronizedBlockTest.java b/src/test/java/org/jd/core/v1/JavaSynchronizedBlockTest.java index ba8ec5be..8950458d 100644 --- a/src/test/java/org/jd/core/v1/JavaSynchronizedBlockTest.java +++ b/src/test/java/org/jd/core/v1/JavaSynchronizedBlockTest.java @@ -74,7 +74,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { DecompileContext decompileContext = new DecompileContext(); - decompileContext.setHeader("loader", loader); + decompileContext.setLoader(loader); decompileContext.setHeader("printer", printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); decompileContext.setConfiguration(configuration); diff --git a/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java b/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java index 545d8f1c..c67cda39 100644 --- a/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java +++ b/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java @@ -143,7 +143,7 @@ public void testClassDeclaration() throws Exception { DecompileContext decompileContext = new DecompileContext(compilationUnit); decompileContext.setHeader("mainInternalTypeName", "org/jd/core/v1/service/test/TokenWriterTest"); - decompileContext.setHeader("loader", new NopLoader()); + decompileContext.setLoader(new NopLoader()); decompileContext.setHeader("printer", printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 22); @@ -184,7 +184,7 @@ public void testInterfaceDeclaration() throws Exception { DecompileContext decompileContext = new DecompileContext(compilationUnit); decompileContext.setHeader("mainInternalTypeName", "org/jd/core/v1/service/test/InterfaceTest"); - decompileContext.setHeader("loader", new NopLoader()); + decompileContext.setLoader(new NopLoader()); decompileContext.setHeader("printer", printer); decompileContext.setHeader("maxLineNumber", 0); decompileContext.setHeader("majorVersion", 49); @@ -234,7 +234,7 @@ public void testEnumDayDeclaration() throws Exception { DecompileContext decompileContext = new DecompileContext(compilationUnit); decompileContext.setHeader("mainInternalTypeName", "org/jd/core/v1/service/test/Day"); - decompileContext.setHeader("loader", new NopLoader()); + decompileContext.setLoader(new NopLoader()); decompileContext.setHeader("printer", printer); decompileContext.setHeader("maxLineNumber", 0); decompileContext.setHeader("majorVersion", 0); @@ -518,7 +518,7 @@ public void testEnumPlanetDeclaration() throws Exception { DecompileContext decompileContext = new DecompileContext(compilationUnit); decompileContext.setHeader("mainInternalTypeName", "org/jd/core/v1/service/test/Planet"); - decompileContext.setHeader("loader", new NopLoader()); + decompileContext.setLoader(new NopLoader()); decompileContext.setHeader("printer", printer); decompileContext.setHeader("maxLineNumber", 0); decompileContext.setHeader("majorVersion", 0); @@ -587,7 +587,7 @@ public void testSwitch() throws Exception { DecompileContext decompileContext = new DecompileContext(compilationUnit); decompileContext.setHeader("mainInternalTypeName", "org/jd/core/v1/service/test/SwitchTest"); - decompileContext.setHeader("loader", new NopLoader()); + decompileContext.setLoader(new NopLoader()); decompileContext.setHeader("printer", printer); decompileContext.setHeader("maxLineNumber", 0); decompileContext.setHeader("majorVersion", 0); @@ -643,7 +643,7 @@ public void testBridgeAndSyntheticAttributes() throws Exception { DecompileContext decompileContext = new DecompileContext(compilationUnit); decompileContext.setHeader("mainInternalTypeName", "org/jd/core/v1/service/test/SyntheticAttributeTest"); - decompileContext.setHeader("loader", new NopLoader()); + decompileContext.setLoader(new NopLoader()); decompileContext.setHeader("printer", printer); decompileContext.setHeader("maxLineNumber", 0); decompileContext.setHeader("majorVersion", 0); diff --git a/src/test/java/org/jd/core/v1/JavaTernaryOperatorTest.java b/src/test/java/org/jd/core/v1/JavaTernaryOperatorTest.java index 295bb67e..6f8bccac 100644 --- a/src/test/java/org/jd/core/v1/JavaTernaryOperatorTest.java +++ b/src/test/java/org/jd/core/v1/JavaTernaryOperatorTest.java @@ -94,7 +94,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { DecompileContext decompileContext = new DecompileContext(); - decompileContext.setHeader("loader", loader); + decompileContext.setLoader(loader); decompileContext.setHeader("printer", printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); decompileContext.setConfiguration(configuration); diff --git a/src/test/java/org/jd/core/v1/JavaTryCatchFinallyTest.java b/src/test/java/org/jd/core/v1/JavaTryCatchFinallyTest.java index dd54b572..04211809 100644 --- a/src/test/java/org/jd/core/v1/JavaTryCatchFinallyTest.java +++ b/src/test/java/org/jd/core/v1/JavaTryCatchFinallyTest.java @@ -345,7 +345,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { DecompileContext decompileContext = new DecompileContext(); - decompileContext.setHeader("loader", loader); + decompileContext.setLoader(loader); decompileContext.setHeader("printer", printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); decompileContext.setConfiguration(configuration); diff --git a/src/test/java/org/jd/core/v1/LayoutFragmentProcessorTest.java b/src/test/java/org/jd/core/v1/LayoutFragmentProcessorTest.java index 3bf449e4..9a2f1853 100644 --- a/src/test/java/org/jd/core/v1/LayoutFragmentProcessorTest.java +++ b/src/test/java/org/jd/core/v1/LayoutFragmentProcessorTest.java @@ -45,7 +45,7 @@ public void testJdk118Basic() throws Exception { DecompileContext decompileContext = new DecompileContext(); decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/Basic"); - decompileContext.setHeader("loader", loader); + decompileContext.setLoader(loader); decompileContext.setHeader("printer", printer); decompileContext.setConfiguration(configuration); @@ -73,7 +73,7 @@ public void testJdk131TryCatchFinally() throws Exception { DecompileContext decompileContext = new DecompileContext(); decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/TryCatchFinally"); - decompileContext.setHeader("loader", loader); + decompileContext.setLoader(loader); decompileContext.setHeader("printer", printer); decompileContext.setConfiguration(configuration); @@ -101,7 +101,7 @@ public void testTryCatchFinally() throws Exception { DecompileContext decompileContext = new DecompileContext(); decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/TryCatchFinally"); - decompileContext.setHeader("loader", loader); + decompileContext.setLoader(loader); decompileContext.setHeader("printer", printer); decompileContext.setConfiguration(configuration); @@ -129,7 +129,7 @@ public void testAnonymousClass() throws Exception { DecompileContext decompileContext = new DecompileContext(); decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/AnonymousClass"); - decompileContext.setHeader("loader", loader); + decompileContext.setLoader(loader); decompileContext.setHeader("printer", printer); decompileContext.setConfiguration(configuration); @@ -159,7 +159,7 @@ public void testOuterClass() throws Exception { DecompileContext decompileContext = new DecompileContext(); decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/OuterClass"); - decompileContext.setHeader("loader", loader); + decompileContext.setLoader(loader); decompileContext.setHeader("printer", printer); decompileContext.setConfiguration(configuration); @@ -188,7 +188,7 @@ public void testEnumClass() throws Exception { DecompileContext decompileContext = new DecompileContext(); decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/Enum"); - decompileContext.setHeader("loader", loader); + decompileContext.setLoader(loader); decompileContext.setHeader("printer", printer); deserializer.process(decompileContext); @@ -218,7 +218,7 @@ public void testAnnotationQuality() throws Exception { DecompileContext decompileContext = new DecompileContext(); decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/annotation/Quality"); - decompileContext.setHeader("loader", loader); + decompileContext.setLoader(loader); decompileContext.setHeader("printer", printer); decompileContext.setConfiguration(configuration); @@ -248,7 +248,7 @@ public void testJdk170Array() throws Exception { DecompileContext decompileContext = new DecompileContext(); decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/Array"); - decompileContext.setHeader("loader", loader); + decompileContext.setLoader(loader); decompileContext.setHeader("printer", printer); decompileContext.setConfiguration(configuration); diff --git a/src/test/java/org/jd/core/v1/SignatureParserTest.java b/src/test/java/org/jd/core/v1/SignatureParserTest.java index 32693178..edd8d698 100644 --- a/src/test/java/org/jd/core/v1/SignatureParserTest.java +++ b/src/test/java/org/jd/core/v1/SignatureParserTest.java @@ -33,7 +33,7 @@ public void testAnnotatedClass() throws Exception { DecompileContext decompileContext = new DecompileContext(); decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/AnnotatedClass"); - decompileContext.setHeader("loader", loader); + decompileContext.setLoader(loader); deserializer.process(decompileContext); @@ -151,7 +151,7 @@ public void testGenericClass() throws Exception { DecompileContext decompileContext = new DecompileContext(); decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/GenericClass"); - decompileContext.setHeader("loader", loader); + decompileContext.setLoader(loader); deserializer.process(decompileContext); From 8214afb16483d06188d95d9b03479de84d2e607a Mon Sep 17 00:00:00 2001 From: Yushan Gao Date: Fri, 27 Nov 2020 22:03:17 +0800 Subject: [PATCH 06/28] refactor: move printer into context as field --- .../v1/ClassFileToJavaSourceDecompiler.java | 4 +- .../v1/model/message/DecompileContext.java | 2 + .../service/writer/WriteTokenProcessor.java | 2 +- src/test/java/org/jd/core/v1/CfrTest.java | 2 +- .../jd/core/v1/JarFileToJavaSourceTest.java | 2 +- .../org/jd/core/v1/Java9InterfaceTest.java | 2 +- .../org/jd/core/v1/JavaAnnotationTest.java | 2 +- .../jd/core/v1/JavaAnonymousClassTest.java | 2 +- .../java/org/jd/core/v1/JavaArrayTest.java | 2 +- .../java/org/jd/core/v1/JavaAssertTest.java | 2 +- .../org/jd/core/v1/JavaAutoboxingTest.java | 2 +- .../java/org/jd/core/v1/JavaBasicTest.java | 2 +- .../java/org/jd/core/v1/JavaEnumTest.java | 2 +- .../jd/core/v1/JavaFragmentToTokenTest.java | 66 +++++++++---------- .../java/org/jd/core/v1/JavaGenericTest.java | 2 +- .../java/org/jd/core/v1/JavaIfElseTest.java | 2 +- .../jd/core/v1/JavaInnerOuterClassTest.java | 2 +- .../java/org/jd/core/v1/JavaLambdaTest.java | 2 +- .../java/org/jd/core/v1/JavaLoopTest.java | 2 +- .../jd/core/v1/JavaMethodOverloadingTest.java | 2 +- .../core/v1/JavaOperatorPrecedenceTest.java | 2 +- .../java/org/jd/core/v1/JavaSwitchTest.java | 2 +- .../jd/core/v1/JavaSynchronizedBlockTest.java | 2 +- .../core/v1/JavaSyntaxToJavaSourceTest.java | 12 ++-- .../jd/core/v1/JavaTernaryOperatorTest.java | 2 +- .../jd/core/v1/JavaTryCatchFinallyTest.java | 2 +- .../core/v1/LayoutFragmentProcessorTest.java | 16 ++--- .../java/org/jd/core/v1/WriteTokenTest.java | 4 +- 28 files changed, 75 insertions(+), 73 deletions(-) diff --git a/src/main/java/org/jd/core/v1/ClassFileToJavaSourceDecompiler.java b/src/main/java/org/jd/core/v1/ClassFileToJavaSourceDecompiler.java index 6d3dde6c..ce3fc652 100644 --- a/src/main/java/org/jd/core/v1/ClassFileToJavaSourceDecompiler.java +++ b/src/main/java/org/jd/core/v1/ClassFileToJavaSourceDecompiler.java @@ -33,7 +33,7 @@ public void decompile(Loader loader, Printer printer, String internalName) throw decompileContext.setMainInternalTypeName(internalName); decompileContext.setLoader(loader); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompile(decompileContext); } @@ -44,7 +44,7 @@ public void decompile(Loader loader, Printer printer, String internalName, Map configuration = new HashMap<>(); protected Loader loader; + protected Printer printer; @Deprecated protected HashMap headers = new HashMap<>(); diff --git a/src/main/java/org/jd/core/v1/service/writer/WriteTokenProcessor.java b/src/main/java/org/jd/core/v1/service/writer/WriteTokenProcessor.java index 9ff9977c..8f46622b 100644 --- a/src/main/java/org/jd/core/v1/service/writer/WriteTokenProcessor.java +++ b/src/main/java/org/jd/core/v1/service/writer/WriteTokenProcessor.java @@ -25,7 +25,7 @@ public class WriteTokenProcessor implements Processor { @Override public void process(DecompileContext decompileContext) throws Exception { - Printer printer = decompileContext.getHeader("printer"); + Printer printer = decompileContext.getPrinter(); List tokens = decompileContext.getBody(); PrintTokenVisitor visitor = new PrintTokenVisitor(); int maxLineNumber = decompileContext.getHeader("maxLineNumber"); diff --git a/src/test/java/org/jd/core/v1/CfrTest.java b/src/test/java/org/jd/core/v1/CfrTest.java index 61155d0f..3a8b2a52 100644 --- a/src/test/java/org/jd/core/v1/CfrTest.java +++ b/src/test/java/org/jd/core/v1/CfrTest.java @@ -80,7 +80,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { DecompileContext decompileContext = new DecompileContext(); decompileContext.setLoader(loader); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); decompileContext.setConfiguration(configuration); diff --git a/src/test/java/org/jd/core/v1/JarFileToJavaSourceTest.java b/src/test/java/org/jd/core/v1/JarFileToJavaSourceTest.java index 0fb1101c..89c6059a 100644 --- a/src/test/java/org/jd/core/v1/JarFileToJavaSourceTest.java +++ b/src/test/java/org/jd/core/v1/JarFileToJavaSourceTest.java @@ -148,7 +148,7 @@ protected void test(InputStream inputStream) throws Exception { DecompileContext decompileContext = new DecompileContext(); decompileContext.setLoader(loader); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); long time0 = System.currentTimeMillis(); diff --git a/src/test/java/org/jd/core/v1/Java9InterfaceTest.java b/src/test/java/org/jd/core/v1/Java9InterfaceTest.java index 3a13ebe0..982b20fa 100644 --- a/src/test/java/org/jd/core/v1/Java9InterfaceTest.java +++ b/src/test/java/org/jd/core/v1/Java9InterfaceTest.java @@ -78,7 +78,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { DecompileContext decompileContext = new DecompileContext(); decompileContext.setLoader(loader); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); decompileContext.setConfiguration(configuration); diff --git a/src/test/java/org/jd/core/v1/JavaAnnotationTest.java b/src/test/java/org/jd/core/v1/JavaAnnotationTest.java index 93967f8a..00ec92dd 100644 --- a/src/test/java/org/jd/core/v1/JavaAnnotationTest.java +++ b/src/test/java/org/jd/core/v1/JavaAnnotationTest.java @@ -117,7 +117,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { DecompileContext decompileContext = new DecompileContext(); decompileContext.setLoader(loader); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); decompileContext.setConfiguration(configuration); diff --git a/src/test/java/org/jd/core/v1/JavaAnonymousClassTest.java b/src/test/java/org/jd/core/v1/JavaAnonymousClassTest.java index 109d9288..8f87203f 100644 --- a/src/test/java/org/jd/core/v1/JavaAnonymousClassTest.java +++ b/src/test/java/org/jd/core/v1/JavaAnonymousClassTest.java @@ -125,7 +125,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { DecompileContext decompileContext = new DecompileContext(); decompileContext.setLoader(loader); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); decompileContext.setConfiguration(configuration); diff --git a/src/test/java/org/jd/core/v1/JavaArrayTest.java b/src/test/java/org/jd/core/v1/JavaArrayTest.java index 22a54a5e..dec301db 100644 --- a/src/test/java/org/jd/core/v1/JavaArrayTest.java +++ b/src/test/java/org/jd/core/v1/JavaArrayTest.java @@ -135,7 +135,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { DecompileContext decompileContext = new DecompileContext(); decompileContext.setLoader(loader); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); decompileContext.setConfiguration(configuration); diff --git a/src/test/java/org/jd/core/v1/JavaAssertTest.java b/src/test/java/org/jd/core/v1/JavaAssertTest.java index 151c0b38..bb4cdf77 100644 --- a/src/test/java/org/jd/core/v1/JavaAssertTest.java +++ b/src/test/java/org/jd/core/v1/JavaAssertTest.java @@ -86,7 +86,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { DecompileContext decompileContext = new DecompileContext(); decompileContext.setLoader(loader); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); decompileContext.setConfiguration(configuration); diff --git a/src/test/java/org/jd/core/v1/JavaAutoboxingTest.java b/src/test/java/org/jd/core/v1/JavaAutoboxingTest.java index f963a398..80ceaee5 100644 --- a/src/test/java/org/jd/core/v1/JavaAutoboxingTest.java +++ b/src/test/java/org/jd/core/v1/JavaAutoboxingTest.java @@ -64,7 +64,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { DecompileContext decompileContext = new DecompileContext(); decompileContext.setLoader(loader); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); decompileContext.setConfiguration(configuration); diff --git a/src/test/java/org/jd/core/v1/JavaBasicTest.java b/src/test/java/org/jd/core/v1/JavaBasicTest.java index b81c84be..0e8d5707 100644 --- a/src/test/java/org/jd/core/v1/JavaBasicTest.java +++ b/src/test/java/org/jd/core/v1/JavaBasicTest.java @@ -283,7 +283,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { DecompileContext decompileContext = new DecompileContext(); decompileContext.setLoader(loader); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); decompileContext.setConfiguration(configuration); diff --git a/src/test/java/org/jd/core/v1/JavaEnumTest.java b/src/test/java/org/jd/core/v1/JavaEnumTest.java index 6fd7c5fa..64c7e7a6 100644 --- a/src/test/java/org/jd/core/v1/JavaEnumTest.java +++ b/src/test/java/org/jd/core/v1/JavaEnumTest.java @@ -134,7 +134,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { DecompileContext decompileContext = new DecompileContext(); decompileContext.setLoader(loader); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); decompileContext.setConfiguration(configuration); diff --git a/src/test/java/org/jd/core/v1/JavaFragmentToTokenTest.java b/src/test/java/org/jd/core/v1/JavaFragmentToTokenTest.java index 1cdb0d36..cf124060 100644 --- a/src/test/java/org/jd/core/v1/JavaFragmentToTokenTest.java +++ b/src/test/java/org/jd/core/v1/JavaFragmentToTokenTest.java @@ -57,7 +57,7 @@ public void testIfReturn_0() throws Exception { DecompileContext decompileContext = createMessageToTestIfReturn(0, 0); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 0); decompileContext.setHeader("majorVersion", 0); decompileContext.setHeader("minorVersion", 0); @@ -79,7 +79,7 @@ public void testIfReturn_1_3() throws Exception { PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 3); decompileContext.setHeader("majorVersion", 0); @@ -104,7 +104,7 @@ public void testIfReturn_1_4() throws Exception { PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 4); decompileContext.setHeader("majorVersion", 0); @@ -128,7 +128,7 @@ public void testIfAssignation_0() throws Exception { DecompileContext decompileContext = createMessageToTestIfAssignation(0, 0, 0); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 0); decompileContext.setHeader("majorVersion", 0); decompileContext.setHeader("minorVersion", 0); @@ -150,7 +150,7 @@ public void testIfAssignation_1_2_3() throws Exception { PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 3); decompileContext.setHeader("majorVersion", 0); @@ -176,7 +176,7 @@ public void testIfAssignation_1_3_5() throws Exception { PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 5); decompileContext.setHeader("majorVersion", 0); @@ -201,7 +201,7 @@ public void testClassAndFieldDeclarationWithoutImports_0() throws Exception { DecompileContext decompileContext = createMessageToTestClassDeclarationWithoutImports(0); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 0); decompileContext.setHeader("majorVersion", 0); decompileContext.setHeader("minorVersion", 0); @@ -222,7 +222,7 @@ public void testClassAndFieldDeclaration_0() throws Exception { DecompileContext decompileContext = createMessageToTestClassDeclaration(0); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 0); decompileContext.setHeader("majorVersion", 0); decompileContext.setHeader("minorVersion", 0); @@ -244,7 +244,7 @@ public void testClassAndFieldDeclaration_1() throws Exception { PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 1); decompileContext.setHeader("majorVersion", 0); @@ -268,7 +268,7 @@ public void testClassAndFieldDeclaration_2() throws Exception { PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 2); decompileContext.setHeader("majorVersion", 0); @@ -292,7 +292,7 @@ public void testClassAndFieldDeclaration_3() throws Exception { PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 3); decompileContext.setHeader("majorVersion", 0); @@ -318,7 +318,7 @@ public void testClassAndFieldDeclaration_4() throws Exception { PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 4); decompileContext.setHeader("majorVersion", 0); @@ -344,7 +344,7 @@ public void testClassAndFieldDeclaration_5() throws Exception { PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 5); decompileContext.setHeader("majorVersion", 0); @@ -369,7 +369,7 @@ public void testClassAndFieldDeclaration_6() throws Exception { PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 6); decompileContext.setHeader("majorVersion", 0); @@ -394,7 +394,7 @@ public void testClassAndFieldDeclaration_7() throws Exception { DecompileContext decompileContext = createMessageToTestClassDeclaration(7); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 7); decompileContext.setHeader("majorVersion", 0); decompileContext.setHeader("minorVersion", 0); @@ -420,7 +420,7 @@ public void testClassAndFieldDeclaration_8() throws Exception { PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 8); decompileContext.setHeader("majorVersion", 0); @@ -447,7 +447,7 @@ public void testClassAndFieldDeclaration_9() throws Exception { PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 9); decompileContext.setHeader("majorVersion", 0); @@ -475,7 +475,7 @@ public void testClassAndFieldDeclaration_10() throws Exception { PlainTextPrinter printer = new PlainTextPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 10); decompileContext.setHeader("majorVersion", 0); @@ -502,7 +502,7 @@ public void testClassAndMethodDeclaration_3() throws Exception { PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 3); decompileContext.setHeader("majorVersion", 0); @@ -527,7 +527,7 @@ public void testClassAndMethodDeclaration_4() throws Exception { PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 4); decompileContext.setHeader("majorVersion", 0); @@ -551,7 +551,7 @@ public void testClassAndMethodDeclaration_8() throws Exception { DecompileContext decompileContext = createMessageToTestClassAndMethodDeclaration(8); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 8); decompileContext.setHeader("majorVersion", 0); decompileContext.setHeader("minorVersion", 0); @@ -577,7 +577,7 @@ public void testClassAndMethodDeclaration_9() throws Exception { PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 9); decompileContext.setHeader("majorVersion", 0); @@ -605,7 +605,7 @@ public void testClassAndMethodDeclaration_10() throws Exception { PlainTextPrinter printer = new PlainTextPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 10); decompileContext.setHeader("majorVersion", 0); @@ -636,7 +636,7 @@ public void testClassAndMethodDeclaration_11() throws Exception { PlainTextPrinter printer = new PlainTextPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 11); decompileContext.setHeader("majorVersion", 0); @@ -667,7 +667,7 @@ public void testClassAndMethodDeclaration_12() throws Exception { PlainTextPrinter printer = new PlainTextPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 12); decompileContext.setHeader("majorVersion", 0); @@ -698,7 +698,7 @@ public void testClassAndMethodDeclaration_14() throws Exception { PlainTextPrinter printer = new PlainTextPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 14); decompileContext.setHeader("majorVersion", 0); @@ -727,7 +727,7 @@ public void testLayout() throws Exception { DecompileContext decompileContext = createSimpleMessage(1); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 22); decompileContext.setHeader("majorVersion", 0); decompileContext.setHeader("minorVersion", 0); @@ -748,7 +748,7 @@ public void testLayoutWithoutLineNumber() throws Exception { DecompileContext decompileContext = createSimpleMessage(0); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 0); decompileContext.setHeader("majorVersion", 0); decompileContext.setHeader("minorVersion", 0); @@ -770,7 +770,7 @@ public void testLayoutWithStretchedfFragments_2() throws Exception { PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 44); decompileContext.setHeader("majorVersion", 0); @@ -793,7 +793,7 @@ public void testLayoutWithStretchedfFragments_3() throws Exception { PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 66); decompileContext.setHeader("majorVersion", 0); @@ -816,7 +816,7 @@ public void testMoveDown() throws Exception { PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 8); decompileContext.setHeader("majorVersion", 0); @@ -839,7 +839,7 @@ public void testLinkedBlocks_16() throws Exception { PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 16); decompileContext.setHeader("majorVersion", 0); @@ -862,7 +862,7 @@ public void testLinkedBlocks_22() throws Exception { PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 22); decompileContext.setHeader("majorVersion", 0); diff --git a/src/test/java/org/jd/core/v1/JavaGenericTest.java b/src/test/java/org/jd/core/v1/JavaGenericTest.java index 6d2cbaaa..374b19ae 100644 --- a/src/test/java/org/jd/core/v1/JavaGenericTest.java +++ b/src/test/java/org/jd/core/v1/JavaGenericTest.java @@ -79,7 +79,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { DecompileContext decompileContext = new DecompileContext(); decompileContext.setLoader(loader); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); decompileContext.setConfiguration(configuration); diff --git a/src/test/java/org/jd/core/v1/JavaIfElseTest.java b/src/test/java/org/jd/core/v1/JavaIfElseTest.java index 56fd2c37..71493639 100644 --- a/src/test/java/org/jd/core/v1/JavaIfElseTest.java +++ b/src/test/java/org/jd/core/v1/JavaIfElseTest.java @@ -86,7 +86,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { DecompileContext decompileContext = new DecompileContext(); decompileContext.setLoader(loader); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); decompileContext.setConfiguration(configuration); diff --git a/src/test/java/org/jd/core/v1/JavaInnerOuterClassTest.java b/src/test/java/org/jd/core/v1/JavaInnerOuterClassTest.java index 9e3f8e0d..3ea6d195 100644 --- a/src/test/java/org/jd/core/v1/JavaInnerOuterClassTest.java +++ b/src/test/java/org/jd/core/v1/JavaInnerOuterClassTest.java @@ -109,7 +109,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { DecompileContext decompileContext = new DecompileContext(); decompileContext.setLoader(loader); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); decompileContext.setConfiguration(configuration); diff --git a/src/test/java/org/jd/core/v1/JavaLambdaTest.java b/src/test/java/org/jd/core/v1/JavaLambdaTest.java index 40309a6e..28d7c361 100644 --- a/src/test/java/org/jd/core/v1/JavaLambdaTest.java +++ b/src/test/java/org/jd/core/v1/JavaLambdaTest.java @@ -73,7 +73,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { DecompileContext decompileContext = new DecompileContext(); decompileContext.setLoader(loader); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); decompileContext.setConfiguration(configuration); diff --git a/src/test/java/org/jd/core/v1/JavaLoopTest.java b/src/test/java/org/jd/core/v1/JavaLoopTest.java index 101a86c2..ff5601da 100644 --- a/src/test/java/org/jd/core/v1/JavaLoopTest.java +++ b/src/test/java/org/jd/core/v1/JavaLoopTest.java @@ -395,7 +395,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { DecompileContext decompileContext = new DecompileContext(); decompileContext.setLoader(loader); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); decompileContext.setConfiguration(configuration); diff --git a/src/test/java/org/jd/core/v1/JavaMethodOverloadingTest.java b/src/test/java/org/jd/core/v1/JavaMethodOverloadingTest.java index 0006bd1b..b717335b 100644 --- a/src/test/java/org/jd/core/v1/JavaMethodOverloadingTest.java +++ b/src/test/java/org/jd/core/v1/JavaMethodOverloadingTest.java @@ -105,7 +105,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { DecompileContext decompileContext = new DecompileContext(); decompileContext.setLoader(loader); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); decompileContext.setConfiguration(configuration); diff --git a/src/test/java/org/jd/core/v1/JavaOperatorPrecedenceTest.java b/src/test/java/org/jd/core/v1/JavaOperatorPrecedenceTest.java index 95248f02..3caf9cd1 100644 --- a/src/test/java/org/jd/core/v1/JavaOperatorPrecedenceTest.java +++ b/src/test/java/org/jd/core/v1/JavaOperatorPrecedenceTest.java @@ -62,7 +62,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { DecompileContext decompileContext = new DecompileContext(); decompileContext.setLoader(loader); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); decompileContext.setConfiguration(configuration); diff --git a/src/test/java/org/jd/core/v1/JavaSwitchTest.java b/src/test/java/org/jd/core/v1/JavaSwitchTest.java index 3fc10555..dd68c3e6 100644 --- a/src/test/java/org/jd/core/v1/JavaSwitchTest.java +++ b/src/test/java/org/jd/core/v1/JavaSwitchTest.java @@ -174,7 +174,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { DecompileContext decompileContext = new DecompileContext(); decompileContext.setLoader(loader); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); decompileContext.setConfiguration(configuration); diff --git a/src/test/java/org/jd/core/v1/JavaSynchronizedBlockTest.java b/src/test/java/org/jd/core/v1/JavaSynchronizedBlockTest.java index 8950458d..eadd2daa 100644 --- a/src/test/java/org/jd/core/v1/JavaSynchronizedBlockTest.java +++ b/src/test/java/org/jd/core/v1/JavaSynchronizedBlockTest.java @@ -75,7 +75,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { DecompileContext decompileContext = new DecompileContext(); decompileContext.setLoader(loader); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); decompileContext.setConfiguration(configuration); diff --git a/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java b/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java index c67cda39..b25ecd54 100644 --- a/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java +++ b/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java @@ -144,7 +144,7 @@ public void testClassDeclaration() throws Exception { decompileContext.setHeader("mainInternalTypeName", "org/jd/core/v1/service/test/TokenWriterTest"); decompileContext.setLoader(new NopLoader()); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 22); decompileContext.setHeader("majorVersion", 0); @@ -185,7 +185,7 @@ public void testInterfaceDeclaration() throws Exception { decompileContext.setHeader("mainInternalTypeName", "org/jd/core/v1/service/test/InterfaceTest"); decompileContext.setLoader(new NopLoader()); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 0); decompileContext.setHeader("majorVersion", 49); decompileContext.setHeader("minorVersion", 0); @@ -235,7 +235,7 @@ public void testEnumDayDeclaration() throws Exception { decompileContext.setHeader("mainInternalTypeName", "org/jd/core/v1/service/test/Day"); decompileContext.setLoader(new NopLoader()); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 0); decompileContext.setHeader("majorVersion", 0); decompileContext.setHeader("minorVersion", 0); @@ -519,7 +519,7 @@ public void testEnumPlanetDeclaration() throws Exception { decompileContext.setHeader("mainInternalTypeName", "org/jd/core/v1/service/test/Planet"); decompileContext.setLoader(new NopLoader()); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 0); decompileContext.setHeader("majorVersion", 0); decompileContext.setHeader("minorVersion", 0); @@ -588,7 +588,7 @@ public void testSwitch() throws Exception { decompileContext.setHeader("mainInternalTypeName", "org/jd/core/v1/service/test/SwitchTest"); decompileContext.setLoader(new NopLoader()); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 0); decompileContext.setHeader("majorVersion", 0); decompileContext.setHeader("minorVersion", 0); @@ -644,7 +644,7 @@ public void testBridgeAndSyntheticAttributes() throws Exception { decompileContext.setHeader("mainInternalTypeName", "org/jd/core/v1/service/test/SyntheticAttributeTest"); decompileContext.setLoader(new NopLoader()); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 0); decompileContext.setHeader("majorVersion", 0); decompileContext.setHeader("minorVersion", 0); diff --git a/src/test/java/org/jd/core/v1/JavaTernaryOperatorTest.java b/src/test/java/org/jd/core/v1/JavaTernaryOperatorTest.java index 6f8bccac..533a3f9c 100644 --- a/src/test/java/org/jd/core/v1/JavaTernaryOperatorTest.java +++ b/src/test/java/org/jd/core/v1/JavaTernaryOperatorTest.java @@ -95,7 +95,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { DecompileContext decompileContext = new DecompileContext(); decompileContext.setLoader(loader); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); decompileContext.setConfiguration(configuration); diff --git a/src/test/java/org/jd/core/v1/JavaTryCatchFinallyTest.java b/src/test/java/org/jd/core/v1/JavaTryCatchFinallyTest.java index 04211809..323d2491 100644 --- a/src/test/java/org/jd/core/v1/JavaTryCatchFinallyTest.java +++ b/src/test/java/org/jd/core/v1/JavaTryCatchFinallyTest.java @@ -346,7 +346,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { DecompileContext decompileContext = new DecompileContext(); decompileContext.setLoader(loader); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setHeader("mainInternalTypeName", internalTypeName); decompileContext.setConfiguration(configuration); diff --git a/src/test/java/org/jd/core/v1/LayoutFragmentProcessorTest.java b/src/test/java/org/jd/core/v1/LayoutFragmentProcessorTest.java index 9a2f1853..609d014c 100644 --- a/src/test/java/org/jd/core/v1/LayoutFragmentProcessorTest.java +++ b/src/test/java/org/jd/core/v1/LayoutFragmentProcessorTest.java @@ -46,7 +46,7 @@ public void testJdk118Basic() throws Exception { DecompileContext decompileContext = new DecompileContext(); decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/Basic"); decompileContext.setLoader(loader); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); @@ -74,7 +74,7 @@ public void testJdk131TryCatchFinally() throws Exception { DecompileContext decompileContext = new DecompileContext(); decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/TryCatchFinally"); decompileContext.setLoader(loader); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); @@ -102,7 +102,7 @@ public void testTryCatchFinally() throws Exception { DecompileContext decompileContext = new DecompileContext(); decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/TryCatchFinally"); decompileContext.setLoader(loader); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); @@ -130,7 +130,7 @@ public void testAnonymousClass() throws Exception { DecompileContext decompileContext = new DecompileContext(); decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/AnonymousClass"); decompileContext.setLoader(loader); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); @@ -160,7 +160,7 @@ public void testOuterClass() throws Exception { DecompileContext decompileContext = new DecompileContext(); decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/OuterClass"); decompileContext.setLoader(loader); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); @@ -189,7 +189,7 @@ public void testEnumClass() throws Exception { DecompileContext decompileContext = new DecompileContext(); decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/Enum"); decompileContext.setLoader(loader); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); deserializer.process(decompileContext); converter.process(decompileContext); @@ -219,7 +219,7 @@ public void testAnnotationQuality() throws Exception { DecompileContext decompileContext = new DecompileContext(); decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/annotation/Quality"); decompileContext.setLoader(loader); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); @@ -249,7 +249,7 @@ public void testJdk170Array() throws Exception { DecompileContext decompileContext = new DecompileContext(); decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/Array"); decompileContext.setLoader(loader); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/WriteTokenTest.java b/src/test/java/org/jd/core/v1/WriteTokenTest.java index a764f46b..a0c2da4c 100644 --- a/src/test/java/org/jd/core/v1/WriteTokenTest.java +++ b/src/test/java/org/jd/core/v1/WriteTokenTest.java @@ -199,7 +199,7 @@ public void writeClassDeclaration() throws Exception { WriteTokenProcessor writer = new WriteTokenProcessor(); DecompileContext decompileContext = new DecompileContext(tokens); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 22); decompileContext.setHeader("majorVersion", 0); decompileContext.setHeader("minorVersion", 0); @@ -280,7 +280,7 @@ public void testComments() throws Exception { WriteTokenProcessor writer = new WriteTokenProcessor(); DecompileContext decompileContext = new DecompileContext(tokens); - decompileContext.setHeader("printer", printer); + decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 0); decompileContext.setHeader("majorVersion", 0); decompileContext.setHeader("minorVersion", 0); From 15035c6f7c18534bfddccc5150d640d65bb9b927 Mon Sep 17 00:00:00 2001 From: Yushan Gao Date: Fri, 27 Nov 2020 22:08:23 +0800 Subject: [PATCH 07/28] refactor: move typeMaker into context as field --- .../java/org/jd/core/v1/model/message/DecompileContext.java | 3 +++ .../classfiletojavasyntax/ClassFileToJavaSyntaxProcessor.java | 4 ++-- .../processor/ConvertClassFileProcessor.java | 2 +- .../processor/UpdateJavaSyntaxTreeProcessor.java | 2 +- src/test/java/org/jd/core/v1/ControlFlowGraphTest.java | 2 +- 5 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/jd/core/v1/model/message/DecompileContext.java b/src/main/java/org/jd/core/v1/model/message/DecompileContext.java index ae97223d..7e447446 100644 --- a/src/main/java/org/jd/core/v1/model/message/DecompileContext.java +++ b/src/main/java/org/jd/core/v1/model/message/DecompileContext.java @@ -11,6 +11,7 @@ import lombok.Setter; import org.jd.core.v1.api.loader.Loader; import org.jd.core.v1.api.printer.Printer; +import org.jd.core.v1.service.converter.classfiletojavasyntax.util.TypeMaker; import java.util.HashMap; import java.util.Map; @@ -23,6 +24,8 @@ public class DecompileContext { protected Loader loader; protected Printer printer; + protected TypeMaker typeMaker; + @Deprecated protected HashMap headers = new HashMap<>(); protected Object body; diff --git a/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/ClassFileToJavaSyntaxProcessor.java b/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/ClassFileToJavaSyntaxProcessor.java index c5dda984..4ab87bb4 100644 --- a/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/ClassFileToJavaSyntaxProcessor.java +++ b/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/ClassFileToJavaSyntaxProcessor.java @@ -33,7 +33,7 @@ public void process(DecompileContext decompileContext) throws Exception { Map configuration = decompileContext.getConfiguration(); if (configuration == null) { - decompileContext.setHeader("typeMaker", new TypeMaker(loader)); + decompileContext.setTypeMaker(new TypeMaker(loader)); } else { TypeMaker typeMaker = null; @@ -50,7 +50,7 @@ public void process(DecompileContext decompileContext) throws Exception { } } - decompileContext.setHeader("typeMaker", typeMaker); + decompileContext.setTypeMaker(typeMaker); } CONVERT_CLASS_FILE_PROCESSOR.process(decompileContext); diff --git a/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/ConvertClassFileProcessor.java b/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/ConvertClassFileProcessor.java index 88d2a08b..746c3374 100644 --- a/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/ConvertClassFileProcessor.java +++ b/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/ConvertClassFileProcessor.java @@ -55,7 +55,7 @@ public void visit(TypeParameterWithTypeBounds parameter) { @Override public void process(DecompileContext decompileContext) throws Exception { - TypeMaker typeMaker = decompileContext.getHeader("typeMaker"); + TypeMaker typeMaker = decompileContext.getTypeMaker(); ClassFile classFile = decompileContext.getBody(); AnnotationConverter annotationConverter = new AnnotationConverter(typeMaker); diff --git a/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/UpdateJavaSyntaxTreeProcessor.java b/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/UpdateJavaSyntaxTreeProcessor.java index 05bbeb9b..21c649b2 100644 --- a/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/UpdateJavaSyntaxTreeProcessor.java +++ b/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/UpdateJavaSyntaxTreeProcessor.java @@ -25,7 +25,7 @@ public class UpdateJavaSyntaxTreeProcessor implements Processor { @Override public void process(DecompileContext decompileContext) throws Exception { - TypeMaker typeMaker = decompileContext.getHeader("typeMaker"); + TypeMaker typeMaker = decompileContext.getTypeMaker(); CompilationUnit compilationUnit = decompileContext.getBody(); new UpdateJavaSyntaxTreeStep0Visitor(typeMaker).visit(compilationUnit); diff --git a/src/test/java/org/jd/core/v1/ControlFlowGraphTest.java b/src/test/java/org/jd/core/v1/ControlFlowGraphTest.java index a0282e18..ade4ffbc 100644 --- a/src/test/java/org/jd/core/v1/ControlFlowGraphTest.java +++ b/src/test/java/org/jd/core/v1/ControlFlowGraphTest.java @@ -2654,7 +2654,7 @@ protected Method searchMethod(Loader loader, TypeMaker typeMaker, String interna DecompileContext decompileContext = new DecompileContext(); decompileContext.setHeader("mainInternalTypeName", internalTypeName); decompileContext.setLoader(loader); - decompileContext.setHeader("typeMaker", typeMaker); + decompileContext.setTypeMaker(typeMaker); deserializer.process(decompileContext); converter.process(decompileContext); From 9a716db6e3ae802165e15032f8bd0bc0810f6ad1 Mon Sep 17 00:00:00 2001 From: Yushan Gao Date: Fri, 27 Nov 2020 22:12:51 +0800 Subject: [PATCH 08/28] refactor: move majorVersion into context as field --- .../v1/model/message/DecompileContext.java | 1 + .../processor/ConvertClassFileProcessor.java | 2 +- .../JavaSyntaxToJavaFragmentProcessor.java | 2 +- .../service/writer/WriteTokenProcessor.java | 2 +- .../jd/core/v1/JavaFragmentToTokenTest.java | 66 +++++++++---------- .../core/v1/JavaSyntaxToJavaSourceTest.java | 12 ++-- .../java/org/jd/core/v1/WriteTokenTest.java | 4 +- 7 files changed, 45 insertions(+), 44 deletions(-) diff --git a/src/main/java/org/jd/core/v1/model/message/DecompileContext.java b/src/main/java/org/jd/core/v1/model/message/DecompileContext.java index 7e447446..5399964e 100644 --- a/src/main/java/org/jd/core/v1/model/message/DecompileContext.java +++ b/src/main/java/org/jd/core/v1/model/message/DecompileContext.java @@ -25,6 +25,7 @@ public class DecompileContext { protected Printer printer; protected TypeMaker typeMaker; + protected int majorVersion; @Deprecated protected HashMap headers = new HashMap<>(); diff --git a/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/ConvertClassFileProcessor.java b/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/ConvertClassFileProcessor.java index 746c3374..8764852e 100644 --- a/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/ConvertClassFileProcessor.java +++ b/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/ConvertClassFileProcessor.java @@ -74,7 +74,7 @@ public void process(DecompileContext decompileContext) throws Exception { typeDeclaration = convertClassDeclaration(typeMaker, annotationConverter, classFile, null); } - decompileContext.setHeader("majorVersion", classFile.getMajorVersion()); + decompileContext.setMajorVersion(classFile.getMajorVersion()); decompileContext.setHeader("minorVersion", classFile.getMinorVersion()); decompileContext.setBody(new CompilationUnit(typeDeclaration)); } diff --git a/src/main/java/org/jd/core/v1/service/fragmenter/javasyntaxtojavafragment/JavaSyntaxToJavaFragmentProcessor.java b/src/main/java/org/jd/core/v1/service/fragmenter/javasyntaxtojavafragment/JavaSyntaxToJavaFragmentProcessor.java index 8170f1e8..f9933d64 100644 --- a/src/main/java/org/jd/core/v1/service/fragmenter/javasyntaxtojavafragment/JavaSyntaxToJavaFragmentProcessor.java +++ b/src/main/java/org/jd/core/v1/service/fragmenter/javasyntaxtojavafragment/JavaSyntaxToJavaFragmentProcessor.java @@ -26,7 +26,7 @@ public class JavaSyntaxToJavaFragmentProcessor implements Processor { public void process(DecompileContext decompileContext) throws Exception { Loader loader = decompileContext.getLoader(); String mainInternalTypeName = decompileContext.getMainInternalTypeName(); - int majorVersion = decompileContext.getHeader("majorVersion"); + int majorVersion = decompileContext.getMajorVersion(); CompilationUnit compilationUnit = decompileContext.getBody(); SearchImportsVisitor importsVisitor = new SearchImportsVisitor(loader, mainInternalTypeName); diff --git a/src/main/java/org/jd/core/v1/service/writer/WriteTokenProcessor.java b/src/main/java/org/jd/core/v1/service/writer/WriteTokenProcessor.java index 8f46622b..df29a78a 100644 --- a/src/main/java/org/jd/core/v1/service/writer/WriteTokenProcessor.java +++ b/src/main/java/org/jd/core/v1/service/writer/WriteTokenProcessor.java @@ -29,7 +29,7 @@ public void process(DecompileContext decompileContext) throws Exception { List tokens = decompileContext.getBody(); PrintTokenVisitor visitor = new PrintTokenVisitor(); int maxLineNumber = decompileContext.getHeader("maxLineNumber"); - int majorVersion = decompileContext.getHeader("majorVersion"); + int majorVersion = decompileContext.getMajorVersion(); int minorVersion = decompileContext.getHeader("minorVersion"); printer.start(maxLineNumber, majorVersion, minorVersion); diff --git a/src/test/java/org/jd/core/v1/JavaFragmentToTokenTest.java b/src/test/java/org/jd/core/v1/JavaFragmentToTokenTest.java index cf124060..ad1eaba2 100644 --- a/src/test/java/org/jd/core/v1/JavaFragmentToTokenTest.java +++ b/src/test/java/org/jd/core/v1/JavaFragmentToTokenTest.java @@ -59,7 +59,7 @@ public void testIfReturn_0() throws Exception { decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 0); - decompileContext.setHeader("majorVersion", 0); + decompileContext.setMajorVersion(0); decompileContext.setHeader("minorVersion", 0); layouter.process(decompileContext); @@ -82,7 +82,7 @@ public void testIfReturn_1_3() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 3); - decompileContext.setHeader("majorVersion", 0); + decompileContext.setMajorVersion(0); decompileContext.setHeader("minorVersion", 0); layouter.process(decompileContext); @@ -107,7 +107,7 @@ public void testIfReturn_1_4() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 4); - decompileContext.setHeader("majorVersion", 0); + decompileContext.setMajorVersion(0); decompileContext.setHeader("minorVersion", 0); layouter.process(decompileContext); @@ -130,7 +130,7 @@ public void testIfAssignation_0() throws Exception { decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 0); - decompileContext.setHeader("majorVersion", 0); + decompileContext.setMajorVersion(0); decompileContext.setHeader("minorVersion", 0); layouter.process(decompileContext); @@ -153,7 +153,7 @@ public void testIfAssignation_1_2_3() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 3); - decompileContext.setHeader("majorVersion", 0); + decompileContext.setMajorVersion(0); decompileContext.setHeader("minorVersion", 0); layouter.process(decompileContext); @@ -179,7 +179,7 @@ public void testIfAssignation_1_3_5() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 5); - decompileContext.setHeader("majorVersion", 0); + decompileContext.setMajorVersion(0); decompileContext.setHeader("minorVersion", 0); layouter.process(decompileContext); @@ -203,7 +203,7 @@ public void testClassAndFieldDeclarationWithoutImports_0() throws Exception { decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 0); - decompileContext.setHeader("majorVersion", 0); + decompileContext.setMajorVersion(0); decompileContext.setHeader("minorVersion", 0); layouter.process(decompileContext); @@ -224,7 +224,7 @@ public void testClassAndFieldDeclaration_0() throws Exception { decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 0); - decompileContext.setHeader("majorVersion", 0); + decompileContext.setMajorVersion(0); decompileContext.setHeader("minorVersion", 0); layouter.process(decompileContext); @@ -247,7 +247,7 @@ public void testClassAndFieldDeclaration_1() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 1); - decompileContext.setHeader("majorVersion", 0); + decompileContext.setMajorVersion(0); decompileContext.setHeader("minorVersion", 0); layouter.process(decompileContext); @@ -271,7 +271,7 @@ public void testClassAndFieldDeclaration_2() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 2); - decompileContext.setHeader("majorVersion", 0); + decompileContext.setMajorVersion(0); decompileContext.setHeader("minorVersion", 0); layouter.process(decompileContext); @@ -295,7 +295,7 @@ public void testClassAndFieldDeclaration_3() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 3); - decompileContext.setHeader("majorVersion", 0); + decompileContext.setMajorVersion(0); decompileContext.setHeader("minorVersion", 0); layouter.process(decompileContext); @@ -321,7 +321,7 @@ public void testClassAndFieldDeclaration_4() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 4); - decompileContext.setHeader("majorVersion", 0); + decompileContext.setMajorVersion(0); decompileContext.setHeader("minorVersion", 0); layouter.process(decompileContext); @@ -347,7 +347,7 @@ public void testClassAndFieldDeclaration_5() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 5); - decompileContext.setHeader("majorVersion", 0); + decompileContext.setMajorVersion(0); decompileContext.setHeader("minorVersion", 0); layouter.process(decompileContext); @@ -372,7 +372,7 @@ public void testClassAndFieldDeclaration_6() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 6); - decompileContext.setHeader("majorVersion", 0); + decompileContext.setMajorVersion(0); decompileContext.setHeader("minorVersion", 0); layouter.process(decompileContext); @@ -396,7 +396,7 @@ public void testClassAndFieldDeclaration_7() throws Exception { decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 7); - decompileContext.setHeader("majorVersion", 0); + decompileContext.setMajorVersion(0); decompileContext.setHeader("minorVersion", 0); layouter.process(decompileContext); @@ -423,7 +423,7 @@ public void testClassAndFieldDeclaration_8() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 8); - decompileContext.setHeader("majorVersion", 0); + decompileContext.setMajorVersion(0); decompileContext.setHeader("minorVersion", 0); layouter.process(decompileContext); @@ -450,7 +450,7 @@ public void testClassAndFieldDeclaration_9() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 9); - decompileContext.setHeader("majorVersion", 0); + decompileContext.setMajorVersion(0); decompileContext.setHeader("minorVersion", 0); layouter.process(decompileContext); @@ -478,7 +478,7 @@ public void testClassAndFieldDeclaration_10() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 10); - decompileContext.setHeader("majorVersion", 0); + decompileContext.setMajorVersion(0); decompileContext.setHeader("minorVersion", 0); layouter.process(decompileContext); @@ -505,7 +505,7 @@ public void testClassAndMethodDeclaration_3() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 3); - decompileContext.setHeader("majorVersion", 0); + decompileContext.setMajorVersion(0); decompileContext.setHeader("minorVersion", 0); layouter.process(decompileContext); @@ -530,7 +530,7 @@ public void testClassAndMethodDeclaration_4() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 4); - decompileContext.setHeader("majorVersion", 0); + decompileContext.setMajorVersion(0); decompileContext.setHeader("minorVersion", 0); layouter.process(decompileContext); @@ -553,7 +553,7 @@ public void testClassAndMethodDeclaration_8() throws Exception { decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 8); - decompileContext.setHeader("majorVersion", 0); + decompileContext.setMajorVersion(0); decompileContext.setHeader("minorVersion", 0); layouter.process(decompileContext); @@ -580,7 +580,7 @@ public void testClassAndMethodDeclaration_9() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 9); - decompileContext.setHeader("majorVersion", 0); + decompileContext.setMajorVersion(0); decompileContext.setHeader("minorVersion", 0); layouter.process(decompileContext); @@ -608,7 +608,7 @@ public void testClassAndMethodDeclaration_10() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 10); - decompileContext.setHeader("majorVersion", 0); + decompileContext.setMajorVersion(0); decompileContext.setHeader("minorVersion", 0); layouter.process(decompileContext); @@ -639,7 +639,7 @@ public void testClassAndMethodDeclaration_11() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 11); - decompileContext.setHeader("majorVersion", 0); + decompileContext.setMajorVersion(0); decompileContext.setHeader("minorVersion", 0); layouter.process(decompileContext); @@ -670,7 +670,7 @@ public void testClassAndMethodDeclaration_12() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 12); - decompileContext.setHeader("majorVersion", 0); + decompileContext.setMajorVersion(0); decompileContext.setHeader("minorVersion", 0); layouter.process(decompileContext); @@ -701,7 +701,7 @@ public void testClassAndMethodDeclaration_14() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 14); - decompileContext.setHeader("majorVersion", 0); + decompileContext.setMajorVersion(0); decompileContext.setHeader("minorVersion", 0); layouter.process(decompileContext); @@ -729,7 +729,7 @@ public void testLayout() throws Exception { decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 22); - decompileContext.setHeader("majorVersion", 0); + decompileContext.setMajorVersion(0); decompileContext.setHeader("minorVersion", 0); layouter.process(decompileContext); @@ -750,7 +750,7 @@ public void testLayoutWithoutLineNumber() throws Exception { decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 0); - decompileContext.setHeader("majorVersion", 0); + decompileContext.setMajorVersion(0); decompileContext.setHeader("minorVersion", 0); layouter.process(decompileContext); @@ -773,7 +773,7 @@ public void testLayoutWithStretchedfFragments_2() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 44); - decompileContext.setHeader("majorVersion", 0); + decompileContext.setMajorVersion(0); decompileContext.setHeader("minorVersion", 0); layouter.process(decompileContext); @@ -796,7 +796,7 @@ public void testLayoutWithStretchedfFragments_3() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 66); - decompileContext.setHeader("majorVersion", 0); + decompileContext.setMajorVersion(0); decompileContext.setHeader("minorVersion", 0); layouter.process(decompileContext); @@ -819,7 +819,7 @@ public void testMoveDown() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 8); - decompileContext.setHeader("majorVersion", 0); + decompileContext.setMajorVersion(0); decompileContext.setHeader("minorVersion", 0); layouter.process(decompileContext); @@ -842,7 +842,7 @@ public void testLinkedBlocks_16() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 16); - decompileContext.setHeader("majorVersion", 0); + decompileContext.setMajorVersion(0); decompileContext.setHeader("minorVersion", 0); layouter.process(decompileContext); @@ -865,7 +865,7 @@ public void testLinkedBlocks_22() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 22); - decompileContext.setHeader("majorVersion", 0); + decompileContext.setMajorVersion(0); decompileContext.setHeader("minorVersion", 0); layouter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java b/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java index b25ecd54..e88a4a73 100644 --- a/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java +++ b/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java @@ -147,7 +147,7 @@ public void testClassDeclaration() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 22); - decompileContext.setHeader("majorVersion", 0); + decompileContext.setMajorVersion(0); decompileContext.setHeader("minorVersion", 0); fragmenter.process(decompileContext); @@ -187,7 +187,7 @@ public void testInterfaceDeclaration() throws Exception { decompileContext.setLoader(new NopLoader()); decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 0); - decompileContext.setHeader("majorVersion", 49); + decompileContext.setMajorVersion(49); decompileContext.setHeader("minorVersion", 0); fragmenter.process(decompileContext); @@ -237,7 +237,7 @@ public void testEnumDayDeclaration() throws Exception { decompileContext.setLoader(new NopLoader()); decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 0); - decompileContext.setHeader("majorVersion", 0); + decompileContext.setMajorVersion(0); decompileContext.setHeader("minorVersion", 0); fragmenter.process(decompileContext); @@ -521,7 +521,7 @@ public void testEnumPlanetDeclaration() throws Exception { decompileContext.setLoader(new NopLoader()); decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 0); - decompileContext.setHeader("majorVersion", 0); + decompileContext.setMajorVersion(0); decompileContext.setHeader("minorVersion", 0); fragmenter.process(decompileContext); @@ -590,7 +590,7 @@ public void testSwitch() throws Exception { decompileContext.setLoader(new NopLoader()); decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 0); - decompileContext.setHeader("majorVersion", 0); + decompileContext.setMajorVersion(0); decompileContext.setHeader("minorVersion", 0); fragmenter.process(decompileContext); @@ -646,7 +646,7 @@ public void testBridgeAndSyntheticAttributes() throws Exception { decompileContext.setLoader(new NopLoader()); decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 0); - decompileContext.setHeader("majorVersion", 0); + decompileContext.setMajorVersion(0); decompileContext.setHeader("minorVersion", 0); fragmenter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/WriteTokenTest.java b/src/test/java/org/jd/core/v1/WriteTokenTest.java index a0c2da4c..b1841d2b 100644 --- a/src/test/java/org/jd/core/v1/WriteTokenTest.java +++ b/src/test/java/org/jd/core/v1/WriteTokenTest.java @@ -201,7 +201,7 @@ public void writeClassDeclaration() throws Exception { DecompileContext decompileContext = new DecompileContext(tokens); decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 22); - decompileContext.setHeader("majorVersion", 0); + decompileContext.setMajorVersion(0); decompileContext.setHeader("minorVersion", 0); writer.process(decompileContext); @@ -282,7 +282,7 @@ public void testComments() throws Exception { DecompileContext decompileContext = new DecompileContext(tokens); decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 0); - decompileContext.setHeader("majorVersion", 0); + decompileContext.setMajorVersion(0); decompileContext.setHeader("minorVersion", 0); writer.process(decompileContext); From da4fdcb128b28192a6f1cf002754a100bb52326f Mon Sep 17 00:00:00 2001 From: Yushan Gao Date: Fri, 27 Nov 2020 22:15:09 +0800 Subject: [PATCH 09/28] refactor: move minorVersion into context as field --- .../v1/model/message/DecompileContext.java | 1 + .../processor/ConvertClassFileProcessor.java | 2 +- .../service/writer/WriteTokenProcessor.java | 2 +- .../jd/core/v1/JavaFragmentToTokenTest.java | 66 +++++++++---------- .../core/v1/JavaSyntaxToJavaSourceTest.java | 12 ++-- .../java/org/jd/core/v1/WriteTokenTest.java | 4 +- 6 files changed, 44 insertions(+), 43 deletions(-) diff --git a/src/main/java/org/jd/core/v1/model/message/DecompileContext.java b/src/main/java/org/jd/core/v1/model/message/DecompileContext.java index 5399964e..6111f5de 100644 --- a/src/main/java/org/jd/core/v1/model/message/DecompileContext.java +++ b/src/main/java/org/jd/core/v1/model/message/DecompileContext.java @@ -26,6 +26,7 @@ public class DecompileContext { protected TypeMaker typeMaker; protected int majorVersion; + protected int minorVersion; @Deprecated protected HashMap headers = new HashMap<>(); diff --git a/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/ConvertClassFileProcessor.java b/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/ConvertClassFileProcessor.java index 8764852e..6d7cc883 100644 --- a/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/ConvertClassFileProcessor.java +++ b/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/ConvertClassFileProcessor.java @@ -75,7 +75,7 @@ public void process(DecompileContext decompileContext) throws Exception { } decompileContext.setMajorVersion(classFile.getMajorVersion()); - decompileContext.setHeader("minorVersion", classFile.getMinorVersion()); + decompileContext.setMinorVersion(classFile.getMinorVersion()); decompileContext.setBody(new CompilationUnit(typeDeclaration)); } diff --git a/src/main/java/org/jd/core/v1/service/writer/WriteTokenProcessor.java b/src/main/java/org/jd/core/v1/service/writer/WriteTokenProcessor.java index df29a78a..931391cf 100644 --- a/src/main/java/org/jd/core/v1/service/writer/WriteTokenProcessor.java +++ b/src/main/java/org/jd/core/v1/service/writer/WriteTokenProcessor.java @@ -30,7 +30,7 @@ public void process(DecompileContext decompileContext) throws Exception { PrintTokenVisitor visitor = new PrintTokenVisitor(); int maxLineNumber = decompileContext.getHeader("maxLineNumber"); int majorVersion = decompileContext.getMajorVersion(); - int minorVersion = decompileContext.getHeader("minorVersion"); + int minorVersion = decompileContext.getMinorVersion(); printer.start(maxLineNumber, majorVersion, minorVersion); visitor.start(printer, tokens); diff --git a/src/test/java/org/jd/core/v1/JavaFragmentToTokenTest.java b/src/test/java/org/jd/core/v1/JavaFragmentToTokenTest.java index ad1eaba2..97a79e8a 100644 --- a/src/test/java/org/jd/core/v1/JavaFragmentToTokenTest.java +++ b/src/test/java/org/jd/core/v1/JavaFragmentToTokenTest.java @@ -60,7 +60,7 @@ public void testIfReturn_0() throws Exception { decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 0); decompileContext.setMajorVersion(0); - decompileContext.setHeader("minorVersion", 0); + decompileContext.setMinorVersion(0); layouter.process(decompileContext); tokenizer.process(decompileContext); @@ -83,7 +83,7 @@ public void testIfReturn_1_3() throws Exception { decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 3); decompileContext.setMajorVersion(0); - decompileContext.setHeader("minorVersion", 0); + decompileContext.setMinorVersion(0); layouter.process(decompileContext); tokenizer.process(decompileContext); @@ -108,7 +108,7 @@ public void testIfReturn_1_4() throws Exception { decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 4); decompileContext.setMajorVersion(0); - decompileContext.setHeader("minorVersion", 0); + decompileContext.setMinorVersion(0); layouter.process(decompileContext); tokenizer.process(decompileContext); @@ -131,7 +131,7 @@ public void testIfAssignation_0() throws Exception { decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 0); decompileContext.setMajorVersion(0); - decompileContext.setHeader("minorVersion", 0); + decompileContext.setMinorVersion(0); layouter.process(decompileContext); tokenizer.process(decompileContext); @@ -154,7 +154,7 @@ public void testIfAssignation_1_2_3() throws Exception { decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 3); decompileContext.setMajorVersion(0); - decompileContext.setHeader("minorVersion", 0); + decompileContext.setMinorVersion(0); layouter.process(decompileContext); tokenizer.process(decompileContext); @@ -180,7 +180,7 @@ public void testIfAssignation_1_3_5() throws Exception { decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 5); decompileContext.setMajorVersion(0); - decompileContext.setHeader("minorVersion", 0); + decompileContext.setMinorVersion(0); layouter.process(decompileContext); tokenizer.process(decompileContext); @@ -204,7 +204,7 @@ public void testClassAndFieldDeclarationWithoutImports_0() throws Exception { decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 0); decompileContext.setMajorVersion(0); - decompileContext.setHeader("minorVersion", 0); + decompileContext.setMinorVersion(0); layouter.process(decompileContext); tokenizer.process(decompileContext); @@ -225,7 +225,7 @@ public void testClassAndFieldDeclaration_0() throws Exception { decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 0); decompileContext.setMajorVersion(0); - decompileContext.setHeader("minorVersion", 0); + decompileContext.setMinorVersion(0); layouter.process(decompileContext); tokenizer.process(decompileContext); @@ -248,7 +248,7 @@ public void testClassAndFieldDeclaration_1() throws Exception { decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 1); decompileContext.setMajorVersion(0); - decompileContext.setHeader("minorVersion", 0); + decompileContext.setMinorVersion(0); layouter.process(decompileContext); tokenizer.process(decompileContext); @@ -272,7 +272,7 @@ public void testClassAndFieldDeclaration_2() throws Exception { decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 2); decompileContext.setMajorVersion(0); - decompileContext.setHeader("minorVersion", 0); + decompileContext.setMinorVersion(0); layouter.process(decompileContext); tokenizer.process(decompileContext); @@ -296,7 +296,7 @@ public void testClassAndFieldDeclaration_3() throws Exception { decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 3); decompileContext.setMajorVersion(0); - decompileContext.setHeader("minorVersion", 0); + decompileContext.setMinorVersion(0); layouter.process(decompileContext); tokenizer.process(decompileContext); @@ -322,7 +322,7 @@ public void testClassAndFieldDeclaration_4() throws Exception { decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 4); decompileContext.setMajorVersion(0); - decompileContext.setHeader("minorVersion", 0); + decompileContext.setMinorVersion(0); layouter.process(decompileContext); tokenizer.process(decompileContext); @@ -348,7 +348,7 @@ public void testClassAndFieldDeclaration_5() throws Exception { decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 5); decompileContext.setMajorVersion(0); - decompileContext.setHeader("minorVersion", 0); + decompileContext.setMinorVersion(0); layouter.process(decompileContext); tokenizer.process(decompileContext); @@ -373,7 +373,7 @@ public void testClassAndFieldDeclaration_6() throws Exception { decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 6); decompileContext.setMajorVersion(0); - decompileContext.setHeader("minorVersion", 0); + decompileContext.setMinorVersion(0); layouter.process(decompileContext); tokenizer.process(decompileContext); @@ -397,7 +397,7 @@ public void testClassAndFieldDeclaration_7() throws Exception { decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 7); decompileContext.setMajorVersion(0); - decompileContext.setHeader("minorVersion", 0); + decompileContext.setMinorVersion(0); layouter.process(decompileContext); tokenizer.process(decompileContext); @@ -424,7 +424,7 @@ public void testClassAndFieldDeclaration_8() throws Exception { decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 8); decompileContext.setMajorVersion(0); - decompileContext.setHeader("minorVersion", 0); + decompileContext.setMinorVersion(0); layouter.process(decompileContext); tokenizer.process(decompileContext); @@ -451,7 +451,7 @@ public void testClassAndFieldDeclaration_9() throws Exception { decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 9); decompileContext.setMajorVersion(0); - decompileContext.setHeader("minorVersion", 0); + decompileContext.setMinorVersion(0); layouter.process(decompileContext); tokenizer.process(decompileContext); @@ -479,7 +479,7 @@ public void testClassAndFieldDeclaration_10() throws Exception { decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 10); decompileContext.setMajorVersion(0); - decompileContext.setHeader("minorVersion", 0); + decompileContext.setMinorVersion(0); layouter.process(decompileContext); tokenizer.process(decompileContext); @@ -506,7 +506,7 @@ public void testClassAndMethodDeclaration_3() throws Exception { decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 3); decompileContext.setMajorVersion(0); - decompileContext.setHeader("minorVersion", 0); + decompileContext.setMinorVersion(0); layouter.process(decompileContext); tokenizer.process(decompileContext); @@ -531,7 +531,7 @@ public void testClassAndMethodDeclaration_4() throws Exception { decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 4); decompileContext.setMajorVersion(0); - decompileContext.setHeader("minorVersion", 0); + decompileContext.setMinorVersion(0); layouter.process(decompileContext); tokenizer.process(decompileContext); @@ -554,7 +554,7 @@ public void testClassAndMethodDeclaration_8() throws Exception { decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 8); decompileContext.setMajorVersion(0); - decompileContext.setHeader("minorVersion", 0); + decompileContext.setMinorVersion(0); layouter.process(decompileContext); tokenizer.process(decompileContext); @@ -581,7 +581,7 @@ public void testClassAndMethodDeclaration_9() throws Exception { decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 9); decompileContext.setMajorVersion(0); - decompileContext.setHeader("minorVersion", 0); + decompileContext.setMinorVersion(0); layouter.process(decompileContext); tokenizer.process(decompileContext); @@ -609,7 +609,7 @@ public void testClassAndMethodDeclaration_10() throws Exception { decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 10); decompileContext.setMajorVersion(0); - decompileContext.setHeader("minorVersion", 0); + decompileContext.setMinorVersion(0); layouter.process(decompileContext); tokenizer.process(decompileContext); @@ -640,7 +640,7 @@ public void testClassAndMethodDeclaration_11() throws Exception { decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 11); decompileContext.setMajorVersion(0); - decompileContext.setHeader("minorVersion", 0); + decompileContext.setMinorVersion(0); layouter.process(decompileContext); tokenizer.process(decompileContext); @@ -671,7 +671,7 @@ public void testClassAndMethodDeclaration_12() throws Exception { decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 12); decompileContext.setMajorVersion(0); - decompileContext.setHeader("minorVersion", 0); + decompileContext.setMinorVersion(0); layouter.process(decompileContext); tokenizer.process(decompileContext); @@ -702,7 +702,7 @@ public void testClassAndMethodDeclaration_14() throws Exception { decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 14); decompileContext.setMajorVersion(0); - decompileContext.setHeader("minorVersion", 0); + decompileContext.setMinorVersion(0); layouter.process(decompileContext); tokenizer.process(decompileContext); @@ -730,7 +730,7 @@ public void testLayout() throws Exception { decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 22); decompileContext.setMajorVersion(0); - decompileContext.setHeader("minorVersion", 0); + decompileContext.setMinorVersion(0); layouter.process(decompileContext); tokenizer.process(decompileContext); @@ -751,7 +751,7 @@ public void testLayoutWithoutLineNumber() throws Exception { decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 0); decompileContext.setMajorVersion(0); - decompileContext.setHeader("minorVersion", 0); + decompileContext.setMinorVersion(0); layouter.process(decompileContext); tokenizer.process(decompileContext); @@ -774,7 +774,7 @@ public void testLayoutWithStretchedfFragments_2() throws Exception { decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 44); decompileContext.setMajorVersion(0); - decompileContext.setHeader("minorVersion", 0); + decompileContext.setMinorVersion(0); layouter.process(decompileContext); tokenizer.process(decompileContext); @@ -797,7 +797,7 @@ public void testLayoutWithStretchedfFragments_3() throws Exception { decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 66); decompileContext.setMajorVersion(0); - decompileContext.setHeader("minorVersion", 0); + decompileContext.setMinorVersion(0); layouter.process(decompileContext); tokenizer.process(decompileContext); @@ -820,7 +820,7 @@ public void testMoveDown() throws Exception { decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 8); decompileContext.setMajorVersion(0); - decompileContext.setHeader("minorVersion", 0); + decompileContext.setMinorVersion(0); layouter.process(decompileContext); tokenizer.process(decompileContext); @@ -843,7 +843,7 @@ public void testLinkedBlocks_16() throws Exception { decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 16); decompileContext.setMajorVersion(0); - decompileContext.setHeader("minorVersion", 0); + decompileContext.setMinorVersion(0); layouter.process(decompileContext); tokenizer.process(decompileContext); @@ -866,7 +866,7 @@ public void testLinkedBlocks_22() throws Exception { decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 22); decompileContext.setMajorVersion(0); - decompileContext.setHeader("minorVersion", 0); + decompileContext.setMinorVersion(0); layouter.process(decompileContext); tokenizer.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java b/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java index e88a4a73..4c5d2752 100644 --- a/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java +++ b/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java @@ -148,7 +148,7 @@ public void testClassDeclaration() throws Exception { decompileContext.setConfiguration(configuration); decompileContext.setHeader("maxLineNumber", 22); decompileContext.setMajorVersion(0); - decompileContext.setHeader("minorVersion", 0); + decompileContext.setMinorVersion(0); fragmenter.process(decompileContext); layouter.process(decompileContext); @@ -188,7 +188,7 @@ public void testInterfaceDeclaration() throws Exception { decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 0); decompileContext.setMajorVersion(49); - decompileContext.setHeader("minorVersion", 0); + decompileContext.setMinorVersion(0); fragmenter.process(decompileContext); layouter.process(decompileContext); @@ -238,7 +238,7 @@ public void testEnumDayDeclaration() throws Exception { decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 0); decompileContext.setMajorVersion(0); - decompileContext.setHeader("minorVersion", 0); + decompileContext.setMinorVersion(0); fragmenter.process(decompileContext); layouter.process(decompileContext); @@ -522,7 +522,7 @@ public void testEnumPlanetDeclaration() throws Exception { decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 0); decompileContext.setMajorVersion(0); - decompileContext.setHeader("minorVersion", 0); + decompileContext.setMinorVersion(0); fragmenter.process(decompileContext); layouter.process(decompileContext); @@ -591,7 +591,7 @@ public void testSwitch() throws Exception { decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 0); decompileContext.setMajorVersion(0); - decompileContext.setHeader("minorVersion", 0); + decompileContext.setMinorVersion(0); fragmenter.process(decompileContext); layouter.process(decompileContext); @@ -647,7 +647,7 @@ public void testBridgeAndSyntheticAttributes() throws Exception { decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 0); decompileContext.setMajorVersion(0); - decompileContext.setHeader("minorVersion", 0); + decompileContext.setMinorVersion(0); fragmenter.process(decompileContext); layouter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/WriteTokenTest.java b/src/test/java/org/jd/core/v1/WriteTokenTest.java index b1841d2b..9d83345a 100644 --- a/src/test/java/org/jd/core/v1/WriteTokenTest.java +++ b/src/test/java/org/jd/core/v1/WriteTokenTest.java @@ -202,7 +202,7 @@ public void writeClassDeclaration() throws Exception { decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 22); decompileContext.setMajorVersion(0); - decompileContext.setHeader("minorVersion", 0); + decompileContext.setMinorVersion(0); writer.process(decompileContext); @@ -283,7 +283,7 @@ public void testComments() throws Exception { decompileContext.setPrinter(printer); decompileContext.setHeader("maxLineNumber", 0); decompileContext.setMajorVersion(0); - decompileContext.setHeader("minorVersion", 0); + decompileContext.setMinorVersion(0); writer.process(decompileContext); From e60518faa44c43a6c6f01fe085f3ea56df5c1063 Mon Sep 17 00:00:00 2001 From: Yushan Gao Date: Fri, 27 Nov 2020 22:18:43 +0800 Subject: [PATCH 10/28] refactor: move maxLineNumber into context as field --- .../v1/model/message/DecompileContext.java | 1 + .../JavaSyntaxToJavaFragmentProcessor.java | 2 +- .../layouter/LayoutFragmentProcessor.java | 2 +- .../service/writer/WriteTokenProcessor.java | 2 +- .../jd/core/v1/JavaFragmentToTokenTest.java | 82 +++++++++---------- .../core/v1/JavaSyntaxToJavaSourceTest.java | 12 +-- .../java/org/jd/core/v1/WriteTokenTest.java | 4 +- 7 files changed, 53 insertions(+), 52 deletions(-) diff --git a/src/main/java/org/jd/core/v1/model/message/DecompileContext.java b/src/main/java/org/jd/core/v1/model/message/DecompileContext.java index 6111f5de..c29cee77 100644 --- a/src/main/java/org/jd/core/v1/model/message/DecompileContext.java +++ b/src/main/java/org/jd/core/v1/model/message/DecompileContext.java @@ -27,6 +27,7 @@ public class DecompileContext { protected TypeMaker typeMaker; protected int majorVersion; protected int minorVersion; + protected int maxLineNumber = Printer.UNKNOWN_LINE_NUMBER; @Deprecated protected HashMap headers = new HashMap<>(); diff --git a/src/main/java/org/jd/core/v1/service/fragmenter/javasyntaxtojavafragment/JavaSyntaxToJavaFragmentProcessor.java b/src/main/java/org/jd/core/v1/service/fragmenter/javasyntaxtojavafragment/JavaSyntaxToJavaFragmentProcessor.java index f9933d64..d62d9546 100644 --- a/src/main/java/org/jd/core/v1/service/fragmenter/javasyntaxtojavafragment/JavaSyntaxToJavaFragmentProcessor.java +++ b/src/main/java/org/jd/core/v1/service/fragmenter/javasyntaxtojavafragment/JavaSyntaxToJavaFragmentProcessor.java @@ -32,7 +32,7 @@ public void process(DecompileContext decompileContext) throws Exception { SearchImportsVisitor importsVisitor = new SearchImportsVisitor(loader, mainInternalTypeName); importsVisitor.visit(compilationUnit); ImportsFragment importsFragment = importsVisitor.getImportsFragment(); - decompileContext.setHeader("maxLineNumber", importsVisitor.getMaxLineNumber()); + decompileContext.setMaxLineNumber(importsVisitor.getMaxLineNumber()); CompilationUnitVisitor visitor = new CompilationUnitVisitor(loader, mainInternalTypeName, majorVersion, importsFragment); visitor.visit(compilationUnit); diff --git a/src/main/java/org/jd/core/v1/service/layouter/LayoutFragmentProcessor.java b/src/main/java/org/jd/core/v1/service/layouter/LayoutFragmentProcessor.java index 21830018..27cec554 100644 --- a/src/main/java/org/jd/core/v1/service/layouter/LayoutFragmentProcessor.java +++ b/src/main/java/org/jd/core/v1/service/layouter/LayoutFragmentProcessor.java @@ -33,7 +33,7 @@ public class LayoutFragmentProcessor implements Processor { @Override public void process(DecompileContext decompileContext) throws Exception { - int maxLineNumber = decompileContext.getHeader("maxLineNumber", UNKNOWN_LINE_NUMBER); + int maxLineNumber = decompileContext.getMaxLineNumber(); boolean containsByteCode = decompileContext.getHeader("containsByteCode", Boolean.FALSE); boolean showBridgeAndSynthetic = decompileContext.getHeader("showBridgeAndSynthetic", Boolean.FALSE); Map configuration = decompileContext.getConfiguration(); diff --git a/src/main/java/org/jd/core/v1/service/writer/WriteTokenProcessor.java b/src/main/java/org/jd/core/v1/service/writer/WriteTokenProcessor.java index 931391cf..744f1dd9 100644 --- a/src/main/java/org/jd/core/v1/service/writer/WriteTokenProcessor.java +++ b/src/main/java/org/jd/core/v1/service/writer/WriteTokenProcessor.java @@ -28,7 +28,7 @@ public void process(DecompileContext decompileContext) throws Exception { Printer printer = decompileContext.getPrinter(); List tokens = decompileContext.getBody(); PrintTokenVisitor visitor = new PrintTokenVisitor(); - int maxLineNumber = decompileContext.getHeader("maxLineNumber"); + int maxLineNumber = decompileContext.getMaxLineNumber(); int majorVersion = decompileContext.getMajorVersion(); int minorVersion = decompileContext.getMinorVersion(); diff --git a/src/test/java/org/jd/core/v1/JavaFragmentToTokenTest.java b/src/test/java/org/jd/core/v1/JavaFragmentToTokenTest.java index 97a79e8a..98f4d711 100644 --- a/src/test/java/org/jd/core/v1/JavaFragmentToTokenTest.java +++ b/src/test/java/org/jd/core/v1/JavaFragmentToTokenTest.java @@ -58,7 +58,7 @@ public void testIfReturn_0() throws Exception { PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); decompileContext.setPrinter(printer); - decompileContext.setHeader("maxLineNumber", 0); + decompileContext.setMaxLineNumber(0); decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); @@ -81,7 +81,7 @@ public void testIfReturn_1_3() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); - decompileContext.setHeader("maxLineNumber", 3); + decompileContext.setMaxLineNumber(3); decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); @@ -106,7 +106,7 @@ public void testIfReturn_1_4() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); - decompileContext.setHeader("maxLineNumber", 4); + decompileContext.setMaxLineNumber(4); decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); @@ -129,7 +129,7 @@ public void testIfAssignation_0() throws Exception { PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); decompileContext.setPrinter(printer); - decompileContext.setHeader("maxLineNumber", 0); + decompileContext.setMaxLineNumber(0); decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); @@ -152,7 +152,7 @@ public void testIfAssignation_1_2_3() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); - decompileContext.setHeader("maxLineNumber", 3); + decompileContext.setMaxLineNumber(3); decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); @@ -178,7 +178,7 @@ public void testIfAssignation_1_3_5() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); - decompileContext.setHeader("maxLineNumber", 5); + decompileContext.setMaxLineNumber(5); decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); @@ -202,7 +202,7 @@ public void testClassAndFieldDeclarationWithoutImports_0() throws Exception { PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); decompileContext.setPrinter(printer); - decompileContext.setHeader("maxLineNumber", 0); + decompileContext.setMaxLineNumber(0); decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); @@ -223,7 +223,7 @@ public void testClassAndFieldDeclaration_0() throws Exception { PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); decompileContext.setPrinter(printer); - decompileContext.setHeader("maxLineNumber", 0); + decompileContext.setMaxLineNumber(0); decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); @@ -246,7 +246,7 @@ public void testClassAndFieldDeclaration_1() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); - decompileContext.setHeader("maxLineNumber", 1); + decompileContext.setMaxLineNumber(1); decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); @@ -270,7 +270,7 @@ public void testClassAndFieldDeclaration_2() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); - decompileContext.setHeader("maxLineNumber", 2); + decompileContext.setMaxLineNumber(2); decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); @@ -294,7 +294,7 @@ public void testClassAndFieldDeclaration_3() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); - decompileContext.setHeader("maxLineNumber", 3); + decompileContext.setMaxLineNumber(3); decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); @@ -320,7 +320,7 @@ public void testClassAndFieldDeclaration_4() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); - decompileContext.setHeader("maxLineNumber", 4); + decompileContext.setMaxLineNumber(4); decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); @@ -346,7 +346,7 @@ public void testClassAndFieldDeclaration_5() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); - decompileContext.setHeader("maxLineNumber", 5); + decompileContext.setMaxLineNumber(5); decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); @@ -371,7 +371,7 @@ public void testClassAndFieldDeclaration_6() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); - decompileContext.setHeader("maxLineNumber", 6); + decompileContext.setMaxLineNumber(6); decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); @@ -395,7 +395,7 @@ public void testClassAndFieldDeclaration_7() throws Exception { PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); decompileContext.setPrinter(printer); - decompileContext.setHeader("maxLineNumber", 7); + decompileContext.setMaxLineNumber(7); decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); @@ -422,7 +422,7 @@ public void testClassAndFieldDeclaration_8() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); - decompileContext.setHeader("maxLineNumber", 8); + decompileContext.setMaxLineNumber(8); decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); @@ -449,7 +449,7 @@ public void testClassAndFieldDeclaration_9() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); - decompileContext.setHeader("maxLineNumber", 9); + decompileContext.setMaxLineNumber(9); decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); @@ -477,7 +477,7 @@ public void testClassAndFieldDeclaration_10() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); - decompileContext.setHeader("maxLineNumber", 10); + decompileContext.setMaxLineNumber(10); decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); @@ -504,7 +504,7 @@ public void testClassAndMethodDeclaration_3() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); - decompileContext.setHeader("maxLineNumber", 3); + decompileContext.setMaxLineNumber(3); decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); @@ -529,7 +529,7 @@ public void testClassAndMethodDeclaration_4() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); - decompileContext.setHeader("maxLineNumber", 4); + decompileContext.setMaxLineNumber(4); decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); @@ -552,7 +552,7 @@ public void testClassAndMethodDeclaration_8() throws Exception { PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); decompileContext.setPrinter(printer); - decompileContext.setHeader("maxLineNumber", 8); + decompileContext.setMaxLineNumber(8); decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); @@ -579,7 +579,7 @@ public void testClassAndMethodDeclaration_9() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); - decompileContext.setHeader("maxLineNumber", 9); + decompileContext.setMaxLineNumber(9); decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); @@ -607,7 +607,7 @@ public void testClassAndMethodDeclaration_10() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); - decompileContext.setHeader("maxLineNumber", 10); + decompileContext.setMaxLineNumber(10); decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); @@ -638,7 +638,7 @@ public void testClassAndMethodDeclaration_11() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); - decompileContext.setHeader("maxLineNumber", 11); + decompileContext.setMaxLineNumber(11); decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); @@ -669,7 +669,7 @@ public void testClassAndMethodDeclaration_12() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); - decompileContext.setHeader("maxLineNumber", 12); + decompileContext.setMaxLineNumber(12); decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); @@ -700,7 +700,7 @@ public void testClassAndMethodDeclaration_14() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); - decompileContext.setHeader("maxLineNumber", 14); + decompileContext.setMaxLineNumber(14); decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); @@ -728,7 +728,7 @@ public void testLayout() throws Exception { PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); decompileContext.setPrinter(printer); - decompileContext.setHeader("maxLineNumber", 22); + decompileContext.setMaxLineNumber(22); decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); @@ -749,7 +749,7 @@ public void testLayoutWithoutLineNumber() throws Exception { PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); decompileContext.setPrinter(printer); - decompileContext.setHeader("maxLineNumber", 0); + decompileContext.setMaxLineNumber(0); decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); @@ -772,7 +772,7 @@ public void testLayoutWithStretchedfFragments_2() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); - decompileContext.setHeader("maxLineNumber", 44); + decompileContext.setMaxLineNumber(44); decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); @@ -795,7 +795,7 @@ public void testLayoutWithStretchedfFragments_3() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); - decompileContext.setHeader("maxLineNumber", 66); + decompileContext.setMaxLineNumber(66); decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); @@ -818,7 +818,7 @@ public void testMoveDown() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); - decompileContext.setHeader("maxLineNumber", 8); + decompileContext.setMaxLineNumber(8); decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); @@ -841,7 +841,7 @@ public void testLinkedBlocks_16() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); - decompileContext.setHeader("maxLineNumber", 16); + decompileContext.setMaxLineNumber(16); decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); @@ -864,7 +864,7 @@ public void testLinkedBlocks_22() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); - decompileContext.setHeader("maxLineNumber", 22); + decompileContext.setMaxLineNumber(22); decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); @@ -939,7 +939,7 @@ public DecompileContext createMessageToTestIfReturn(int lineNumber1, int lineNum JavaFragmentFactory.addSpacerBetweenStatements(fragments); DecompileContext decompileContext = new DecompileContext(fragments); - decompileContext.setHeader("maxLineNumber", Integer.valueOf(lineNumber2)); + decompileContext.setMaxLineNumber(Integer.valueOf(lineNumber2)); return decompileContext; } @@ -1010,7 +1010,7 @@ public DecompileContext createMessageToTestIfAssignation(int lineNumber1, int li JavaFragmentFactory.addSpacerBetweenStatements(fragments); DecompileContext decompileContext = new DecompileContext(fragments); - decompileContext.setHeader("maxLineNumber", Integer.valueOf(lineNumber3)); + decompileContext.setMaxLineNumber(Integer.valueOf(lineNumber3)); return decompileContext; } @@ -1100,7 +1100,7 @@ public DecompileContext createMessageToTestClassDeclaration(int lineNumber) thro JavaFragmentFactory.addEndTypeBody(fragments, classStart); DecompileContext decompileContext = new DecompileContext(fragments); - decompileContext.setHeader("maxLineNumber", Integer.valueOf(lineNumber)); + decompileContext.setMaxLineNumber(Integer.valueOf(lineNumber)); return decompileContext; } @@ -1179,7 +1179,7 @@ public DecompileContext createMessageToTestClassDeclarationWithoutImports(int li JavaFragmentFactory.addEndTypeBody(fragments, classStart); DecompileContext decompileContext = new DecompileContext(fragments); - decompileContext.setHeader("maxLineNumber", Integer.valueOf(lineNumber)); + decompileContext.setMaxLineNumber(Integer.valueOf(lineNumber)); return decompileContext; } @@ -1283,7 +1283,7 @@ public DecompileContext createMessageToTestClassAndMethodDeclaration(int lineNum JavaFragmentFactory.addEndTypeBody(fragments, startMainClass); DecompileContext decompileContext = new DecompileContext(fragments); - decompileContext.setHeader("maxLineNumber", Integer.valueOf(lineNumber)); + decompileContext.setMaxLineNumber(Integer.valueOf(lineNumber)); return decompileContext; } @@ -1532,7 +1532,7 @@ public DecompileContext createSimpleMessage(int factor) { DecompileContext decompileContext = new DecompileContext(fragments); if (factor != 0) - decompileContext.setHeader("maxLineNumber", Integer.valueOf(22 * factor)); + decompileContext.setMaxLineNumber(Integer.valueOf(22 * factor)); return decompileContext; } @@ -1667,7 +1667,7 @@ public DecompileContext createMessageToTestMoveDown() { fragments.add(EndMovableJavaBlockFragment.END_MOVABLE_BLOCK); DecompileContext decompileContext = new DecompileContext(fragments); - decompileContext.setHeader("maxLineNumber", Integer.valueOf(8)); + decompileContext.setMaxLineNumber(Integer.valueOf(8)); //message.setStart("containsByteCode", Boolean.TRUE); return decompileContext; @@ -1812,7 +1812,7 @@ public DecompileContext createMessageToTestLinkedBlocks(int lineNumber1, int lin fragments.add(EndMovableJavaBlockFragment.END_MOVABLE_BLOCK); DecompileContext decompileContext = new DecompileContext(fragments); - decompileContext.setHeader("maxLineNumber", Integer.valueOf(8)); + decompileContext.setMaxLineNumber(Integer.valueOf(8)); //message.setStart("containsByteCode", Boolean.TRUE); return decompileContext; diff --git a/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java b/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java index 4c5d2752..293e4db5 100644 --- a/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java +++ b/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java @@ -146,7 +146,7 @@ public void testClassDeclaration() throws Exception { decompileContext.setLoader(new NopLoader()); decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); - decompileContext.setHeader("maxLineNumber", 22); + decompileContext.setMaxLineNumber(22); decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); @@ -186,7 +186,7 @@ public void testInterfaceDeclaration() throws Exception { decompileContext.setHeader("mainInternalTypeName", "org/jd/core/v1/service/test/InterfaceTest"); decompileContext.setLoader(new NopLoader()); decompileContext.setPrinter(printer); - decompileContext.setHeader("maxLineNumber", 0); + decompileContext.setMaxLineNumber(0); decompileContext.setMajorVersion(49); decompileContext.setMinorVersion(0); @@ -236,7 +236,7 @@ public void testEnumDayDeclaration() throws Exception { decompileContext.setHeader("mainInternalTypeName", "org/jd/core/v1/service/test/Day"); decompileContext.setLoader(new NopLoader()); decompileContext.setPrinter(printer); - decompileContext.setHeader("maxLineNumber", 0); + decompileContext.setMaxLineNumber(0); decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); @@ -520,7 +520,7 @@ public void testEnumPlanetDeclaration() throws Exception { decompileContext.setHeader("mainInternalTypeName", "org/jd/core/v1/service/test/Planet"); decompileContext.setLoader(new NopLoader()); decompileContext.setPrinter(printer); - decompileContext.setHeader("maxLineNumber", 0); + decompileContext.setMaxLineNumber(0); decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); @@ -589,7 +589,7 @@ public void testSwitch() throws Exception { decompileContext.setHeader("mainInternalTypeName", "org/jd/core/v1/service/test/SwitchTest"); decompileContext.setLoader(new NopLoader()); decompileContext.setPrinter(printer); - decompileContext.setHeader("maxLineNumber", 0); + decompileContext.setMaxLineNumber(0); decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); @@ -645,7 +645,7 @@ public void testBridgeAndSyntheticAttributes() throws Exception { decompileContext.setHeader("mainInternalTypeName", "org/jd/core/v1/service/test/SyntheticAttributeTest"); decompileContext.setLoader(new NopLoader()); decompileContext.setPrinter(printer); - decompileContext.setHeader("maxLineNumber", 0); + decompileContext.setMaxLineNumber(0); decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); diff --git a/src/test/java/org/jd/core/v1/WriteTokenTest.java b/src/test/java/org/jd/core/v1/WriteTokenTest.java index 9d83345a..5f3b085c 100644 --- a/src/test/java/org/jd/core/v1/WriteTokenTest.java +++ b/src/test/java/org/jd/core/v1/WriteTokenTest.java @@ -200,7 +200,7 @@ public void writeClassDeclaration() throws Exception { DecompileContext decompileContext = new DecompileContext(tokens); decompileContext.setPrinter(printer); - decompileContext.setHeader("maxLineNumber", 22); + decompileContext.setMaxLineNumber(22); decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); @@ -281,7 +281,7 @@ public void testComments() throws Exception { DecompileContext decompileContext = new DecompileContext(tokens); decompileContext.setPrinter(printer); - decompileContext.setHeader("maxLineNumber", 0); + decompileContext.setMaxLineNumber(0); decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); From 4dcf3e62a349b9da5cd6edebc09e087c7be42fbc Mon Sep 17 00:00:00 2001 From: Yushan Gao Date: Fri, 27 Nov 2020 22:20:22 +0800 Subject: [PATCH 11/28] fix: fix test case for mainInternalTypeName --- .../org/jd/core/v1/AnnotationConverterTest.java | 2 +- src/test/java/org/jd/core/v1/CfrTest.java | 2 +- .../jd/core/v1/ClassFileDeserializerTest.java | 2 +- .../org/jd/core/v1/ControlFlowGraphTest.java | 2 +- .../org/jd/core/v1/JarFileToJavaSourceTest.java | 2 +- .../java/org/jd/core/v1/Java9InterfaceTest.java | 2 +- .../java/org/jd/core/v1/JavaAnnotationTest.java | 2 +- .../org/jd/core/v1/JavaAnonymousClassTest.java | 2 +- src/test/java/org/jd/core/v1/JavaArrayTest.java | 2 +- src/test/java/org/jd/core/v1/JavaAssertTest.java | 2 +- .../java/org/jd/core/v1/JavaAutoboxingTest.java | 2 +- src/test/java/org/jd/core/v1/JavaBasicTest.java | 2 +- src/test/java/org/jd/core/v1/JavaEnumTest.java | 2 +- .../java/org/jd/core/v1/JavaGenericTest.java | 2 +- src/test/java/org/jd/core/v1/JavaIfElseTest.java | 2 +- .../org/jd/core/v1/JavaInnerOuterClassTest.java | 2 +- src/test/java/org/jd/core/v1/JavaLambdaTest.java | 2 +- src/test/java/org/jd/core/v1/JavaLoopTest.java | 2 +- .../jd/core/v1/JavaMethodOverloadingTest.java | 2 +- .../jd/core/v1/JavaOperatorPrecedenceTest.java | 2 +- src/test/java/org/jd/core/v1/JavaSwitchTest.java | 2 +- .../jd/core/v1/JavaSynchronizedBlockTest.java | 2 +- .../jd/core/v1/JavaSyntaxToJavaSourceTest.java | 12 ++++++------ .../org/jd/core/v1/JavaTernaryOperatorTest.java | 2 +- .../org/jd/core/v1/JavaTryCatchFinallyTest.java | 2 +- .../jd/core/v1/LayoutFragmentProcessorTest.java | 16 ++++++++-------- .../java/org/jd/core/v1/SignatureParserTest.java | 4 ++-- 27 files changed, 40 insertions(+), 40 deletions(-) diff --git a/src/test/java/org/jd/core/v1/AnnotationConverterTest.java b/src/test/java/org/jd/core/v1/AnnotationConverterTest.java index 9be340a6..a82a83cb 100644 --- a/src/test/java/org/jd/core/v1/AnnotationConverterTest.java +++ b/src/test/java/org/jd/core/v1/AnnotationConverterTest.java @@ -32,7 +32,7 @@ public void test() throws Exception { DeserializeClassFileProcessor deserializer = new DeserializeClassFileProcessor(); DecompileContext decompileContext = new DecompileContext(); - decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/AnnotatedClass"); + decompileContext.setMainInternalTypeName("org/jd/core/test/AnnotatedClass"); decompileContext.setLoader(loader); deserializer.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/CfrTest.java b/src/test/java/org/jd/core/v1/CfrTest.java index 3a8b2a52..a13ad854 100644 --- a/src/test/java/org/jd/core/v1/CfrTest.java +++ b/src/test/java/org/jd/core/v1/CfrTest.java @@ -81,7 +81,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa DecompileContext decompileContext = new DecompileContext(); decompileContext.setLoader(loader); decompileContext.setPrinter(printer); - decompileContext.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setMainInternalTypeName(internalTypeName); decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/ClassFileDeserializerTest.java b/src/test/java/org/jd/core/v1/ClassFileDeserializerTest.java index f829cff4..89b59195 100644 --- a/src/test/java/org/jd/core/v1/ClassFileDeserializerTest.java +++ b/src/test/java/org/jd/core/v1/ClassFileDeserializerTest.java @@ -58,7 +58,7 @@ public void testAnnotatedClass() throws Exception { DeserializeClassFileProcessor deserializer = new DeserializeClassFileProcessor(); DecompileContext decompileContext = new DecompileContext(); - decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/AnnotatedClass"); + decompileContext.setMainInternalTypeName("org/jd/core/test/AnnotatedClass"); decompileContext.setLoader(loader); deserializer.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/ControlFlowGraphTest.java b/src/test/java/org/jd/core/v1/ControlFlowGraphTest.java index ade4ffbc..334f0f0e 100644 --- a/src/test/java/org/jd/core/v1/ControlFlowGraphTest.java +++ b/src/test/java/org/jd/core/v1/ControlFlowGraphTest.java @@ -2652,7 +2652,7 @@ protected Method searchMethod(InputStream is, String internalTypeName, String me protected Method searchMethod(Loader loader, TypeMaker typeMaker, String internalTypeName, String methodName, String methodDescriptor) throws Exception { DecompileContext decompileContext = new DecompileContext(); - decompileContext.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setMainInternalTypeName(internalTypeName); decompileContext.setLoader(loader); decompileContext.setTypeMaker(typeMaker); diff --git a/src/test/java/org/jd/core/v1/JarFileToJavaSourceTest.java b/src/test/java/org/jd/core/v1/JarFileToJavaSourceTest.java index 89c6059a..08a6e24d 100644 --- a/src/test/java/org/jd/core/v1/JarFileToJavaSourceTest.java +++ b/src/test/java/org/jd/core/v1/JarFileToJavaSourceTest.java @@ -160,7 +160,7 @@ protected void test(InputStream inputStream) throws Exception { // TODO DEBUG if (!internalTypeName.endsWith("/Debug")) continue; //if (!internalTypeName.endsWith("/MapUtils")) continue; - decompileContext.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setMainInternalTypeName(internalTypeName); printer.init(); fileCounter++; diff --git a/src/test/java/org/jd/core/v1/Java9InterfaceTest.java b/src/test/java/org/jd/core/v1/Java9InterfaceTest.java index 982b20fa..6ee100cc 100644 --- a/src/test/java/org/jd/core/v1/Java9InterfaceTest.java +++ b/src/test/java/org/jd/core/v1/Java9InterfaceTest.java @@ -79,7 +79,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa DecompileContext decompileContext = new DecompileContext(); decompileContext.setLoader(loader); decompileContext.setPrinter(printer); - decompileContext.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setMainInternalTypeName(internalTypeName); decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaAnnotationTest.java b/src/test/java/org/jd/core/v1/JavaAnnotationTest.java index 00ec92dd..9fc286a7 100644 --- a/src/test/java/org/jd/core/v1/JavaAnnotationTest.java +++ b/src/test/java/org/jd/core/v1/JavaAnnotationTest.java @@ -118,7 +118,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa DecompileContext decompileContext = new DecompileContext(); decompileContext.setLoader(loader); decompileContext.setPrinter(printer); - decompileContext.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setMainInternalTypeName(internalTypeName); decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaAnonymousClassTest.java b/src/test/java/org/jd/core/v1/JavaAnonymousClassTest.java index 8f87203f..75bae694 100644 --- a/src/test/java/org/jd/core/v1/JavaAnonymousClassTest.java +++ b/src/test/java/org/jd/core/v1/JavaAnonymousClassTest.java @@ -126,7 +126,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa DecompileContext decompileContext = new DecompileContext(); decompileContext.setLoader(loader); decompileContext.setPrinter(printer); - decompileContext.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setMainInternalTypeName(internalTypeName); decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaArrayTest.java b/src/test/java/org/jd/core/v1/JavaArrayTest.java index dec301db..4f3cf4ad 100644 --- a/src/test/java/org/jd/core/v1/JavaArrayTest.java +++ b/src/test/java/org/jd/core/v1/JavaArrayTest.java @@ -136,7 +136,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa DecompileContext decompileContext = new DecompileContext(); decompileContext.setLoader(loader); decompileContext.setPrinter(printer); - decompileContext.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setMainInternalTypeName(internalTypeName); decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaAssertTest.java b/src/test/java/org/jd/core/v1/JavaAssertTest.java index bb4cdf77..f7c15847 100644 --- a/src/test/java/org/jd/core/v1/JavaAssertTest.java +++ b/src/test/java/org/jd/core/v1/JavaAssertTest.java @@ -87,7 +87,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa DecompileContext decompileContext = new DecompileContext(); decompileContext.setLoader(loader); decompileContext.setPrinter(printer); - decompileContext.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setMainInternalTypeName(internalTypeName); decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaAutoboxingTest.java b/src/test/java/org/jd/core/v1/JavaAutoboxingTest.java index 80ceaee5..69ed29fb 100644 --- a/src/test/java/org/jd/core/v1/JavaAutoboxingTest.java +++ b/src/test/java/org/jd/core/v1/JavaAutoboxingTest.java @@ -65,7 +65,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa DecompileContext decompileContext = new DecompileContext(); decompileContext.setLoader(loader); decompileContext.setPrinter(printer); - decompileContext.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setMainInternalTypeName(internalTypeName); decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaBasicTest.java b/src/test/java/org/jd/core/v1/JavaBasicTest.java index 0e8d5707..0f7720cc 100644 --- a/src/test/java/org/jd/core/v1/JavaBasicTest.java +++ b/src/test/java/org/jd/core/v1/JavaBasicTest.java @@ -284,7 +284,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa DecompileContext decompileContext = new DecompileContext(); decompileContext.setLoader(loader); decompileContext.setPrinter(printer); - decompileContext.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setMainInternalTypeName(internalTypeName); decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaEnumTest.java b/src/test/java/org/jd/core/v1/JavaEnumTest.java index 64c7e7a6..25c766f9 100644 --- a/src/test/java/org/jd/core/v1/JavaEnumTest.java +++ b/src/test/java/org/jd/core/v1/JavaEnumTest.java @@ -135,7 +135,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa DecompileContext decompileContext = new DecompileContext(); decompileContext.setLoader(loader); decompileContext.setPrinter(printer); - decompileContext.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setMainInternalTypeName(internalTypeName); decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaGenericTest.java b/src/test/java/org/jd/core/v1/JavaGenericTest.java index 374b19ae..2b90c926 100644 --- a/src/test/java/org/jd/core/v1/JavaGenericTest.java +++ b/src/test/java/org/jd/core/v1/JavaGenericTest.java @@ -80,7 +80,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa DecompileContext decompileContext = new DecompileContext(); decompileContext.setLoader(loader); decompileContext.setPrinter(printer); - decompileContext.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setMainInternalTypeName(internalTypeName); decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaIfElseTest.java b/src/test/java/org/jd/core/v1/JavaIfElseTest.java index 71493639..c3c82cb3 100644 --- a/src/test/java/org/jd/core/v1/JavaIfElseTest.java +++ b/src/test/java/org/jd/core/v1/JavaIfElseTest.java @@ -87,7 +87,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa DecompileContext decompileContext = new DecompileContext(); decompileContext.setLoader(loader); decompileContext.setPrinter(printer); - decompileContext.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setMainInternalTypeName(internalTypeName); decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaInnerOuterClassTest.java b/src/test/java/org/jd/core/v1/JavaInnerOuterClassTest.java index 3ea6d195..666cbd33 100644 --- a/src/test/java/org/jd/core/v1/JavaInnerOuterClassTest.java +++ b/src/test/java/org/jd/core/v1/JavaInnerOuterClassTest.java @@ -110,7 +110,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa DecompileContext decompileContext = new DecompileContext(); decompileContext.setLoader(loader); decompileContext.setPrinter(printer); - decompileContext.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setMainInternalTypeName(internalTypeName); decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaLambdaTest.java b/src/test/java/org/jd/core/v1/JavaLambdaTest.java index 28d7c361..ba6e8708 100644 --- a/src/test/java/org/jd/core/v1/JavaLambdaTest.java +++ b/src/test/java/org/jd/core/v1/JavaLambdaTest.java @@ -74,7 +74,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa DecompileContext decompileContext = new DecompileContext(); decompileContext.setLoader(loader); decompileContext.setPrinter(printer); - decompileContext.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setMainInternalTypeName(internalTypeName); decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaLoopTest.java b/src/test/java/org/jd/core/v1/JavaLoopTest.java index ff5601da..5f9f49e0 100644 --- a/src/test/java/org/jd/core/v1/JavaLoopTest.java +++ b/src/test/java/org/jd/core/v1/JavaLoopTest.java @@ -396,7 +396,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa DecompileContext decompileContext = new DecompileContext(); decompileContext.setLoader(loader); decompileContext.setPrinter(printer); - decompileContext.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setMainInternalTypeName(internalTypeName); decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaMethodOverloadingTest.java b/src/test/java/org/jd/core/v1/JavaMethodOverloadingTest.java index b717335b..a83f8cf6 100644 --- a/src/test/java/org/jd/core/v1/JavaMethodOverloadingTest.java +++ b/src/test/java/org/jd/core/v1/JavaMethodOverloadingTest.java @@ -106,7 +106,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa DecompileContext decompileContext = new DecompileContext(); decompileContext.setLoader(loader); decompileContext.setPrinter(printer); - decompileContext.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setMainInternalTypeName(internalTypeName); decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaOperatorPrecedenceTest.java b/src/test/java/org/jd/core/v1/JavaOperatorPrecedenceTest.java index 3caf9cd1..e9291791 100644 --- a/src/test/java/org/jd/core/v1/JavaOperatorPrecedenceTest.java +++ b/src/test/java/org/jd/core/v1/JavaOperatorPrecedenceTest.java @@ -63,7 +63,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa DecompileContext decompileContext = new DecompileContext(); decompileContext.setLoader(loader); decompileContext.setPrinter(printer); - decompileContext.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setMainInternalTypeName(internalTypeName); decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaSwitchTest.java b/src/test/java/org/jd/core/v1/JavaSwitchTest.java index dd68c3e6..1f44fd59 100644 --- a/src/test/java/org/jd/core/v1/JavaSwitchTest.java +++ b/src/test/java/org/jd/core/v1/JavaSwitchTest.java @@ -175,7 +175,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa DecompileContext decompileContext = new DecompileContext(); decompileContext.setLoader(loader); decompileContext.setPrinter(printer); - decompileContext.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setMainInternalTypeName(internalTypeName); decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaSynchronizedBlockTest.java b/src/test/java/org/jd/core/v1/JavaSynchronizedBlockTest.java index eadd2daa..9b8be542 100644 --- a/src/test/java/org/jd/core/v1/JavaSynchronizedBlockTest.java +++ b/src/test/java/org/jd/core/v1/JavaSynchronizedBlockTest.java @@ -76,7 +76,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa DecompileContext decompileContext = new DecompileContext(); decompileContext.setLoader(loader); decompileContext.setPrinter(printer); - decompileContext.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setMainInternalTypeName(internalTypeName); decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java b/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java index 293e4db5..2c9d5be4 100644 --- a/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java +++ b/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java @@ -142,7 +142,7 @@ public void testClassDeclaration() throws Exception { Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); DecompileContext decompileContext = new DecompileContext(compilationUnit); - decompileContext.setHeader("mainInternalTypeName", "org/jd/core/v1/service/test/TokenWriterTest"); + decompileContext.setMainInternalTypeName("org/jd/core/v1/service/test/TokenWriterTest"); decompileContext.setLoader(new NopLoader()); decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); @@ -183,7 +183,7 @@ public void testInterfaceDeclaration() throws Exception { PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); DecompileContext decompileContext = new DecompileContext(compilationUnit); - decompileContext.setHeader("mainInternalTypeName", "org/jd/core/v1/service/test/InterfaceTest"); + decompileContext.setMainInternalTypeName("org/jd/core/v1/service/test/InterfaceTest"); decompileContext.setLoader(new NopLoader()); decompileContext.setPrinter(printer); decompileContext.setMaxLineNumber(0); @@ -233,7 +233,7 @@ public void testEnumDayDeclaration() throws Exception { PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); DecompileContext decompileContext = new DecompileContext(compilationUnit); - decompileContext.setHeader("mainInternalTypeName", "org/jd/core/v1/service/test/Day"); + decompileContext.setMainInternalTypeName("org/jd/core/v1/service/test/Day"); decompileContext.setLoader(new NopLoader()); decompileContext.setPrinter(printer); decompileContext.setMaxLineNumber(0); @@ -517,7 +517,7 @@ public void testEnumPlanetDeclaration() throws Exception { PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); DecompileContext decompileContext = new DecompileContext(compilationUnit); - decompileContext.setHeader("mainInternalTypeName", "org/jd/core/v1/service/test/Planet"); + decompileContext.setMainInternalTypeName("org/jd/core/v1/service/test/Planet"); decompileContext.setLoader(new NopLoader()); decompileContext.setPrinter(printer); decompileContext.setMaxLineNumber(0); @@ -586,7 +586,7 @@ public void testSwitch() throws Exception { PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); DecompileContext decompileContext = new DecompileContext(compilationUnit); - decompileContext.setHeader("mainInternalTypeName", "org/jd/core/v1/service/test/SwitchTest"); + decompileContext.setMainInternalTypeName("org/jd/core/v1/service/test/SwitchTest"); decompileContext.setLoader(new NopLoader()); decompileContext.setPrinter(printer); decompileContext.setMaxLineNumber(0); @@ -642,7 +642,7 @@ public void testBridgeAndSyntheticAttributes() throws Exception { PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); DecompileContext decompileContext = new DecompileContext(compilationUnit); - decompileContext.setHeader("mainInternalTypeName", "org/jd/core/v1/service/test/SyntheticAttributeTest"); + decompileContext.setMainInternalTypeName("org/jd/core/v1/service/test/SyntheticAttributeTest"); decompileContext.setLoader(new NopLoader()); decompileContext.setPrinter(printer); decompileContext.setMaxLineNumber(0); diff --git a/src/test/java/org/jd/core/v1/JavaTernaryOperatorTest.java b/src/test/java/org/jd/core/v1/JavaTernaryOperatorTest.java index 533a3f9c..1caa20f9 100644 --- a/src/test/java/org/jd/core/v1/JavaTernaryOperatorTest.java +++ b/src/test/java/org/jd/core/v1/JavaTernaryOperatorTest.java @@ -96,7 +96,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa DecompileContext decompileContext = new DecompileContext(); decompileContext.setLoader(loader); decompileContext.setPrinter(printer); - decompileContext.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setMainInternalTypeName(internalTypeName); decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaTryCatchFinallyTest.java b/src/test/java/org/jd/core/v1/JavaTryCatchFinallyTest.java index 323d2491..d6bd6080 100644 --- a/src/test/java/org/jd/core/v1/JavaTryCatchFinallyTest.java +++ b/src/test/java/org/jd/core/v1/JavaTryCatchFinallyTest.java @@ -347,7 +347,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa DecompileContext decompileContext = new DecompileContext(); decompileContext.setLoader(loader); decompileContext.setPrinter(printer); - decompileContext.setHeader("mainInternalTypeName", internalTypeName); + decompileContext.setMainInternalTypeName(internalTypeName); decompileContext.setConfiguration(configuration); deserializer.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/LayoutFragmentProcessorTest.java b/src/test/java/org/jd/core/v1/LayoutFragmentProcessorTest.java index 609d014c..66b7fcaf 100644 --- a/src/test/java/org/jd/core/v1/LayoutFragmentProcessorTest.java +++ b/src/test/java/org/jd/core/v1/LayoutFragmentProcessorTest.java @@ -44,7 +44,7 @@ public void testJdk118Basic() throws Exception { Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); DecompileContext decompileContext = new DecompileContext(); - decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/Basic"); + decompileContext.setMainInternalTypeName("org/jd/core/test/Basic"); decompileContext.setLoader(loader); decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); @@ -72,7 +72,7 @@ public void testJdk131TryCatchFinally() throws Exception { Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); DecompileContext decompileContext = new DecompileContext(); - decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/TryCatchFinally"); + decompileContext.setMainInternalTypeName("org/jd/core/test/TryCatchFinally"); decompileContext.setLoader(loader); decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); @@ -100,7 +100,7 @@ public void testTryCatchFinally() throws Exception { Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); DecompileContext decompileContext = new DecompileContext(); - decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/TryCatchFinally"); + decompileContext.setMainInternalTypeName("org/jd/core/test/TryCatchFinally"); decompileContext.setLoader(loader); decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); @@ -128,7 +128,7 @@ public void testAnonymousClass() throws Exception { Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); DecompileContext decompileContext = new DecompileContext(); - decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/AnonymousClass"); + decompileContext.setMainInternalTypeName("org/jd/core/test/AnonymousClass"); decompileContext.setLoader(loader); decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); @@ -158,7 +158,7 @@ public void testOuterClass() throws Exception { Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); DecompileContext decompileContext = new DecompileContext(); - decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/OuterClass"); + decompileContext.setMainInternalTypeName("org/jd/core/test/OuterClass"); decompileContext.setLoader(loader); decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); @@ -187,7 +187,7 @@ public void testEnumClass() throws Exception { TestTokenizeJavaFragmentProcessor tokenizer = new TestTokenizeJavaFragmentProcessor(); DecompileContext decompileContext = new DecompileContext(); - decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/Enum"); + decompileContext.setMainInternalTypeName("org/jd/core/test/Enum"); decompileContext.setLoader(loader); decompileContext.setPrinter(printer); @@ -217,7 +217,7 @@ public void testAnnotationQuality() throws Exception { TestTokenizeJavaFragmentProcessor tokenizer = new TestTokenizeJavaFragmentProcessor(); DecompileContext decompileContext = new DecompileContext(); - decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/annotation/Quality"); + decompileContext.setMainInternalTypeName("org/jd/core/test/annotation/Quality"); decompileContext.setLoader(loader); decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); @@ -247,7 +247,7 @@ public void testJdk170Array() throws Exception { TestTokenizeJavaFragmentProcessor tokenizer = new TestTokenizeJavaFragmentProcessor(); DecompileContext decompileContext = new DecompileContext(); - decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/Array"); + decompileContext.setMainInternalTypeName("org/jd/core/test/Array"); decompileContext.setLoader(loader); decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); diff --git a/src/test/java/org/jd/core/v1/SignatureParserTest.java b/src/test/java/org/jd/core/v1/SignatureParserTest.java index edd8d698..e9b667d1 100644 --- a/src/test/java/org/jd/core/v1/SignatureParserTest.java +++ b/src/test/java/org/jd/core/v1/SignatureParserTest.java @@ -32,7 +32,7 @@ public void testAnnotatedClass() throws Exception { TypeMaker typeMaker = new TypeMaker(loader); DecompileContext decompileContext = new DecompileContext(); - decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/AnnotatedClass"); + decompileContext.setMainInternalTypeName("org/jd/core/test/AnnotatedClass"); decompileContext.setLoader(loader); deserializer.process(decompileContext); @@ -150,7 +150,7 @@ public void testGenericClass() throws Exception { TypeMaker typeMaker = new TypeMaker(loader); DecompileContext decompileContext = new DecompileContext(); - decompileContext.setHeader("mainInternalTypeName", "org/jd/core/test/GenericClass"); + decompileContext.setMainInternalTypeName("org/jd/core/test/GenericClass"); decompileContext.setLoader(loader); deserializer.process(decompileContext); From 5fd4b0fd9935626695fca071503b5be4ec8e2cd2 Mon Sep 17 00:00:00 2001 From: Yushan Gao Date: Fri, 27 Nov 2020 22:22:48 +0800 Subject: [PATCH 12/28] refactor: move last two info into context as field --- .../java/org/jd/core/v1/model/message/DecompileContext.java | 2 ++ .../jd/core/v1/service/layouter/LayoutFragmentProcessor.java | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/jd/core/v1/model/message/DecompileContext.java b/src/main/java/org/jd/core/v1/model/message/DecompileContext.java index c29cee77..1ee4f0e6 100644 --- a/src/main/java/org/jd/core/v1/model/message/DecompileContext.java +++ b/src/main/java/org/jd/core/v1/model/message/DecompileContext.java @@ -28,6 +28,8 @@ public class DecompileContext { protected int majorVersion; protected int minorVersion; protected int maxLineNumber = Printer.UNKNOWN_LINE_NUMBER; + protected boolean containsByteCode; + protected boolean showBridgeAndSynthetic; @Deprecated protected HashMap headers = new HashMap<>(); diff --git a/src/main/java/org/jd/core/v1/service/layouter/LayoutFragmentProcessor.java b/src/main/java/org/jd/core/v1/service/layouter/LayoutFragmentProcessor.java index 27cec554..18a105ae 100644 --- a/src/main/java/org/jd/core/v1/service/layouter/LayoutFragmentProcessor.java +++ b/src/main/java/org/jd/core/v1/service/layouter/LayoutFragmentProcessor.java @@ -34,8 +34,8 @@ public class LayoutFragmentProcessor implements Processor { @Override public void process(DecompileContext decompileContext) throws Exception { int maxLineNumber = decompileContext.getMaxLineNumber(); - boolean containsByteCode = decompileContext.getHeader("containsByteCode", Boolean.FALSE); - boolean showBridgeAndSynthetic = decompileContext.getHeader("showBridgeAndSynthetic", Boolean.FALSE); + boolean containsByteCode = decompileContext.isContainsByteCode(); + boolean showBridgeAndSynthetic = decompileContext.isShowBridgeAndSynthetic(); Map configuration = decompileContext.getConfiguration(); Object realignLineNumbersConfiguration = (configuration == null) ? "false" : configuration.get("realignLineNumbers"); boolean realignLineNumbers = (realignLineNumbersConfiguration == null) ? false : "true".equals(realignLineNumbersConfiguration.toString()); From f3684664ccf821de04d45c54a3ed3754114c8c7f Mon Sep 17 00:00:00 2001 From: Yushan Gao Date: Fri, 27 Nov 2020 22:24:04 +0800 Subject: [PATCH 13/28] chore: remove head in context --- .../v1/model/message/DecompileContext.java | 28 +------------------ 1 file changed, 1 insertion(+), 27 deletions(-) diff --git a/src/main/java/org/jd/core/v1/model/message/DecompileContext.java b/src/main/java/org/jd/core/v1/model/message/DecompileContext.java index 1ee4f0e6..921cb778 100644 --- a/src/main/java/org/jd/core/v1/model/message/DecompileContext.java +++ b/src/main/java/org/jd/core/v1/model/message/DecompileContext.java @@ -31,8 +31,6 @@ public class DecompileContext { protected boolean containsByteCode; protected boolean showBridgeAndSynthetic; - @Deprecated - protected HashMap headers = new HashMap<>(); protected Object body; public DecompileContext() {} @@ -40,31 +38,7 @@ public DecompileContext() {} public DecompileContext(Object body) { this.body = body; } - - @SuppressWarnings("unchecked") - public T getHeader(String name) { - return (T)headers.get(name); - } - - @SuppressWarnings("unchecked") - public T getHeader(String name, T defaultValue) { - Object value = headers.get(name); - - if (value == null) { - return defaultValue; - } else { - return (T)value; - } - } - - public void setHeader(String name, Object value) { - headers.put(name, value); - } - - public Object removeHeader(String name) { - return headers.remove(name); - } - + @SuppressWarnings("unchecked") public T getBody() { return (T)body; From 8b1e1db351df2796a94aa0a46ce9eeea66575952 Mon Sep 17 00:00:00 2001 From: Yushan Gao Date: Fri, 27 Nov 2020 22:38:36 +0800 Subject: [PATCH 14/28] chore: change permission for gradlew --- gradlew | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 gradlew diff --git a/gradlew b/gradlew old mode 100644 new mode 100755 From e49cf0cb19bd09bb80de274a2ffd5f27b0236ea7 Mon Sep 17 00:00:00 2001 From: Yushan Gao Date: Fri, 27 Nov 2020 22:38:47 +0800 Subject: [PATCH 15/28] fix: fix test case --- src/test/java/org/jd/core/v1/JavaArrayTest.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/test/java/org/jd/core/v1/JavaArrayTest.java b/src/test/java/org/jd/core/v1/JavaArrayTest.java index 4f3cf4ad..2c4f27d0 100644 --- a/src/test/java/org/jd/core/v1/JavaArrayTest.java +++ b/src/test/java/org/jd/core/v1/JavaArrayTest.java @@ -116,13 +116,13 @@ Class[] test7(int i) { String source = decompile(new ClassPathLoader(), new PlainTextPrinter(), internalClassName); // Check decompiled source code - assertTrue(source.matches(PatternMaker.make(": 95 */", "return (i == 0) ? new Class[] { Object.class } : null;"))); - assertTrue(source.matches(PatternMaker.make(": 98 */", "return (i == 0) ? new Class[] { Object.class, String.class, Number.class } : null;"))); - assertTrue(source.matches(PatternMaker.make(": 101 */", "return (i == 0) ? new Class[][] { { Object.class }, { String.class, Number.class} } : null;"))); - assertTrue(source.matches(PatternMaker.make(": 104 */", "return (i == 0) ? null : new Class[] { Object.class };"))); - assertTrue(source.matches(PatternMaker.make(": 107 */", "return (i == 0) ? null : new Class[] { Object.class, String.class, Number.class };"))); - assertTrue(source.matches(PatternMaker.make(": 110 */", "return (i == 0) ? null : new Class[][] { { Object.class }, { String.class, Number.class} };"))); - assertTrue(source.matches(PatternMaker.make(": 113 */", "return (i == 0) ? new Class[] { Object.class } : new Class[] { String.class, Number.class };"))); + assertTrue(source.matches(PatternMaker.make(": 93 */", "return (i == 0) ? new Class[] { Object.class } : null;"))); + assertTrue(source.matches(PatternMaker.make(": 96 */", "return (i == 0) ? new Class[] { Object.class, String.class, Number.class } : null;"))); + assertTrue(source.matches(PatternMaker.make(": 99 */", "return (i == 0) ? new Class[][] { { Object.class }, { String.class, Number.class } } : null;"))); + assertTrue(source.matches(PatternMaker.make(": 102 */", "return (i == 0) ? null : new Class[] { Object.class };"))); + assertTrue(source.matches(PatternMaker.make(": 105 */", "return (i == 0) ? null : new Class[] { Object.class, String.class, Number.class };"))); + assertTrue(source.matches(PatternMaker.make(": 108 */", "return (i == 0) ? null : new Class[][] { { Object.class }, { String.class, Number.class} };"))); + assertTrue(source.matches(PatternMaker.make(": 111 */", "return (i == 0) ? new Class[] { Object.class } : new Class[] { String.class, Number.class };"))); // Recompile decompiled source code and check errors assertTrue(CompilerUtil.compile("1.8", new JavaSourceFileObject(internalClassName, source))); From b683d1ad277aef6a39b91e0390a899f151c95333 Mon Sep 17 00:00:00 2001 From: Yushan Gao Date: Fri, 27 Nov 2020 23:16:53 +0800 Subject: [PATCH 16/28] refactor: remove unused interface Processor --- .../jd/core/v1/model/processor/Processor.java | 14 ----- .../ClassFileToJavaSyntaxProcessor.java | 3 +- .../processor/ConvertClassFileProcessor.java | 57 +++++++++++++++---- .../UpdateJavaSyntaxTreeProcessor.java | 4 +- .../DeserializeClassFileProcessor.java | 4 +- .../JavaSyntaxToJavaFragmentProcessor.java | 3 +- .../layouter/LayoutFragmentProcessor.java | 4 +- .../JavaFragmentToTokenProcessor.java | 4 +- .../service/writer/WriteTokenProcessor.java | 4 +- .../TestTokenizeJavaFragmentProcessor.java | 4 +- 10 files changed, 55 insertions(+), 46 deletions(-) delete mode 100644 src/main/java/org/jd/core/v1/model/processor/Processor.java diff --git a/src/main/java/org/jd/core/v1/model/processor/Processor.java b/src/main/java/org/jd/core/v1/model/processor/Processor.java deleted file mode 100644 index 16d1ed09..00000000 --- a/src/main/java/org/jd/core/v1/model/processor/Processor.java +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Copyright (c) 2008-2019 Emmanuel Dupuy. - * This project is distributed under the GPLv3 license. - * This is a Copyleft license that gives the user the right to use, - * copy and modify the code freely for non-commercial purposes. - */ - -package org.jd.core.v1.model.processor; - -import org.jd.core.v1.model.message.DecompileContext; - -public interface Processor { - void process(DecompileContext decompileContext) throws Exception; -} diff --git a/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/ClassFileToJavaSyntaxProcessor.java b/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/ClassFileToJavaSyntaxProcessor.java index 4ab87bb4..97492a70 100644 --- a/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/ClassFileToJavaSyntaxProcessor.java +++ b/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/ClassFileToJavaSyntaxProcessor.java @@ -9,7 +9,6 @@ import org.jd.core.v1.api.loader.Loader; import org.jd.core.v1.model.message.DecompileContext; -import org.jd.core.v1.model.processor.Processor; import org.jd.core.v1.service.converter.classfiletojavasyntax.processor.ConvertClassFileProcessor; import org.jd.core.v1.service.converter.classfiletojavasyntax.processor.UpdateJavaSyntaxTreeProcessor; import org.jd.core.v1.service.converter.classfiletojavasyntax.util.TypeMaker; @@ -24,7 +23,7 @@ * * @see ConvertClassFileProcessor */ -public class ClassFileToJavaSyntaxProcessor implements Processor { +public class ClassFileToJavaSyntaxProcessor { protected static final ConvertClassFileProcessor CONVERT_CLASS_FILE_PROCESSOR = new ConvertClassFileProcessor(); protected static final UpdateJavaSyntaxTreeProcessor UPDATE_JAVA_SYNTAX_TREE_PROCESSOR = new UpdateJavaSyntaxTreeProcessor(); diff --git a/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/ConvertClassFileProcessor.java b/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/ConvertClassFileProcessor.java index 6d7cc883..6a4284d4 100644 --- a/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/ConvertClassFileProcessor.java +++ b/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/ConvertClassFileProcessor.java @@ -11,17 +11,55 @@ import org.jd.core.v1.model.classfile.Constants; import org.jd.core.v1.model.classfile.Field; import org.jd.core.v1.model.classfile.Method; -import org.jd.core.v1.model.classfile.attribute.*; -import org.jd.core.v1.model.classfile.constant.*; +import org.jd.core.v1.model.classfile.attribute.Annotations; +import org.jd.core.v1.model.classfile.attribute.AttributeAnnotationDefault; +import org.jd.core.v1.model.classfile.attribute.AttributeCode; +import org.jd.core.v1.model.classfile.attribute.AttributeConstantValue; +import org.jd.core.v1.model.classfile.attribute.AttributeLineNumberTable; +import org.jd.core.v1.model.classfile.attribute.AttributeModule; +import org.jd.core.v1.model.classfile.attribute.ModuleInfo; +import org.jd.core.v1.model.classfile.attribute.PackageInfo; +import org.jd.core.v1.model.classfile.attribute.ServiceInfo; +import org.jd.core.v1.model.classfile.constant.Constant; +import org.jd.core.v1.model.classfile.constant.ConstantDouble; +import org.jd.core.v1.model.classfile.constant.ConstantFloat; +import org.jd.core.v1.model.classfile.constant.ConstantInteger; +import org.jd.core.v1.model.classfile.constant.ConstantLong; +import org.jd.core.v1.model.classfile.constant.ConstantUtf8; +import org.jd.core.v1.model.classfile.constant.ConstantValue; import org.jd.core.v1.model.javasyntax.CompilationUnit; -import org.jd.core.v1.model.javasyntax.declaration.*; -import org.jd.core.v1.model.javasyntax.expression.*; +import org.jd.core.v1.model.javasyntax.declaration.Declaration; +import org.jd.core.v1.model.javasyntax.declaration.ExpressionVariableInitializer; +import org.jd.core.v1.model.javasyntax.declaration.FieldDeclarator; +import org.jd.core.v1.model.javasyntax.declaration.ModuleDeclaration; +import org.jd.core.v1.model.javasyntax.declaration.TypeDeclaration; +import org.jd.core.v1.model.javasyntax.expression.DoubleConstantExpression; +import org.jd.core.v1.model.javasyntax.expression.Expression; +import org.jd.core.v1.model.javasyntax.expression.FloatConstantExpression; +import org.jd.core.v1.model.javasyntax.expression.IntegerConstantExpression; +import org.jd.core.v1.model.javasyntax.expression.LongConstantExpression; +import org.jd.core.v1.model.javasyntax.expression.StringConstantExpression; import org.jd.core.v1.model.javasyntax.reference.BaseAnnotationReference; import org.jd.core.v1.model.javasyntax.reference.ElementValue; -import org.jd.core.v1.model.javasyntax.type.*; +import org.jd.core.v1.model.javasyntax.type.BaseType; +import org.jd.core.v1.model.javasyntax.type.BaseTypeParameter; +import org.jd.core.v1.model.javasyntax.type.GenericType; +import org.jd.core.v1.model.javasyntax.type.Type; +import org.jd.core.v1.model.javasyntax.type.TypeArgument; +import org.jd.core.v1.model.javasyntax.type.TypeParameter; +import org.jd.core.v1.model.javasyntax.type.TypeParameterWithTypeBounds; import org.jd.core.v1.model.message.DecompileContext; -import org.jd.core.v1.model.processor.Processor; -import org.jd.core.v1.service.converter.classfiletojavasyntax.model.javasyntax.declaration.*; +import org.jd.core.v1.service.converter.classfiletojavasyntax.model.javasyntax.declaration.ClassFileAnnotationDeclaration; +import org.jd.core.v1.service.converter.classfiletojavasyntax.model.javasyntax.declaration.ClassFileBodyDeclaration; +import org.jd.core.v1.service.converter.classfiletojavasyntax.model.javasyntax.declaration.ClassFileClassDeclaration; +import org.jd.core.v1.service.converter.classfiletojavasyntax.model.javasyntax.declaration.ClassFileConstructorDeclaration; +import org.jd.core.v1.service.converter.classfiletojavasyntax.model.javasyntax.declaration.ClassFileConstructorOrMethodDeclaration; +import org.jd.core.v1.service.converter.classfiletojavasyntax.model.javasyntax.declaration.ClassFileEnumDeclaration; +import org.jd.core.v1.service.converter.classfiletojavasyntax.model.javasyntax.declaration.ClassFileFieldDeclaration; +import org.jd.core.v1.service.converter.classfiletojavasyntax.model.javasyntax.declaration.ClassFileInterfaceDeclaration; +import org.jd.core.v1.service.converter.classfiletojavasyntax.model.javasyntax.declaration.ClassFileMethodDeclaration; +import org.jd.core.v1.service.converter.classfiletojavasyntax.model.javasyntax.declaration.ClassFileStaticInitializerDeclaration; +import org.jd.core.v1.service.converter.classfiletojavasyntax.model.javasyntax.declaration.ClassFileTypeDeclaration; import org.jd.core.v1.service.converter.classfiletojavasyntax.util.AnnotationConverter; import org.jd.core.v1.service.converter.classfiletojavasyntax.util.TypeMaker; import org.jd.core.v1.service.converter.classfiletojavasyntax.visitor.PopulateBindingsWithTypeParameterVisitor; @@ -32,7 +70,7 @@ import java.util.List; import java.util.Map; -import static org.jd.core.v1.model.classfile.Constants.*; +import static org.jd.core.v1.model.classfile.Constants.ACC_STATIC; /** * Convert ClassFile model to Java syntax model.

@@ -40,7 +78,7 @@ * Input: {@link org.jd.core.v1.model.classfile.ClassFile}
* Output: {@link org.jd.core.v1.model.javasyntax.CompilationUnit}
*/ -public class ConvertClassFileProcessor implements Processor { +public class ConvertClassFileProcessor { protected PopulateBindingsWithTypeParameterVisitor populateBindingsWithTypeParameterVisitor = new PopulateBindingsWithTypeParameterVisitor() { @Override public void visit(TypeParameter parameter) { @@ -53,7 +91,6 @@ public void visit(TypeParameterWithTypeBounds parameter) { } }; - @Override public void process(DecompileContext decompileContext) throws Exception { TypeMaker typeMaker = decompileContext.getTypeMaker(); ClassFile classFile = decompileContext.getBody(); diff --git a/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/UpdateJavaSyntaxTreeProcessor.java b/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/UpdateJavaSyntaxTreeProcessor.java index 21c649b2..68aca767 100644 --- a/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/UpdateJavaSyntaxTreeProcessor.java +++ b/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/UpdateJavaSyntaxTreeProcessor.java @@ -9,7 +9,6 @@ import org.jd.core.v1.model.javasyntax.CompilationUnit; import org.jd.core.v1.model.message.DecompileContext; -import org.jd.core.v1.model.processor.Processor; import org.jd.core.v1.service.converter.classfiletojavasyntax.util.TypeMaker; import org.jd.core.v1.service.converter.classfiletojavasyntax.visitor.UpdateJavaSyntaxTreeStep0Visitor; import org.jd.core.v1.service.converter.classfiletojavasyntax.visitor.UpdateJavaSyntaxTreeStep1Visitor; @@ -21,9 +20,8 @@ * Input: {@link CompilationUnit}
* Output: {@link CompilationUnit}
*/ -public class UpdateJavaSyntaxTreeProcessor implements Processor { +public class UpdateJavaSyntaxTreeProcessor { - @Override public void process(DecompileContext decompileContext) throws Exception { TypeMaker typeMaker = decompileContext.getTypeMaker(); CompilationUnit compilationUnit = decompileContext.getBody(); diff --git a/src/main/java/org/jd/core/v1/service/deserializer/classfile/DeserializeClassFileProcessor.java b/src/main/java/org/jd/core/v1/service/deserializer/classfile/DeserializeClassFileProcessor.java index 72637467..4cf6c663 100644 --- a/src/main/java/org/jd/core/v1/service/deserializer/classfile/DeserializeClassFileProcessor.java +++ b/src/main/java/org/jd/core/v1/service/deserializer/classfile/DeserializeClassFileProcessor.java @@ -10,7 +10,6 @@ import org.jd.core.v1.api.loader.Loader; import org.jd.core.v1.model.classfile.ClassFile; import org.jd.core.v1.model.message.DecompileContext; -import org.jd.core.v1.model.processor.Processor; /** * Create a ClassFile model from a loader and a internal type name.

@@ -18,9 +17,8 @@ * Input: -
* Output: {@link org.jd.core.v1.model.classfile.ClassFile}
*/ -public class DeserializeClassFileProcessor extends ClassFileDeserializer implements Processor { +public class DeserializeClassFileProcessor extends ClassFileDeserializer { - @Override public void process(DecompileContext decompileContext) throws Exception { Loader loader = decompileContext.getLoader(); String internalTypeName = decompileContext.getMainInternalTypeName(); diff --git a/src/main/java/org/jd/core/v1/service/fragmenter/javasyntaxtojavafragment/JavaSyntaxToJavaFragmentProcessor.java b/src/main/java/org/jd/core/v1/service/fragmenter/javasyntaxtojavafragment/JavaSyntaxToJavaFragmentProcessor.java index d62d9546..b816f7a8 100644 --- a/src/main/java/org/jd/core/v1/service/fragmenter/javasyntaxtojavafragment/JavaSyntaxToJavaFragmentProcessor.java +++ b/src/main/java/org/jd/core/v1/service/fragmenter/javasyntaxtojavafragment/JavaSyntaxToJavaFragmentProcessor.java @@ -11,7 +11,6 @@ import org.jd.core.v1.model.javafragment.ImportsFragment; import org.jd.core.v1.model.javasyntax.CompilationUnit; import org.jd.core.v1.model.message.DecompileContext; -import org.jd.core.v1.model.processor.Processor; import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.visitor.CompilationUnitVisitor; import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.visitor.SearchImportsVisitor; @@ -21,7 +20,7 @@ * Input: {@link org.jd.core.v1.model.javasyntax.CompilationUnit}
* Output: List<{@link org.jd.core.v1.model.fragment.Fragment}>
*/ -public class JavaSyntaxToJavaFragmentProcessor implements Processor { +public class JavaSyntaxToJavaFragmentProcessor { public void process(DecompileContext decompileContext) throws Exception { Loader loader = decompileContext.getLoader(); diff --git a/src/main/java/org/jd/core/v1/service/layouter/LayoutFragmentProcessor.java b/src/main/java/org/jd/core/v1/service/layouter/LayoutFragmentProcessor.java index 18a105ae..e2c9ca0f 100644 --- a/src/main/java/org/jd/core/v1/service/layouter/LayoutFragmentProcessor.java +++ b/src/main/java/org/jd/core/v1/service/layouter/LayoutFragmentProcessor.java @@ -11,7 +11,6 @@ import org.jd.core.v1.model.fragment.FlexibleFragment; import org.jd.core.v1.model.fragment.Fragment; import org.jd.core.v1.model.message.DecompileContext; -import org.jd.core.v1.model.processor.Processor; import org.jd.core.v1.service.layouter.model.Section; import org.jd.core.v1.service.layouter.util.VisitorsHolder; import org.jd.core.v1.service.layouter.visitor.BuildSectionsVisitor; @@ -29,9 +28,8 @@ * Input: List<{@link Fragment}>
* Output: List<{@link Fragment}>
*/ -public class LayoutFragmentProcessor implements Processor { +public class LayoutFragmentProcessor { - @Override public void process(DecompileContext decompileContext) throws Exception { int maxLineNumber = decompileContext.getMaxLineNumber(); boolean containsByteCode = decompileContext.isContainsByteCode(); diff --git a/src/main/java/org/jd/core/v1/service/tokenizer/javafragmenttotoken/JavaFragmentToTokenProcessor.java b/src/main/java/org/jd/core/v1/service/tokenizer/javafragmenttotoken/JavaFragmentToTokenProcessor.java index f92bb321..96d6177a 100644 --- a/src/main/java/org/jd/core/v1/service/tokenizer/javafragmenttotoken/JavaFragmentToTokenProcessor.java +++ b/src/main/java/org/jd/core/v1/service/tokenizer/javafragmenttotoken/JavaFragmentToTokenProcessor.java @@ -9,7 +9,6 @@ import org.jd.core.v1.model.javafragment.JavaFragment; import org.jd.core.v1.model.message.DecompileContext; -import org.jd.core.v1.model.processor.Processor; import org.jd.core.v1.service.tokenizer.javafragmenttotoken.visitor.TokenizeJavaFragmentVisitor; import java.util.List; @@ -20,9 +19,8 @@ * Input: List<{@link org.jd.core.v1.model.fragment.Fragment}>
* Output: List<{@link org.jd.core.v1.model.token.Token}>
*/ -public class JavaFragmentToTokenProcessor implements Processor { +public class JavaFragmentToTokenProcessor { - @Override public void process(DecompileContext decompileContext) throws Exception { List fragments = decompileContext.getBody(); TokenizeJavaFragmentVisitor visitor = new TokenizeJavaFragmentVisitor(fragments.size() * 3); diff --git a/src/main/java/org/jd/core/v1/service/writer/WriteTokenProcessor.java b/src/main/java/org/jd/core/v1/service/writer/WriteTokenProcessor.java index 744f1dd9..78e94707 100644 --- a/src/main/java/org/jd/core/v1/service/writer/WriteTokenProcessor.java +++ b/src/main/java/org/jd/core/v1/service/writer/WriteTokenProcessor.java @@ -9,7 +9,6 @@ import org.jd.core.v1.api.printer.Printer; import org.jd.core.v1.model.message.DecompileContext; -import org.jd.core.v1.model.processor.Processor; import org.jd.core.v1.model.token.Token; import org.jd.core.v1.service.writer.visitor.PrintTokenVisitor; @@ -21,9 +20,8 @@ * Input: List<{@link org.jd.core.v1.model.token.Token}>
* Output: -
*/ -public class WriteTokenProcessor implements Processor { +public class WriteTokenProcessor { - @Override public void process(DecompileContext decompileContext) throws Exception { Printer printer = decompileContext.getPrinter(); List tokens = decompileContext.getBody(); diff --git a/src/test/java/org/jd/core/v1/services/tokenizer/javafragmenttotoken/TestTokenizeJavaFragmentProcessor.java b/src/test/java/org/jd/core/v1/services/tokenizer/javafragmenttotoken/TestTokenizeJavaFragmentProcessor.java index a7fc61a2..cf61228c 100644 --- a/src/test/java/org/jd/core/v1/services/tokenizer/javafragmenttotoken/TestTokenizeJavaFragmentProcessor.java +++ b/src/test/java/org/jd/core/v1/services/tokenizer/javafragmenttotoken/TestTokenizeJavaFragmentProcessor.java @@ -9,14 +9,12 @@ import org.jd.core.v1.model.javafragment.JavaFragment; import org.jd.core.v1.model.message.DecompileContext; -import org.jd.core.v1.model.processor.Processor; import org.jd.core.v1.services.tokenizer.javafragmenttotoken.visitor.TokenizeJavaFragmentTestVisitor; import java.util.List; -public class TestTokenizeJavaFragmentProcessor implements Processor { +public class TestTokenizeJavaFragmentProcessor { - @Override public void process(DecompileContext decompileContext) throws Exception { List fragments = decompileContext.getBody(); TokenizeJavaFragmentTestVisitor visitor = new TokenizeJavaFragmentTestVisitor(fragments.size() * 3); From 7a3799b3bf4dae4b87bbf603cface996999c845f Mon Sep 17 00:00:00 2001 From: Yushan Gao Date: Fri, 27 Nov 2020 23:42:20 +0800 Subject: [PATCH 17/28] refactor: delete unused DeserializeClassFileProcessor --- .../v1/ClassFileToJavaSourceDecompiler.java | 10 ++++-- .../DeserializeClassFileProcessor.java | 29 ---------------- .../jd/core/v1/AnnotationConverterTest.java | 14 ++++---- src/test/java/org/jd/core/v1/CfrTest.java | 9 +++-- .../jd/core/v1/ClassFileDeserializerTest.java | 9 ++--- .../org/jd/core/v1/ControlFlowGraphTest.java | 30 +++++++++++++---- .../jd/core/v1/JarFileToJavaSourceTest.java | 12 ++++--- .../org/jd/core/v1/Java9InterfaceTest.java | 9 +++-- .../org/jd/core/v1/JavaAnnotationTest.java | 9 +++-- .../jd/core/v1/JavaAnonymousClassTest.java | 9 +++-- .../java/org/jd/core/v1/JavaArrayTest.java | 9 +++-- .../java/org/jd/core/v1/JavaAssertTest.java | 9 +++-- .../org/jd/core/v1/JavaAutoboxingTest.java | 9 +++-- .../java/org/jd/core/v1/JavaBasicTest.java | 11 ++++--- .../java/org/jd/core/v1/JavaEnumTest.java | 9 +++-- .../java/org/jd/core/v1/JavaGenericTest.java | 9 +++-- .../java/org/jd/core/v1/JavaIfElseTest.java | 9 +++-- .../jd/core/v1/JavaInnerOuterClassTest.java | 9 +++-- .../java/org/jd/core/v1/JavaLambdaTest.java | 9 +++-- .../java/org/jd/core/v1/JavaLoopTest.java | 9 +++-- .../jd/core/v1/JavaMethodOverloadingTest.java | 9 +++-- .../core/v1/JavaOperatorPrecedenceTest.java | 9 +++-- .../java/org/jd/core/v1/JavaSwitchTest.java | 9 +++-- .../jd/core/v1/JavaSynchronizedBlockTest.java | 9 +++-- .../jd/core/v1/JavaTernaryOperatorTest.java | 9 +++-- .../jd/core/v1/JavaTryCatchFinallyTest.java | 9 +++-- .../core/v1/LayoutFragmentProcessorTest.java | 33 ++++++++++++------- .../org/jd/core/v1/SignatureParserTest.java | 21 +++++++----- 28 files changed, 204 insertions(+), 136 deletions(-) delete mode 100644 src/main/java/org/jd/core/v1/service/deserializer/classfile/DeserializeClassFileProcessor.java diff --git a/src/main/java/org/jd/core/v1/ClassFileToJavaSourceDecompiler.java b/src/main/java/org/jd/core/v1/ClassFileToJavaSourceDecompiler.java index ce3fc652..cc7c91c2 100644 --- a/src/main/java/org/jd/core/v1/ClassFileToJavaSourceDecompiler.java +++ b/src/main/java/org/jd/core/v1/ClassFileToJavaSourceDecompiler.java @@ -10,9 +10,10 @@ import org.jd.core.v1.api.Decompiler; import org.jd.core.v1.api.loader.Loader; import org.jd.core.v1.api.printer.Printer; +import org.jd.core.v1.model.classfile.ClassFile; import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.DeserializeClassFileProcessor; +import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; @@ -21,7 +22,7 @@ import java.util.Map; public class ClassFileToJavaSourceDecompiler implements Decompiler { - protected DeserializeClassFileProcessor deserializer = new DeserializeClassFileProcessor(); + protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); @@ -50,7 +51,10 @@ public void decompile(Loader loader, Printer printer, String internalName, Map
- * - * Input: -
- * Output: {@link org.jd.core.v1.model.classfile.ClassFile}
- */ -public class DeserializeClassFileProcessor extends ClassFileDeserializer { - - public void process(DecompileContext decompileContext) throws Exception { - Loader loader = decompileContext.getLoader(); - String internalTypeName = decompileContext.getMainInternalTypeName(); - ClassFile classFile = loadClassFile(loader, internalTypeName); - - decompileContext.setBody(classFile); - } -} diff --git a/src/test/java/org/jd/core/v1/AnnotationConverterTest.java b/src/test/java/org/jd/core/v1/AnnotationConverterTest.java index a82a83cb..a373245d 100644 --- a/src/test/java/org/jd/core/v1/AnnotationConverterTest.java +++ b/src/test/java/org/jd/core/v1/AnnotationConverterTest.java @@ -11,11 +11,14 @@ import org.jd.core.v1.loader.ZipLoader; import org.jd.core.v1.model.classfile.ClassFile; import org.jd.core.v1.model.classfile.attribute.Annotations; -import org.jd.core.v1.model.javasyntax.reference.*; +import org.jd.core.v1.model.javasyntax.reference.AnnotationReference; +import org.jd.core.v1.model.javasyntax.reference.AnnotationReferences; +import org.jd.core.v1.model.javasyntax.reference.BaseAnnotationReference; +import org.jd.core.v1.model.javasyntax.reference.ElementValuePairs; import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.service.converter.classfiletojavasyntax.util.AnnotationConverter; import org.jd.core.v1.service.converter.classfiletojavasyntax.util.TypeMaker; -import org.jd.core.v1.service.deserializer.classfile.DeserializeClassFileProcessor; +import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; import org.junit.Test; import java.io.InputStream; @@ -29,15 +32,14 @@ public void test() throws Exception { ZipLoader loader = new ZipLoader(is); TypeMaker typeMaker = new TypeMaker(loader); AnnotationConverter converter = new AnnotationConverter(typeMaker); - DeserializeClassFileProcessor deserializer = new DeserializeClassFileProcessor(); + ClassFileDeserializer deserializer = new ClassFileDeserializer(); DecompileContext decompileContext = new DecompileContext(); decompileContext.setMainInternalTypeName("org/jd/core/test/AnnotatedClass"); decompileContext.setLoader(loader); - deserializer.process(decompileContext); - - ClassFile classFile = decompileContext.getBody(); + ClassFile classFile = deserializer.loadClassFile(loader, decompileContext.getMainInternalTypeName()); + decompileContext.setBody(classFile); // Check class assertNotNull(classFile); diff --git a/src/test/java/org/jd/core/v1/CfrTest.java b/src/test/java/org/jd/core/v1/CfrTest.java index a13ad854..ec8e4e7c 100644 --- a/src/test/java/org/jd/core/v1/CfrTest.java +++ b/src/test/java/org/jd/core/v1/CfrTest.java @@ -13,11 +13,12 @@ import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ClassPathLoader; +import org.jd.core.v1.model.classfile.ClassFile; import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.DeserializeClassFileProcessor; +import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; @@ -28,7 +29,7 @@ import java.util.Map; public class CfrTest extends TestCase { - protected DeserializeClassFileProcessor deserializer = new DeserializeClassFileProcessor(); + protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); @@ -84,7 +85,9 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa decompileContext.setMainInternalTypeName(internalTypeName); decompileContext.setConfiguration(configuration); - deserializer.process(decompileContext); + ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); + decompileContext.setBody(classFile); + converter.process(decompileContext); fragmenter.process(decompileContext); layouter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/ClassFileDeserializerTest.java b/src/test/java/org/jd/core/v1/ClassFileDeserializerTest.java index 89b59195..c3636a77 100644 --- a/src/test/java/org/jd/core/v1/ClassFileDeserializerTest.java +++ b/src/test/java/org/jd/core/v1/ClassFileDeserializerTest.java @@ -8,7 +8,6 @@ package org.jd.core.v1; import junit.framework.TestCase; - import org.jd.core.v1.api.loader.Loader; import org.jd.core.v1.api.loader.LoaderException; import org.jd.core.v1.loader.ZipLoader; @@ -21,7 +20,6 @@ import org.jd.core.v1.model.classfile.constant.ConstantUtf8; import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; -import org.jd.core.v1.service.deserializer.classfile.DeserializeClassFileProcessor; import org.junit.Test; import java.io.InputStream; @@ -55,15 +53,14 @@ public byte[] load(String internalName) throws LoaderException { public void testAnnotatedClass() throws Exception { InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-1.7.0.zip"); ZipLoader loader = new ZipLoader(is); - DeserializeClassFileProcessor deserializer = new DeserializeClassFileProcessor(); + ClassFileDeserializer deserializer = new ClassFileDeserializer(); DecompileContext decompileContext = new DecompileContext(); decompileContext.setMainInternalTypeName("org/jd/core/test/AnnotatedClass"); decompileContext.setLoader(loader); - deserializer.process(decompileContext); - - ClassFile classFile = decompileContext.getBody(); + ClassFile classFile = deserializer.loadClassFile(loader, decompileContext.getMainInternalTypeName()); + decompileContext.setBody(classFile); // Check class assertNotNull(classFile); diff --git a/src/test/java/org/jd/core/v1/ControlFlowGraphTest.java b/src/test/java/org/jd/core/v1/ControlFlowGraphTest.java index 334f0f0e..6573ec66 100644 --- a/src/test/java/org/jd/core/v1/ControlFlowGraphTest.java +++ b/src/test/java/org/jd/core/v1/ControlFlowGraphTest.java @@ -9,20 +9,34 @@ import junit.framework.TestCase; import org.jd.core.v1.api.loader.Loader; +import org.jd.core.v1.cfg.ControlFlowGraphPlantUMLWriter; import org.jd.core.v1.loader.ClassPathLoader; import org.jd.core.v1.loader.ZipLoader; +import org.jd.core.v1.model.classfile.ClassFile; import org.jd.core.v1.model.classfile.Method; import org.jd.core.v1.model.javasyntax.CompilationUnit; -import org.jd.core.v1.model.javasyntax.declaration.*; +import org.jd.core.v1.model.javasyntax.declaration.AnnotationDeclaration; +import org.jd.core.v1.model.javasyntax.declaration.BaseTypeDeclaration; +import org.jd.core.v1.model.javasyntax.declaration.BodyDeclaration; +import org.jd.core.v1.model.javasyntax.declaration.EnumDeclaration; +import org.jd.core.v1.model.javasyntax.declaration.InterfaceDeclaration; import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.service.converter.classfiletojavasyntax.model.cfg.BasicBlock; import org.jd.core.v1.service.converter.classfiletojavasyntax.model.cfg.ControlFlowGraph; import org.jd.core.v1.service.converter.classfiletojavasyntax.model.cfg.Loop; -import org.jd.core.v1.service.converter.classfiletojavasyntax.model.javasyntax.declaration.*; +import org.jd.core.v1.service.converter.classfiletojavasyntax.model.javasyntax.declaration.ClassFileBodyDeclaration; +import org.jd.core.v1.service.converter.classfiletojavasyntax.model.javasyntax.declaration.ClassFileConstructorDeclaration; +import org.jd.core.v1.service.converter.classfiletojavasyntax.model.javasyntax.declaration.ClassFileMemberDeclaration; +import org.jd.core.v1.service.converter.classfiletojavasyntax.model.javasyntax.declaration.ClassFileMethodDeclaration; +import org.jd.core.v1.service.converter.classfiletojavasyntax.model.javasyntax.declaration.ClassFileStaticInitializerDeclaration; import org.jd.core.v1.service.converter.classfiletojavasyntax.processor.ConvertClassFileProcessor; -import org.jd.core.v1.service.converter.classfiletojavasyntax.util.*; -import org.jd.core.v1.service.deserializer.classfile.DeserializeClassFileProcessor; -import org.jd.core.v1.cfg.ControlFlowGraphPlantUMLWriter; +import org.jd.core.v1.service.converter.classfiletojavasyntax.util.ControlFlowGraphGotoReducer; +import org.jd.core.v1.service.converter.classfiletojavasyntax.util.ControlFlowGraphLoopReducer; +import org.jd.core.v1.service.converter.classfiletojavasyntax.util.ControlFlowGraphMaker; +import org.jd.core.v1.service.converter.classfiletojavasyntax.util.ControlFlowGraphReducer; +import org.jd.core.v1.service.converter.classfiletojavasyntax.util.TypeMaker; +import org.jd.core.v1.service.converter.classfiletojavasyntax.util.WatchDog; +import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; import org.junit.Test; import java.io.FileInputStream; @@ -35,7 +49,7 @@ import static org.jd.core.v1.service.converter.classfiletojavasyntax.model.cfg.BasicBlock.*; public class ControlFlowGraphTest extends TestCase { - protected DeserializeClassFileProcessor deserializer = new DeserializeClassFileProcessor(); + protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); protected ConvertClassFileProcessor converter = new ConvertClassFileProcessor(); protected ClassPathLoader loader = new ClassPathLoader(); protected TypeMaker typeMaker = new TypeMaker(loader); @@ -2656,7 +2670,9 @@ protected Method searchMethod(Loader loader, TypeMaker typeMaker, String interna decompileContext.setLoader(loader); decompileContext.setTypeMaker(typeMaker); - deserializer.process(decompileContext); + ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); + decompileContext.setBody(classFile); + converter.process(decompileContext); CompilationUnit compilationUnit = decompileContext.getBody(); diff --git a/src/test/java/org/jd/core/v1/JarFileToJavaSourceTest.java b/src/test/java/org/jd/core/v1/JarFileToJavaSourceTest.java index 08a6e24d..598b4e8f 100644 --- a/src/test/java/org/jd/core/v1/JarFileToJavaSourceTest.java +++ b/src/test/java/org/jd/core/v1/JarFileToJavaSourceTest.java @@ -11,10 +11,11 @@ import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ZipLoader; +import org.jd.core.v1.model.classfile.ClassFile; import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.DeserializeClassFileProcessor; +import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; @@ -25,10 +26,11 @@ import java.io.FileInputStream; import java.io.InputStream; import java.nio.file.Paths; -import java.util.*; +import java.util.HashMap; +import java.util.Map; public class JarFileToJavaSourceTest extends TestCase { - protected DeserializeClassFileProcessor deserializer = new DeserializeClassFileProcessor(); + protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); @@ -167,7 +169,9 @@ protected void test(InputStream inputStream) throws Exception { try { // Decompile class - deserializer.process(decompileContext); + ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); + decompileContext.setBody(classFile); + converter.process(decompileContext); fragmenter.process(decompileContext); layouter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/Java9InterfaceTest.java b/src/test/java/org/jd/core/v1/Java9InterfaceTest.java index 6ee100cc..7cd14d17 100644 --- a/src/test/java/org/jd/core/v1/Java9InterfaceTest.java +++ b/src/test/java/org/jd/core/v1/Java9InterfaceTest.java @@ -13,11 +13,12 @@ import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ZipLoader; +import org.jd.core.v1.model.classfile.ClassFile; import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.DeserializeClassFileProcessor; +import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; @@ -29,7 +30,7 @@ import java.util.Map; public class Java9InterfaceTest extends TestCase { - protected DeserializeClassFileProcessor deserializer = new DeserializeClassFileProcessor(); + protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); @@ -82,7 +83,9 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa decompileContext.setMainInternalTypeName(internalTypeName); decompileContext.setConfiguration(configuration); - deserializer.process(decompileContext); + ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); + decompileContext.setBody(classFile); + converter.process(decompileContext); fragmenter.process(decompileContext); layouter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaAnnotationTest.java b/src/test/java/org/jd/core/v1/JavaAnnotationTest.java index 9fc286a7..94a834ba 100644 --- a/src/test/java/org/jd/core/v1/JavaAnnotationTest.java +++ b/src/test/java/org/jd/core/v1/JavaAnnotationTest.java @@ -13,11 +13,12 @@ import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ZipLoader; +import org.jd.core.v1.model.classfile.ClassFile; import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.DeserializeClassFileProcessor; +import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; @@ -29,7 +30,7 @@ import java.util.Map; public class JavaAnnotationTest extends TestCase { - protected DeserializeClassFileProcessor deserializer = new DeserializeClassFileProcessor(); + protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); @@ -121,7 +122,9 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa decompileContext.setMainInternalTypeName(internalTypeName); decompileContext.setConfiguration(configuration); - deserializer.process(decompileContext); + ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); + decompileContext.setBody(classFile); + converter.process(decompileContext); fragmenter.process(decompileContext); layouter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaAnonymousClassTest.java b/src/test/java/org/jd/core/v1/JavaAnonymousClassTest.java index 75bae694..4339780b 100644 --- a/src/test/java/org/jd/core/v1/JavaAnonymousClassTest.java +++ b/src/test/java/org/jd/core/v1/JavaAnonymousClassTest.java @@ -13,11 +13,12 @@ import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ZipLoader; +import org.jd.core.v1.model.classfile.ClassFile; import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.DeserializeClassFileProcessor; +import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; @@ -29,7 +30,7 @@ import java.util.Map; public class JavaAnonymousClassTest extends TestCase { - protected DeserializeClassFileProcessor deserializer = new DeserializeClassFileProcessor(); + protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); @@ -129,7 +130,9 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa decompileContext.setMainInternalTypeName(internalTypeName); decompileContext.setConfiguration(configuration); - deserializer.process(decompileContext); + ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); + decompileContext.setBody(classFile); + converter.process(decompileContext); fragmenter.process(decompileContext); layouter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaArrayTest.java b/src/test/java/org/jd/core/v1/JavaArrayTest.java index 2c4f27d0..98502a6a 100644 --- a/src/test/java/org/jd/core/v1/JavaArrayTest.java +++ b/src/test/java/org/jd/core/v1/JavaArrayTest.java @@ -14,11 +14,12 @@ import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ClassPathLoader; import org.jd.core.v1.loader.ZipLoader; +import org.jd.core.v1.model.classfile.ClassFile; import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.DeserializeClassFileProcessor; +import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; @@ -30,7 +31,7 @@ import java.util.Map; public class JavaArrayTest extends TestCase { - protected DeserializeClassFileProcessor deserializer = new DeserializeClassFileProcessor(); + protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); @@ -139,7 +140,9 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa decompileContext.setMainInternalTypeName(internalTypeName); decompileContext.setConfiguration(configuration); - deserializer.process(decompileContext); + ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); + decompileContext.setBody(classFile); + converter.process(decompileContext); fragmenter.process(decompileContext); layouter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaAssertTest.java b/src/test/java/org/jd/core/v1/JavaAssertTest.java index f7c15847..71ad617e 100644 --- a/src/test/java/org/jd/core/v1/JavaAssertTest.java +++ b/src/test/java/org/jd/core/v1/JavaAssertTest.java @@ -13,11 +13,12 @@ import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ZipLoader; +import org.jd.core.v1.model.classfile.ClassFile; import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.DeserializeClassFileProcessor; +import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; @@ -29,7 +30,7 @@ import java.util.Map; public class JavaAssertTest extends TestCase { - protected DeserializeClassFileProcessor deserializer = new DeserializeClassFileProcessor(); + protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); @@ -90,7 +91,9 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa decompileContext.setMainInternalTypeName(internalTypeName); decompileContext.setConfiguration(configuration); - deserializer.process(decompileContext); + ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); + decompileContext.setBody(classFile); + converter.process(decompileContext); fragmenter.process(decompileContext); layouter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaAutoboxingTest.java b/src/test/java/org/jd/core/v1/JavaAutoboxingTest.java index 69ed29fb..308a4559 100644 --- a/src/test/java/org/jd/core/v1/JavaAutoboxingTest.java +++ b/src/test/java/org/jd/core/v1/JavaAutoboxingTest.java @@ -13,11 +13,12 @@ import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ClassPathLoader; +import org.jd.core.v1.model.classfile.ClassFile; import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.DeserializeClassFileProcessor; +import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; @@ -28,7 +29,7 @@ import java.util.Map; public class JavaAutoboxingTest extends TestCase { - protected DeserializeClassFileProcessor deserializer = new DeserializeClassFileProcessor(); + protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); @@ -68,7 +69,9 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa decompileContext.setMainInternalTypeName(internalTypeName); decompileContext.setConfiguration(configuration); - deserializer.process(decompileContext); + ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); + decompileContext.setBody(classFile); + converter.process(decompileContext); fragmenter.process(decompileContext); layouter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaBasicTest.java b/src/test/java/org/jd/core/v1/JavaBasicTest.java index 0f7720cc..b39d2dba 100644 --- a/src/test/java/org/jd/core/v1/JavaBasicTest.java +++ b/src/test/java/org/jd/core/v1/JavaBasicTest.java @@ -14,15 +14,16 @@ import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ClassPathLoader; import org.jd.core.v1.loader.ZipLoader; +import org.jd.core.v1.model.classfile.ClassFile; import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; +import org.jd.core.v1.regex.PatternMaker; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.DeserializeClassFileProcessor; +import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; import org.jd.core.v1.service.writer.WriteTokenProcessor; -import org.jd.core.v1.regex.PatternMaker; import org.junit.Test; import java.io.InputStream; @@ -30,7 +31,7 @@ import java.util.Map; public class JavaBasicTest extends TestCase { - protected DeserializeClassFileProcessor deserializer = new DeserializeClassFileProcessor(); + protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); @@ -287,7 +288,9 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa decompileContext.setMainInternalTypeName(internalTypeName); decompileContext.setConfiguration(configuration); - deserializer.process(decompileContext); + ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); + decompileContext.setBody(classFile); + converter.process(decompileContext); fragmenter.process(decompileContext); layouter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaEnumTest.java b/src/test/java/org/jd/core/v1/JavaEnumTest.java index 25c766f9..bfec3688 100644 --- a/src/test/java/org/jd/core/v1/JavaEnumTest.java +++ b/src/test/java/org/jd/core/v1/JavaEnumTest.java @@ -13,11 +13,12 @@ import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ZipLoader; +import org.jd.core.v1.model.classfile.ClassFile; import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.DeserializeClassFileProcessor; +import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; @@ -29,7 +30,7 @@ import java.util.Map; public class JavaEnumTest extends TestCase { - protected DeserializeClassFileProcessor deserializer = new DeserializeClassFileProcessor(); + protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); @@ -138,7 +139,9 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa decompileContext.setMainInternalTypeName(internalTypeName); decompileContext.setConfiguration(configuration); - deserializer.process(decompileContext); + ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); + decompileContext.setBody(classFile); + converter.process(decompileContext); fragmenter.process(decompileContext); layouter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaGenericTest.java b/src/test/java/org/jd/core/v1/JavaGenericTest.java index 2b90c926..d351855e 100644 --- a/src/test/java/org/jd/core/v1/JavaGenericTest.java +++ b/src/test/java/org/jd/core/v1/JavaGenericTest.java @@ -13,11 +13,12 @@ import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ZipLoader; +import org.jd.core.v1.model.classfile.ClassFile; import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.DeserializeClassFileProcessor; +import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; @@ -29,7 +30,7 @@ import java.util.Map; public class JavaGenericTest extends TestCase { - protected DeserializeClassFileProcessor deserializer = new DeserializeClassFileProcessor(); + protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); @@ -83,7 +84,9 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa decompileContext.setMainInternalTypeName(internalTypeName); decompileContext.setConfiguration(configuration); - deserializer.process(decompileContext); + ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); + decompileContext.setBody(classFile); + converter.process(decompileContext); fragmenter.process(decompileContext); layouter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaIfElseTest.java b/src/test/java/org/jd/core/v1/JavaIfElseTest.java index c3c82cb3..e6557056 100644 --- a/src/test/java/org/jd/core/v1/JavaIfElseTest.java +++ b/src/test/java/org/jd/core/v1/JavaIfElseTest.java @@ -13,11 +13,12 @@ import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ZipLoader; +import org.jd.core.v1.model.classfile.ClassFile; import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.DeserializeClassFileProcessor; +import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; @@ -29,7 +30,7 @@ import java.util.Map; public class JavaIfElseTest extends TestCase { - protected DeserializeClassFileProcessor deserializer = new DeserializeClassFileProcessor(); + protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); @@ -90,7 +91,9 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa decompileContext.setMainInternalTypeName(internalTypeName); decompileContext.setConfiguration(configuration); - deserializer.process(decompileContext); + ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); + decompileContext.setBody(classFile); + converter.process(decompileContext); fragmenter.process(decompileContext); layouter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaInnerOuterClassTest.java b/src/test/java/org/jd/core/v1/JavaInnerOuterClassTest.java index 666cbd33..776b0805 100644 --- a/src/test/java/org/jd/core/v1/JavaInnerOuterClassTest.java +++ b/src/test/java/org/jd/core/v1/JavaInnerOuterClassTest.java @@ -13,11 +13,12 @@ import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ZipLoader; +import org.jd.core.v1.model.classfile.ClassFile; import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.DeserializeClassFileProcessor; +import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; @@ -29,7 +30,7 @@ import java.util.Map; public class JavaInnerOuterClassTest extends TestCase { - protected DeserializeClassFileProcessor deserializer = new DeserializeClassFileProcessor(); + protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); @@ -113,7 +114,9 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa decompileContext.setMainInternalTypeName(internalTypeName); decompileContext.setConfiguration(configuration); - deserializer.process(decompileContext); + ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); + decompileContext.setBody(classFile); + converter.process(decompileContext); fragmenter.process(decompileContext); layouter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaLambdaTest.java b/src/test/java/org/jd/core/v1/JavaLambdaTest.java index ba6e8708..e2692351 100644 --- a/src/test/java/org/jd/core/v1/JavaLambdaTest.java +++ b/src/test/java/org/jd/core/v1/JavaLambdaTest.java @@ -13,11 +13,12 @@ import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ZipLoader; +import org.jd.core.v1.model.classfile.ClassFile; import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.DeserializeClassFileProcessor; +import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; @@ -29,7 +30,7 @@ import java.util.Map; public class JavaLambdaTest extends TestCase { - protected DeserializeClassFileProcessor deserializer = new DeserializeClassFileProcessor(); + protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); @@ -77,7 +78,9 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa decompileContext.setMainInternalTypeName(internalTypeName); decompileContext.setConfiguration(configuration); - deserializer.process(decompileContext); + ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); + decompileContext.setBody(classFile); + converter.process(decompileContext); fragmenter.process(decompileContext); layouter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaLoopTest.java b/src/test/java/org/jd/core/v1/JavaLoopTest.java index 5f9f49e0..e06db457 100644 --- a/src/test/java/org/jd/core/v1/JavaLoopTest.java +++ b/src/test/java/org/jd/core/v1/JavaLoopTest.java @@ -13,11 +13,12 @@ import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ZipLoader; +import org.jd.core.v1.model.classfile.ClassFile; import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.DeserializeClassFileProcessor; +import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; @@ -29,7 +30,7 @@ import java.util.Map; public class JavaLoopTest extends TestCase { - protected DeserializeClassFileProcessor deserializer = new DeserializeClassFileProcessor(); + protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); @@ -399,7 +400,9 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa decompileContext.setMainInternalTypeName(internalTypeName); decompileContext.setConfiguration(configuration); - deserializer.process(decompileContext); + ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); + decompileContext.setBody(classFile); + converter.process(decompileContext); fragmenter.process(decompileContext); layouter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaMethodOverloadingTest.java b/src/test/java/org/jd/core/v1/JavaMethodOverloadingTest.java index a83f8cf6..db203238 100644 --- a/src/test/java/org/jd/core/v1/JavaMethodOverloadingTest.java +++ b/src/test/java/org/jd/core/v1/JavaMethodOverloadingTest.java @@ -13,11 +13,12 @@ import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ClassPathLoader; +import org.jd.core.v1.model.classfile.ClassFile; import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.DeserializeClassFileProcessor; +import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; @@ -28,7 +29,7 @@ import java.util.Map; public class JavaMethodOverloadingTest extends TestCase { - protected DeserializeClassFileProcessor deserializer = new DeserializeClassFileProcessor(); + protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); @@ -109,7 +110,9 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa decompileContext.setMainInternalTypeName(internalTypeName); decompileContext.setConfiguration(configuration); - deserializer.process(decompileContext); + ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); + decompileContext.setBody(classFile); + converter.process(decompileContext); fragmenter.process(decompileContext); layouter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaOperatorPrecedenceTest.java b/src/test/java/org/jd/core/v1/JavaOperatorPrecedenceTest.java index e9291791..515ec3d5 100644 --- a/src/test/java/org/jd/core/v1/JavaOperatorPrecedenceTest.java +++ b/src/test/java/org/jd/core/v1/JavaOperatorPrecedenceTest.java @@ -13,11 +13,12 @@ import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ClassPathLoader; +import org.jd.core.v1.model.classfile.ClassFile; import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.DeserializeClassFileProcessor; +import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; @@ -28,7 +29,7 @@ import java.util.Map; public class JavaOperatorPrecedenceTest extends TestCase { - protected DeserializeClassFileProcessor deserializer = new DeserializeClassFileProcessor(); + protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); @@ -66,7 +67,9 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa decompileContext.setMainInternalTypeName(internalTypeName); decompileContext.setConfiguration(configuration); - deserializer.process(decompileContext); + ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); + decompileContext.setBody(classFile); + converter.process(decompileContext); fragmenter.process(decompileContext); layouter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaSwitchTest.java b/src/test/java/org/jd/core/v1/JavaSwitchTest.java index 1f44fd59..69bf3e47 100644 --- a/src/test/java/org/jd/core/v1/JavaSwitchTest.java +++ b/src/test/java/org/jd/core/v1/JavaSwitchTest.java @@ -13,11 +13,12 @@ import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ZipLoader; +import org.jd.core.v1.model.classfile.ClassFile; import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.DeserializeClassFileProcessor; +import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; @@ -31,7 +32,7 @@ import java.util.Map; public class JavaSwitchTest extends TestCase { - protected DeserializeClassFileProcessor deserializer = new DeserializeClassFileProcessor(); + protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); @@ -178,7 +179,9 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa decompileContext.setMainInternalTypeName(internalTypeName); decompileContext.setConfiguration(configuration); - deserializer.process(decompileContext); + ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); + decompileContext.setBody(classFile); + converter.process(decompileContext); fragmenter.process(decompileContext); layouter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaSynchronizedBlockTest.java b/src/test/java/org/jd/core/v1/JavaSynchronizedBlockTest.java index 9b8be542..333be3e0 100644 --- a/src/test/java/org/jd/core/v1/JavaSynchronizedBlockTest.java +++ b/src/test/java/org/jd/core/v1/JavaSynchronizedBlockTest.java @@ -13,11 +13,12 @@ import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ZipLoader; +import org.jd.core.v1.model.classfile.ClassFile; import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.DeserializeClassFileProcessor; +import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; @@ -29,7 +30,7 @@ import java.util.Map; public class JavaSynchronizedBlockTest extends TestCase { - protected DeserializeClassFileProcessor deserializer = new DeserializeClassFileProcessor(); + protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); @@ -79,7 +80,9 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa decompileContext.setMainInternalTypeName(internalTypeName); decompileContext.setConfiguration(configuration); - deserializer.process(decompileContext); + ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); + decompileContext.setBody(classFile); + converter.process(decompileContext); fragmenter.process(decompileContext); layouter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaTernaryOperatorTest.java b/src/test/java/org/jd/core/v1/JavaTernaryOperatorTest.java index 1caa20f9..97157a99 100644 --- a/src/test/java/org/jd/core/v1/JavaTernaryOperatorTest.java +++ b/src/test/java/org/jd/core/v1/JavaTernaryOperatorTest.java @@ -13,11 +13,12 @@ import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ZipLoader; +import org.jd.core.v1.model.classfile.ClassFile; import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.DeserializeClassFileProcessor; +import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; @@ -29,7 +30,7 @@ import java.util.Map; public class JavaTernaryOperatorTest extends TestCase { - protected DeserializeClassFileProcessor deserializer = new DeserializeClassFileProcessor(); + protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); @@ -99,7 +100,9 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa decompileContext.setMainInternalTypeName(internalTypeName); decompileContext.setConfiguration(configuration); - deserializer.process(decompileContext); + ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); + decompileContext.setBody(classFile); + converter.process(decompileContext); fragmenter.process(decompileContext); layouter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaTryCatchFinallyTest.java b/src/test/java/org/jd/core/v1/JavaTryCatchFinallyTest.java index d6bd6080..4f928a05 100644 --- a/src/test/java/org/jd/core/v1/JavaTryCatchFinallyTest.java +++ b/src/test/java/org/jd/core/v1/JavaTryCatchFinallyTest.java @@ -13,11 +13,12 @@ import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ZipLoader; +import org.jd.core.v1.model.classfile.ClassFile; import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.DeserializeClassFileProcessor; +import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; @@ -29,7 +30,7 @@ import java.util.Map; public class JavaTryCatchFinallyTest extends TestCase { - protected DeserializeClassFileProcessor deserializer = new DeserializeClassFileProcessor(); + protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); @@ -350,7 +351,9 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa decompileContext.setMainInternalTypeName(internalTypeName); decompileContext.setConfiguration(configuration); - deserializer.process(decompileContext); + ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); + decompileContext.setBody(classFile); + converter.process(decompileContext); fragmenter.process(decompileContext); layouter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/LayoutFragmentProcessorTest.java b/src/test/java/org/jd/core/v1/LayoutFragmentProcessorTest.java index 66b7fcaf..f3bd5e15 100644 --- a/src/test/java/org/jd/core/v1/LayoutFragmentProcessorTest.java +++ b/src/test/java/org/jd/core/v1/LayoutFragmentProcessorTest.java @@ -9,16 +9,17 @@ import junit.framework.TestCase; import org.jd.core.v1.loader.ZipLoader; +import org.jd.core.v1.model.classfile.ClassFile; import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; +import org.jd.core.v1.regex.PatternMaker; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.DeserializeClassFileProcessor; +import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; import org.jd.core.v1.service.writer.WriteTokenProcessor; import org.jd.core.v1.services.tokenizer.javafragmenttotoken.TestTokenizeJavaFragmentProcessor; -import org.jd.core.v1.regex.PatternMaker; import org.junit.Assert; import org.junit.Test; @@ -27,7 +28,7 @@ import java.util.Map; public class LayoutFragmentProcessorTest extends TestCase { - protected DeserializeClassFileProcessor deserializer = new DeserializeClassFileProcessor(); + protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); @@ -49,7 +50,8 @@ public void testJdk118Basic() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); - deserializer.process(decompileContext); + ClassFile classFile = deserializer.loadClassFile(loader, decompileContext.getMainInternalTypeName()); + decompileContext.setBody(classFile); converter.process(decompileContext); fragmenter.process(decompileContext); layouter.process(decompileContext); @@ -77,7 +79,9 @@ public void testJdk131TryCatchFinally() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); - deserializer.process(decompileContext); + ClassFile classFile = deserializer.loadClassFile(loader, decompileContext.getMainInternalTypeName()); + decompileContext.setBody(classFile); + converter.process(decompileContext); fragmenter.process(decompileContext); layouter.process(decompileContext); @@ -105,7 +109,9 @@ public void testTryCatchFinally() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); - deserializer.process(decompileContext); + ClassFile classFile = deserializer.loadClassFile(loader, decompileContext.getMainInternalTypeName()); + decompileContext.setBody(classFile); + converter.process(decompileContext); fragmenter.process(decompileContext); layouter.process(decompileContext); @@ -133,7 +139,8 @@ public void testAnonymousClass() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); - deserializer.process(decompileContext); + ClassFile classFile = deserializer.loadClassFile(loader, decompileContext.getMainInternalTypeName()); + decompileContext.setBody(classFile); converter.process(decompileContext); fragmenter.process(decompileContext); layouter.process(decompileContext); @@ -163,7 +170,8 @@ public void testOuterClass() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); - deserializer.process(decompileContext); + ClassFile classFile = deserializer.loadClassFile(loader, decompileContext.getMainInternalTypeName()); + decompileContext.setBody(classFile); converter.process(decompileContext); fragmenter.process(decompileContext); layouter.process(decompileContext); @@ -191,7 +199,8 @@ public void testEnumClass() throws Exception { decompileContext.setLoader(loader); decompileContext.setPrinter(printer); - deserializer.process(decompileContext); + ClassFile classFile = deserializer.loadClassFile(loader, decompileContext.getMainInternalTypeName()); + decompileContext.setBody(classFile); converter.process(decompileContext); fragmenter.process(decompileContext); layouter.process(decompileContext); @@ -222,7 +231,8 @@ public void testAnnotationQuality() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); - deserializer.process(decompileContext); + ClassFile classFile = deserializer.loadClassFile(loader, decompileContext.getMainInternalTypeName()); + decompileContext.setBody(classFile); converter.process(decompileContext); fragmenter.process(decompileContext); layouter.process(decompileContext); @@ -252,7 +262,8 @@ public void testJdk170Array() throws Exception { decompileContext.setPrinter(printer); decompileContext.setConfiguration(configuration); - deserializer.process(decompileContext); + ClassFile classFile = deserializer.loadClassFile(loader, decompileContext.getMainInternalTypeName()); + decompileContext.setBody(classFile); converter.process(decompileContext); fragmenter.process(decompileContext); layouter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/SignatureParserTest.java b/src/test/java/org/jd/core/v1/SignatureParserTest.java index e9b667d1..39029a03 100644 --- a/src/test/java/org/jd/core/v1/SignatureParserTest.java +++ b/src/test/java/org/jd/core/v1/SignatureParserTest.java @@ -11,10 +11,15 @@ import org.jd.core.v1.loader.ClassPathLoader; import org.jd.core.v1.loader.ZipLoader; import org.jd.core.v1.model.classfile.ClassFile; -import org.jd.core.v1.model.javasyntax.type.*; +import org.jd.core.v1.model.javasyntax.type.BaseType; +import org.jd.core.v1.model.javasyntax.type.InnerObjectType; +import org.jd.core.v1.model.javasyntax.type.ObjectType; +import org.jd.core.v1.model.javasyntax.type.PrimitiveType; +import org.jd.core.v1.model.javasyntax.type.Type; +import org.jd.core.v1.model.javasyntax.type.TypeArguments; import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.service.converter.classfiletojavasyntax.util.TypeMaker; -import org.jd.core.v1.service.deserializer.classfile.DeserializeClassFileProcessor; +import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; import org.jd.core.v1.services.javasyntax.type.visitor.PrintTypeVisitor; import org.junit.Assert; import org.junit.Test; @@ -22,7 +27,7 @@ import java.io.InputStream; public class SignatureParserTest extends TestCase { - protected DeserializeClassFileProcessor deserializer = new DeserializeClassFileProcessor(); + protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); @Test public void testAnnotatedClass() throws Exception { @@ -35,9 +40,8 @@ public void testAnnotatedClass() throws Exception { decompileContext.setMainInternalTypeName("org/jd/core/test/AnnotatedClass"); decompileContext.setLoader(loader); - deserializer.process(decompileContext); - - ClassFile classFile = decompileContext.getBody(); + ClassFile classFile = deserializer.loadClassFile(loader, decompileContext.getMainInternalTypeName()); + decompileContext.setBody(classFile); // Check type TypeMaker.TypeTypes typeTypes = typeMaker.parseClassFileSignature(classFile); @@ -153,9 +157,8 @@ public void testGenericClass() throws Exception { decompileContext.setMainInternalTypeName("org/jd/core/test/GenericClass"); decompileContext.setLoader(loader); - deserializer.process(decompileContext); - - ClassFile classFile = decompileContext.getBody(); + ClassFile classFile = deserializer.loadClassFile(loader, decompileContext.getMainInternalTypeName()); + decompileContext.setBody(classFile); // Check type TypeMaker.TypeTypes typeTypes = typeMaker.parseClassFileSignature(classFile); From 24bc8d6bfc368c9dcb26c537e8df93abc417f183 Mon Sep 17 00:00:00 2001 From: Yushan Gao Date: Sat, 28 Nov 2020 08:16:36 +0800 Subject: [PATCH 18/28] refactor: move test stub out --- src/test/java/org/jd/core/v1/CfrTest.java | 29 +++---------------- .../jd/core/v1/stub/FloatingPointCasting.java | 23 +++++++++++++++ 2 files changed, 27 insertions(+), 25 deletions(-) create mode 100644 src/test/java/org/jd/core/v1/stub/FloatingPointCasting.java diff --git a/src/test/java/org/jd/core/v1/CfrTest.java b/src/test/java/org/jd/core/v1/CfrTest.java index ec8e4e7c..c2eca1cf 100644 --- a/src/test/java/org/jd/core/v1/CfrTest.java +++ b/src/test/java/org/jd/core/v1/CfrTest.java @@ -23,6 +23,7 @@ import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; import org.jd.core.v1.service.writer.WriteTokenProcessor; +import org.jd.core.v1.stub.FloatingPointCasting; import org.junit.Test; import java.util.Collections; @@ -40,35 +41,13 @@ public class CfrTest extends TestCase { @Test // https://github.com/java-decompiler/jd-core/issues/34 public void testFloatingPointCasting() throws Exception { - class FloatingPointCasting { - private final long l = 9223372036854775806L; - private final Long L = 9223372036854775806L; - - long getLong() { - return 9223372036854775806L; - } - - void test1() { - long b = (long) (double) getLong(); - System.out.println(b == getLong()); // Prints "false" - } - void test2() { - long b = (long) (double) l; - System.out.println(b == l); // Prints "false" - } - void test3() { - long b = (long) (double) L; - System.out.println(b == L); // Prints "false" - } - } - String internalClassName = FloatingPointCasting.class.getName().replace('.', '/'); String source = decompile(new ClassPathLoader(), new PlainTextPrinter(), internalClassName); // Check decompiled source code - assertTrue(source.matches(PatternMaker.make(": 51 */", "long b = (long)(double)"))); - assertTrue(source.matches(PatternMaker.make(": 55 */", "long b = Long.MAX_VALUE"))); - assertTrue(source.matches(PatternMaker.make(": 59 */", "long b = (long)(double)"))); + assertTrue(source.matches(PatternMaker.make(": 12 */", "long b = (long)(double)"))); + assertTrue(source.matches(PatternMaker.make(": 16 */", "long b = Long.MAX_VALUE"))); + assertTrue(source.matches(PatternMaker.make(": 20 */", "long b = (long)(double)"))); // Recompile decompiled source code and check errors assertTrue(CompilerUtil.compile("1.8", new JavaSourceFileObject(internalClassName, source))); diff --git a/src/test/java/org/jd/core/v1/stub/FloatingPointCasting.java b/src/test/java/org/jd/core/v1/stub/FloatingPointCasting.java new file mode 100644 index 00000000..12643bfd --- /dev/null +++ b/src/test/java/org/jd/core/v1/stub/FloatingPointCasting.java @@ -0,0 +1,23 @@ +package org.jd.core.v1.stub; + +public class FloatingPointCasting { + private final long l = 9223372036854775806L; + private final Long L = 9223372036854775806L; + + long getLong() { + return 9223372036854775806L; + } + + void test1() { + long b = (long) (double) getLong(); + System.out.println(b == getLong()); // Prints "false" + } + void test2() { + long b = (long) (double) l; + System.out.println(b == l); // Prints "false" + } + void test3() { + long b = (long) (double) L; + System.out.println(b == L); // Prints "false" + } +} From 24a27eb01966f0b48d01d8490d81f71280dcbc14 Mon Sep 17 00:00:00 2001 From: Yushan Gao Date: Sat, 28 Nov 2020 08:20:28 +0800 Subject: [PATCH 19/28] refactor: move test stub out --- .../java/org/jd/core/v1/JavaArrayTest.java | 39 ++++--------------- .../InitializedArrayInTernaryOperator.java | 25 ++++++++++++ 2 files changed, 33 insertions(+), 31 deletions(-) create mode 100644 src/test/java/org/jd/core/v1/stub/InitializedArrayInTernaryOperator.java diff --git a/src/test/java/org/jd/core/v1/JavaArrayTest.java b/src/test/java/org/jd/core/v1/JavaArrayTest.java index 98502a6a..6cbf488a 100644 --- a/src/test/java/org/jd/core/v1/JavaArrayTest.java +++ b/src/test/java/org/jd/core/v1/JavaArrayTest.java @@ -24,6 +24,7 @@ import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; import org.jd.core.v1.service.writer.WriteTokenProcessor; +import org.jd.core.v1.stub.InitializedArrayInTernaryOperator; import org.junit.Test; import java.io.InputStream; @@ -89,41 +90,17 @@ public void testJdk170Array() throws Exception { @Test public void testInitializedArrayInTernaryOperator() throws Exception { - class InitializedArrayInTernaryOperator { - Class[] test0(int i) { - return (i == 0) ? new Class[] { Object.class } : null; - } - Class[] test2(int i) { - return (i == 0) ? new Class[] { Object.class, String.class, Number.class } : null; - } - Class[][] test3(int i) { - return (i == 0) ? new Class[][] { { Object.class }, { String.class, Number.class} } : null; - } - Class[] test4(int i) { - return (i == 0) ? null : new Class[] { Object.class }; - } - Class[] test5(int i) { - return (i == 0) ? null : new Class[] { Object.class, String.class, Number.class }; - } - Class[][] test6(int i) { - return (i == 0) ? null : new Class[][] { { Object.class }, { String.class, Number.class} }; - } - Class[] test7(int i) { - return (i == 0) ? new Class[] { Object.class } : new Class[] { String.class, Number.class }; - } - } - String internalClassName = InitializedArrayInTernaryOperator.class.getName().replace('.', '/'); String source = decompile(new ClassPathLoader(), new PlainTextPrinter(), internalClassName); // Check decompiled source code - assertTrue(source.matches(PatternMaker.make(": 93 */", "return (i == 0) ? new Class[] { Object.class } : null;"))); - assertTrue(source.matches(PatternMaker.make(": 96 */", "return (i == 0) ? new Class[] { Object.class, String.class, Number.class } : null;"))); - assertTrue(source.matches(PatternMaker.make(": 99 */", "return (i == 0) ? new Class[][] { { Object.class }, { String.class, Number.class } } : null;"))); - assertTrue(source.matches(PatternMaker.make(": 102 */", "return (i == 0) ? null : new Class[] { Object.class };"))); - assertTrue(source.matches(PatternMaker.make(": 105 */", "return (i == 0) ? null : new Class[] { Object.class, String.class, Number.class };"))); - assertTrue(source.matches(PatternMaker.make(": 108 */", "return (i == 0) ? null : new Class[][] { { Object.class }, { String.class, Number.class} };"))); - assertTrue(source.matches(PatternMaker.make(": 111 */", "return (i == 0) ? new Class[] { Object.class } : new Class[] { String.class, Number.class };"))); + assertTrue(source.matches(PatternMaker.make(": 5 */", "return (i == 0) ? new Class[] { Object.class } : null;"))); + assertTrue(source.matches(PatternMaker.make(": 8 */", "return (i == 0) ? new Class[] { Object.class, String.class, Number.class } : null;"))); + assertTrue(source.matches(PatternMaker.make(": 11 */", "return (i == 0) ? new Class[][] { { Object.class }, { String.class, Number.class } } : null;"))); + assertTrue(source.matches(PatternMaker.make(": 14 */", "return (i == 0) ? null : new Class[] { Object.class };"))); + assertTrue(source.matches(PatternMaker.make(": 17 */", "return (i == 0) ? null : new Class[] { Object.class, String.class, Number.class };"))); + assertTrue(source.matches(PatternMaker.make(": 20 */", "return (i == 0) ? null : new Class[][] { { Object.class }, { String.class, Number.class} };"))); + assertTrue(source.matches(PatternMaker.make(": 23 */", "return (i == 0) ? new Class[] { Object.class } : new Class[] { String.class, Number.class };"))); // Recompile decompiled source code and check errors assertTrue(CompilerUtil.compile("1.8", new JavaSourceFileObject(internalClassName, source))); diff --git a/src/test/java/org/jd/core/v1/stub/InitializedArrayInTernaryOperator.java b/src/test/java/org/jd/core/v1/stub/InitializedArrayInTernaryOperator.java new file mode 100644 index 00000000..8fbea88f --- /dev/null +++ b/src/test/java/org/jd/core/v1/stub/InitializedArrayInTernaryOperator.java @@ -0,0 +1,25 @@ +package org.jd.core.v1.stub; + +public class InitializedArrayInTernaryOperator { + Class[] test0(int i) { + return (i == 0) ? new Class[] { Object.class } : null; + } + Class[] test2(int i) { + return (i == 0) ? new Class[] { Object.class, String.class, Number.class } : null; + } + Class[][] test3(int i) { + return (i == 0) ? new Class[][] { { Object.class }, { String.class, Number.class} } : null; + } + Class[] test4(int i) { + return (i == 0) ? null : new Class[] { Object.class }; + } + Class[] test5(int i) { + return (i == 0) ? null : new Class[] { Object.class, String.class, Number.class }; + } + Class[][] test6(int i) { + return (i == 0) ? null : new Class[][] { { Object.class }, { String.class, Number.class} }; + } + Class[] test7(int i) { + return (i == 0) ? new Class[] { Object.class } : new Class[] { String.class, Number.class }; + } +} From 3393c2b766533d5fa18ee56d44fb70787c44dd07 Mon Sep 17 00:00:00 2001 From: Yushan Gao Date: Sat, 28 Nov 2020 08:25:34 +0800 Subject: [PATCH 20/28] refactor: move some stubs out --- .../org/jd/core/v1/JavaAutoboxingTest.java | 12 +++------ .../jd/core/v1/JavaMethodOverloadingTest.java | 27 ++++--------------- .../core/v1/JavaOperatorPrecedenceTest.java | 10 ++----- .../core/v1/stub/ArrayMethodOverloading.java | 25 +++++++++++++++++ .../core/v1/stub/AutoboxingAndUnboxing.java | 8 ++++++ .../core/v1/stub/NewOperatorPrecedence.java | 10 +++++++ 6 files changed, 53 insertions(+), 39 deletions(-) create mode 100644 src/test/java/org/jd/core/v1/stub/ArrayMethodOverloading.java create mode 100644 src/test/java/org/jd/core/v1/stub/AutoboxingAndUnboxing.java create mode 100644 src/test/java/org/jd/core/v1/stub/NewOperatorPrecedence.java diff --git a/src/test/java/org/jd/core/v1/JavaAutoboxingTest.java b/src/test/java/org/jd/core/v1/JavaAutoboxingTest.java index 308a4559..06b39fc1 100644 --- a/src/test/java/org/jd/core/v1/JavaAutoboxingTest.java +++ b/src/test/java/org/jd/core/v1/JavaAutoboxingTest.java @@ -23,6 +23,7 @@ import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; import org.jd.core.v1.service.writer.WriteTokenProcessor; +import org.jd.core.v1.stub.AutoboxingAndUnboxing; import org.junit.Test; import java.util.Collections; @@ -40,19 +41,12 @@ public class JavaAutoboxingTest extends TestCase { @Test // https://github.com/java-decompiler/jd-core/issues/14 public void testAutoboxing() throws Exception { - class AutoboxingAndUnboxing { - void test() { - Integer intObj = 10; - int i = intObj; - } - } - String internalClassName = AutoboxingAndUnboxing.class.getName().replace('.', '/'); String source = decompile(new ClassPathLoader(), new PlainTextPrinter(), internalClassName); // Check decompiled source code - assertTrue(source.matches(PatternMaker.make(": 44 */", "Integer intObj = 10;"))); - assertTrue(source.matches(PatternMaker.make(": 45 */", "int i = intObj;"))); + assertTrue(source.matches(PatternMaker.make(": 5 */", "Integer intObj = 10;"))); + assertTrue(source.matches(PatternMaker.make(": 6 */", "int i = intObj;"))); // Recompile decompiled source code and check errors assertTrue(CompilerUtil.compile("1.8", new JavaSourceFileObject(internalClassName, source))); diff --git a/src/test/java/org/jd/core/v1/JavaMethodOverloadingTest.java b/src/test/java/org/jd/core/v1/JavaMethodOverloadingTest.java index db203238..60524ad4 100644 --- a/src/test/java/org/jd/core/v1/JavaMethodOverloadingTest.java +++ b/src/test/java/org/jd/core/v1/JavaMethodOverloadingTest.java @@ -23,6 +23,7 @@ import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; import org.jd.core.v1.service.writer.WriteTokenProcessor; +import org.jd.core.v1.stub.ArrayMethodOverloading; import org.junit.Test; import java.util.Collections; @@ -40,32 +41,14 @@ public class JavaMethodOverloadingTest extends TestCase { @Test // https://github.com/java-decompiler/jd-core/issues/33 public void testArrayMethodOverloading() throws Exception { - class ArrayMethodOverloading { - void use(Object[] o) { } - void use(Object o) { } - - void test1() { - use("string"); - } - void test2() { - use((Object) new Object[] {""}); - } - void test3() { - use(null); - } - void test4() { - use((Object)null); - } - } - String internalClassName = ArrayMethodOverloading.class.getName().replace('.', '/'); String source = decompile(new ClassPathLoader(), new PlainTextPrinter(), internalClassName); // Check decompiled source code - assertTrue(source.matches(PatternMaker.make(": 47 */", "use(\"string\");"))); - assertTrue(source.matches(PatternMaker.make(": 50 */", "use((Object)new Object[] { \"\" });"))); - assertTrue(source.matches(PatternMaker.make(": 53 */", "use((Object[])null);"))); - assertTrue(source.matches(PatternMaker.make(": 56 */", "use((Object)null);"))); + assertTrue(source.matches(PatternMaker.make(": 11 */", "use(\"string\");"))); + assertTrue(source.matches(PatternMaker.make(": 15 */", "use((Object)new Object[] { \"\" });"))); + assertTrue(source.matches(PatternMaker.make(": 19 */", "use((Object[])null);"))); + assertTrue(source.matches(PatternMaker.make(": 23 */", "use((Object)null);"))); // Recompile decompiled source code and check errors assertTrue(CompilerUtil.compile("1.8", new JavaSourceFileObject(internalClassName, source))); diff --git a/src/test/java/org/jd/core/v1/JavaOperatorPrecedenceTest.java b/src/test/java/org/jd/core/v1/JavaOperatorPrecedenceTest.java index 515ec3d5..2a619798 100644 --- a/src/test/java/org/jd/core/v1/JavaOperatorPrecedenceTest.java +++ b/src/test/java/org/jd/core/v1/JavaOperatorPrecedenceTest.java @@ -23,6 +23,7 @@ import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; import org.jd.core.v1.service.writer.WriteTokenProcessor; +import org.jd.core.v1.stub.NewOperatorPrecedence; import org.junit.Test; import java.util.Collections; @@ -39,18 +40,11 @@ public class JavaOperatorPrecedenceTest extends TestCase { @Test public void testNewOperatorPrecedence() throws Exception { - class NewOperatorPrecedence { - void test() {} - public /* static */ void main(String ... args) { - new NewOperatorPrecedence().test(); - } - } - String internalClassName = NewOperatorPrecedence.class.getName().replace('.', '/'); String source = decompile(new ClassPathLoader(), new PlainTextPrinter(), internalClassName); // Check decompiled source code - assertTrue(source.matches(PatternMaker.make(": 44 */", "new NewOperatorPrecedence().test();"))); + assertTrue(source.matches(PatternMaker.make(": 8 */", "new NewOperatorPrecedence().test();"))); // Recompile decompiled source code and check errors assertTrue(CompilerUtil.compile("1.8", new JavaSourceFileObject(internalClassName, source))); diff --git a/src/test/java/org/jd/core/v1/stub/ArrayMethodOverloading.java b/src/test/java/org/jd/core/v1/stub/ArrayMethodOverloading.java new file mode 100644 index 00000000..89f5e941 --- /dev/null +++ b/src/test/java/org/jd/core/v1/stub/ArrayMethodOverloading.java @@ -0,0 +1,25 @@ +package org.jd.core.v1.stub; + +public class ArrayMethodOverloading { + void use(Object[] o) { + } + + void use(Object o) { + } + + void test1() { + use("string"); + } + + void test2() { + use((Object) new Object[]{""}); + } + + void test3() { + use(null); + } + + void test4() { + use((Object) null); + } +} diff --git a/src/test/java/org/jd/core/v1/stub/AutoboxingAndUnboxing.java b/src/test/java/org/jd/core/v1/stub/AutoboxingAndUnboxing.java new file mode 100644 index 00000000..f926ac9c --- /dev/null +++ b/src/test/java/org/jd/core/v1/stub/AutoboxingAndUnboxing.java @@ -0,0 +1,8 @@ +package org.jd.core.v1.stub; + +public class AutoboxingAndUnboxing { + void test() { + Integer intObj = 10; + int i = intObj; + } +} diff --git a/src/test/java/org/jd/core/v1/stub/NewOperatorPrecedence.java b/src/test/java/org/jd/core/v1/stub/NewOperatorPrecedence.java new file mode 100644 index 00000000..7e59f3e6 --- /dev/null +++ b/src/test/java/org/jd/core/v1/stub/NewOperatorPrecedence.java @@ -0,0 +1,10 @@ +package org.jd.core.v1.stub; + +public class NewOperatorPrecedence { + void test() { + } + + public /* static */ void main(String... args) { + new NewOperatorPrecedence().test(); + } +} From 615196e5c4face54b3b4a2adca8bb3de5d62687e Mon Sep 17 00:00:00 2001 From: Yushan Gao Date: Sat, 28 Nov 2020 08:42:01 +0800 Subject: [PATCH 21/28] refactor: create AbstrctJdTest to make test easy --- .../java/org/jd/core/v1/AbstractJdTest.java | 64 +++++++++++++++++++ src/test/java/org/jd/core/v1/CfrTest.java | 59 +---------------- .../java/org/jd/core/v1/JavaArrayTest.java | 51 +-------------- .../org/jd/core/v1/JavaAutoboxingTest.java | 60 +---------------- .../jd/core/v1/JavaMethodOverloadingTest.java | 63 ++---------------- .../core/v1/JavaOperatorPrecedenceTest.java | 61 +----------------- 6 files changed, 78 insertions(+), 280 deletions(-) create mode 100644 src/test/java/org/jd/core/v1/AbstractJdTest.java diff --git a/src/test/java/org/jd/core/v1/AbstractJdTest.java b/src/test/java/org/jd/core/v1/AbstractJdTest.java new file mode 100644 index 00000000..b4bb06ec --- /dev/null +++ b/src/test/java/org/jd/core/v1/AbstractJdTest.java @@ -0,0 +1,64 @@ +package org.jd.core.v1; + +import junit.framework.TestCase; +import org.jd.core.v1.api.loader.Loader; +import org.jd.core.v1.api.printer.Printer; +import org.jd.core.v1.model.classfile.ClassFile; +import org.jd.core.v1.model.message.DecompileContext; +import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; +import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; +import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; +import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; +import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; +import org.jd.core.v1.service.writer.WriteTokenProcessor; + +import java.util.Collections; +import java.util.Map; + +public abstract class AbstractJdTest extends TestCase { + protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); + protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); + protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); + protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); + protected JavaFragmentToTokenProcessor tokenizer = new JavaFragmentToTokenProcessor(); + protected WriteTokenProcessor writer = new WriteTokenProcessor(); + + protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { + DecompileContext decompileContext = new DecompileContext(); + decompileContext.setLoader(loader); + decompileContext.setPrinter(printer); + decompileContext.setMainInternalTypeName(internalTypeName); + decompileContext.setConfiguration(configuration); + + ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); + decompileContext.setBody(classFile); + + converter.process(decompileContext); + fragmenter.process(decompileContext); + layouter.process(decompileContext); + tokenizer.process(decompileContext); + writer.process(decompileContext); + + String source = printer.toString(); + + printSource(source); + + return source; + } + + protected String decompile(Loader loader, Printer printer, String internalTypeName) throws Exception { + return decompile(loader, printer, internalTypeName, Collections.emptyMap()); + } + + protected String decompileSuccess(Loader loader, Printer printer, String internalTypeName) throws Exception { + String source = decompile(loader, printer, internalTypeName, Collections.emptyMap()); + assertTrue(source.indexOf("// Byte code:") == -1); + return source; + } + + protected void printSource(String source) { + System.out.println("- - - - - - - - "); + System.out.println(source); + System.out.println("- - - - - - - - "); + } +} diff --git a/src/test/java/org/jd/core/v1/CfrTest.java b/src/test/java/org/jd/core/v1/CfrTest.java index c2eca1cf..6cf2f3ba 100644 --- a/src/test/java/org/jd/core/v1/CfrTest.java +++ b/src/test/java/org/jd/core/v1/CfrTest.java @@ -7,42 +7,24 @@ package org.jd.core.v1; -import junit.framework.TestCase; -import org.jd.core.v1.api.loader.Loader; -import org.jd.core.v1.api.printer.Printer; import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ClassPathLoader; -import org.jd.core.v1.model.classfile.ClassFile; -import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; -import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; -import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; -import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; -import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; -import org.jd.core.v1.service.writer.WriteTokenProcessor; import org.jd.core.v1.stub.FloatingPointCasting; import org.junit.Test; import java.util.Collections; -import java.util.Map; -public class CfrTest extends TestCase { - protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); - protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); - protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); - protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); - //protected TestTokenizeJavaFragmentProcessor tokenizer = new TestTokenizeJavaFragmentProcessor(); - protected JavaFragmentToTokenProcessor tokenizer = new JavaFragmentToTokenProcessor(); - protected WriteTokenProcessor writer = new WriteTokenProcessor(); +public class CfrTest extends AbstractJdTest { @Test // https://github.com/java-decompiler/jd-core/issues/34 public void testFloatingPointCasting() throws Exception { String internalClassName = FloatingPointCasting.class.getName().replace('.', '/'); - String source = decompile(new ClassPathLoader(), new PlainTextPrinter(), internalClassName); + String source = decompile(new ClassPathLoader(), new PlainTextPrinter(), internalClassName, Collections.emptyMap()); + assertTrue(source.indexOf("// Byte code:") == -1); // Check decompiled source code assertTrue(source.matches(PatternMaker.make(": 12 */", "long b = (long)(double)"))); @@ -52,39 +34,4 @@ public void testFloatingPointCasting() throws Exception { // Recompile decompiled source code and check errors assertTrue(CompilerUtil.compile("1.8", new JavaSourceFileObject(internalClassName, source))); } - - protected String decompile(Loader loader, Printer printer, String internalTypeName) throws Exception { - return decompile(loader, printer, internalTypeName, Collections.emptyMap()); - } - - protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { - DecompileContext decompileContext = new DecompileContext(); - decompileContext.setLoader(loader); - decompileContext.setPrinter(printer); - decompileContext.setMainInternalTypeName(internalTypeName); - decompileContext.setConfiguration(configuration); - - ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); - decompileContext.setBody(classFile); - - converter.process(decompileContext); - fragmenter.process(decompileContext); - layouter.process(decompileContext); - tokenizer.process(decompileContext); - writer.process(decompileContext); - - String source = printer.toString(); - - printSource(source); - - assertTrue(source.indexOf("// Byte code:") == -1); - - return source; - } - - protected void printSource(String source) { - System.out.println("- - - - - - - - "); - System.out.println(source); - System.out.println("- - - - - - - - "); - } } diff --git a/src/test/java/org/jd/core/v1/JavaArrayTest.java b/src/test/java/org/jd/core/v1/JavaArrayTest.java index 6cbf488a..2fefa771 100644 --- a/src/test/java/org/jd/core/v1/JavaArrayTest.java +++ b/src/test/java/org/jd/core/v1/JavaArrayTest.java @@ -7,39 +7,21 @@ package org.jd.core.v1; -import junit.framework.TestCase; import org.jd.core.v1.api.loader.Loader; import org.jd.core.v1.api.printer.Printer; import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ClassPathLoader; import org.jd.core.v1.loader.ZipLoader; -import org.jd.core.v1.model.classfile.ClassFile; -import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; -import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; -import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; -import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; -import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; -import org.jd.core.v1.service.writer.WriteTokenProcessor; import org.jd.core.v1.stub.InitializedArrayInTernaryOperator; import org.junit.Test; import java.io.InputStream; import java.util.Collections; -import java.util.Map; - -public class JavaArrayTest extends TestCase { - protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); - protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); - protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); - protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); - //protected TestTokenizeJavaFragmentProcessor tokenizer = new TestTokenizeJavaFragmentProcessor(); - protected JavaFragmentToTokenProcessor tokenizer = new JavaFragmentToTokenProcessor(); - protected WriteTokenProcessor writer = new WriteTokenProcessor(); +public class JavaArrayTest extends AbstractJdTest { @Test public void testJdk150Array() throws Exception { String internalClassName = "org/jd/core/test/Array"; @@ -107,37 +89,8 @@ public void testInitializedArrayInTernaryOperator() throws Exception { } protected String decompile(Loader loader, Printer printer, String internalTypeName) throws Exception { - return decompile(loader, printer, internalTypeName, Collections.emptyMap()); - } - - protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { - DecompileContext decompileContext = new DecompileContext(); - decompileContext.setLoader(loader); - decompileContext.setPrinter(printer); - decompileContext.setMainInternalTypeName(internalTypeName); - decompileContext.setConfiguration(configuration); - - ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); - decompileContext.setBody(classFile); - - converter.process(decompileContext); - fragmenter.process(decompileContext); - layouter.process(decompileContext); - tokenizer.process(decompileContext); - writer.process(decompileContext); - - String source = printer.toString(); - - printSource(source); - + String source = decompile(loader, printer, internalTypeName, Collections.emptyMap()); assertTrue(source.indexOf("// Byte code:") == -1); - return source; } - - protected void printSource(String source) { - System.out.println("- - - - - - - - "); - System.out.println(source); - System.out.println("- - - - - - - - "); - } } diff --git a/src/test/java/org/jd/core/v1/JavaAutoboxingTest.java b/src/test/java/org/jd/core/v1/JavaAutoboxingTest.java index 06b39fc1..56940927 100644 --- a/src/test/java/org/jd/core/v1/JavaAutoboxingTest.java +++ b/src/test/java/org/jd/core/v1/JavaAutoboxingTest.java @@ -7,42 +7,23 @@ package org.jd.core.v1; -import junit.framework.TestCase; -import org.jd.core.v1.api.loader.Loader; -import org.jd.core.v1.api.printer.Printer; import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ClassPathLoader; -import org.jd.core.v1.model.classfile.ClassFile; -import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; -import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; -import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; -import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; -import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; -import org.jd.core.v1.service.writer.WriteTokenProcessor; import org.jd.core.v1.stub.AutoboxingAndUnboxing; import org.junit.Test; import java.util.Collections; -import java.util.Map; - -public class JavaAutoboxingTest extends TestCase { - protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); - protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); - protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); - protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); - //protected TestTokenizeJavaFragmentProcessor tokenizer = new TestTokenizeJavaFragmentProcessor(); - protected JavaFragmentToTokenProcessor tokenizer = new JavaFragmentToTokenProcessor(); - protected WriteTokenProcessor writer = new WriteTokenProcessor(); +public class JavaAutoboxingTest extends AbstractJdTest { @Test // https://github.com/java-decompiler/jd-core/issues/14 public void testAutoboxing() throws Exception { String internalClassName = AutoboxingAndUnboxing.class.getName().replace('.', '/'); - String source = decompile(new ClassPathLoader(), new PlainTextPrinter(), internalClassName); + String source = decompile(new ClassPathLoader(), new PlainTextPrinter(), internalClassName, Collections.emptyMap()); + assertTrue(source.indexOf("// Byte code:") == -1); // Check decompiled source code assertTrue(source.matches(PatternMaker.make(": 5 */", "Integer intObj = 10;"))); @@ -51,39 +32,4 @@ public void testAutoboxing() throws Exception { // Recompile decompiled source code and check errors assertTrue(CompilerUtil.compile("1.8", new JavaSourceFileObject(internalClassName, source))); } - - protected String decompile(Loader loader, Printer printer, String internalTypeName) throws Exception { - return decompile(loader, printer, internalTypeName, Collections.emptyMap()); - } - - protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { - DecompileContext decompileContext = new DecompileContext(); - decompileContext.setLoader(loader); - decompileContext.setPrinter(printer); - decompileContext.setMainInternalTypeName(internalTypeName); - decompileContext.setConfiguration(configuration); - - ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); - decompileContext.setBody(classFile); - - converter.process(decompileContext); - fragmenter.process(decompileContext); - layouter.process(decompileContext); - tokenizer.process(decompileContext); - writer.process(decompileContext); - - String source = printer.toString(); - - printSource(source); - - assertTrue(source.indexOf("// Byte code:") == -1); - - return source; - } - - protected void printSource(String source) { - System.out.println("- - - - - - - - "); - System.out.println(source); - System.out.println("- - - - - - - - "); - } } diff --git a/src/test/java/org/jd/core/v1/JavaMethodOverloadingTest.java b/src/test/java/org/jd/core/v1/JavaMethodOverloadingTest.java index 60524ad4..801f540e 100644 --- a/src/test/java/org/jd/core/v1/JavaMethodOverloadingTest.java +++ b/src/test/java/org/jd/core/v1/JavaMethodOverloadingTest.java @@ -7,42 +7,20 @@ package org.jd.core.v1; -import junit.framework.TestCase; -import org.jd.core.v1.api.loader.Loader; -import org.jd.core.v1.api.printer.Printer; import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ClassPathLoader; -import org.jd.core.v1.model.classfile.ClassFile; -import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; -import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; -import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; -import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; -import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; -import org.jd.core.v1.service.writer.WriteTokenProcessor; import org.jd.core.v1.stub.ArrayMethodOverloading; import org.junit.Test; -import java.util.Collections; -import java.util.Map; - -public class JavaMethodOverloadingTest extends TestCase { - protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); - protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); - protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); - protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); - //protected TestTokenizeJavaFragmentProcessor tokenizer = new TestTokenizeJavaFragmentProcessor(); - protected JavaFragmentToTokenProcessor tokenizer = new JavaFragmentToTokenProcessor(); - protected WriteTokenProcessor writer = new WriteTokenProcessor(); - +public class JavaMethodOverloadingTest extends AbstractJdTest { @Test // https://github.com/java-decompiler/jd-core/issues/33 public void testArrayMethodOverloading() throws Exception { String internalClassName = ArrayMethodOverloading.class.getName().replace('.', '/'); - String source = decompile(new ClassPathLoader(), new PlainTextPrinter(), internalClassName); + String source = decompileSuccess(new ClassPathLoader(), new PlainTextPrinter(), internalClassName); // Check decompiled source code assertTrue(source.matches(PatternMaker.make(": 11 */", "use(\"string\");"))); @@ -54,7 +32,8 @@ public void testArrayMethodOverloading() throws Exception { assertTrue(CompilerUtil.compile("1.8", new JavaSourceFileObject(internalClassName, source))); } - @Test + // TODO: bug should be fix +// @Test // https://github.com/java-decompiler/jd-core/issues/32 // public void testGenericParameterMethod() throws Exception { // class GenericParameterMethod { @@ -82,38 +61,4 @@ public void testArrayMethodOverloading() throws Exception { // assertTrue(CompilerUtil.compile("1.8", new JavaSourceFileObject(internalClassName, source))); // } - protected String decompile(Loader loader, Printer printer, String internalTypeName) throws Exception { - return decompile(loader, printer, internalTypeName, Collections.emptyMap()); - } - - protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { - DecompileContext decompileContext = new DecompileContext(); - decompileContext.setLoader(loader); - decompileContext.setPrinter(printer); - decompileContext.setMainInternalTypeName(internalTypeName); - decompileContext.setConfiguration(configuration); - - ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); - decompileContext.setBody(classFile); - - converter.process(decompileContext); - fragmenter.process(decompileContext); - layouter.process(decompileContext); - tokenizer.process(decompileContext); - writer.process(decompileContext); - - String source = printer.toString(); - - printSource(source); - - assertTrue(source.indexOf("// Byte code:") == -1); - - return source; - } - - protected void printSource(String source) { - System.out.println("- - - - - - - - "); - System.out.println(source); - System.out.println("- - - - - - - - "); - } } diff --git a/src/test/java/org/jd/core/v1/JavaOperatorPrecedenceTest.java b/src/test/java/org/jd/core/v1/JavaOperatorPrecedenceTest.java index 2a619798..076e2632 100644 --- a/src/test/java/org/jd/core/v1/JavaOperatorPrecedenceTest.java +++ b/src/test/java/org/jd/core/v1/JavaOperatorPrecedenceTest.java @@ -7,41 +7,19 @@ package org.jd.core.v1; -import junit.framework.TestCase; -import org.jd.core.v1.api.loader.Loader; -import org.jd.core.v1.api.printer.Printer; import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ClassPathLoader; -import org.jd.core.v1.model.classfile.ClassFile; -import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; -import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; -import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; -import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; -import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; -import org.jd.core.v1.service.writer.WriteTokenProcessor; import org.jd.core.v1.stub.NewOperatorPrecedence; import org.junit.Test; -import java.util.Collections; -import java.util.Map; - -public class JavaOperatorPrecedenceTest extends TestCase { - protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); - protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); - protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); - protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); - //protected TestTokenizeJavaFragmentProcessor tokenizer = new TestTokenizeJavaFragmentProcessor(); - protected JavaFragmentToTokenProcessor tokenizer = new JavaFragmentToTokenProcessor(); - protected WriteTokenProcessor writer = new WriteTokenProcessor(); - +public class JavaOperatorPrecedenceTest extends AbstractJdTest { @Test public void testNewOperatorPrecedence() throws Exception { String internalClassName = NewOperatorPrecedence.class.getName().replace('.', '/'); - String source = decompile(new ClassPathLoader(), new PlainTextPrinter(), internalClassName); + String source = decompileSuccess(new ClassPathLoader(), new PlainTextPrinter(), internalClassName); // Check decompiled source code assertTrue(source.matches(PatternMaker.make(": 8 */", "new NewOperatorPrecedence().test();"))); @@ -49,39 +27,4 @@ public void testNewOperatorPrecedence() throws Exception { // Recompile decompiled source code and check errors assertTrue(CompilerUtil.compile("1.8", new JavaSourceFileObject(internalClassName, source))); } - - protected String decompile(Loader loader, Printer printer, String internalTypeName) throws Exception { - return decompile(loader, printer, internalTypeName, Collections.emptyMap()); - } - - protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { - DecompileContext decompileContext = new DecompileContext(); - decompileContext.setLoader(loader); - decompileContext.setPrinter(printer); - decompileContext.setMainInternalTypeName(internalTypeName); - decompileContext.setConfiguration(configuration); - - ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); - decompileContext.setBody(classFile); - - converter.process(decompileContext); - fragmenter.process(decompileContext); - layouter.process(decompileContext); - tokenizer.process(decompileContext); - writer.process(decompileContext); - - String source = printer.toString(); - - printSource(source); - - assertTrue(source.indexOf("// Byte code:") == -1); - - return source; - } - - protected void printSource(String source) { - System.out.println("- - - - - - - - "); - System.out.println(source); - System.out.println("- - - - - - - - "); - } } From d3fbda75ace3bfcdee12d40c2fadf80282be4fdd Mon Sep 17 00:00:00 2001 From: Yushan Gao Date: Sat, 28 Nov 2020 08:58:14 +0800 Subject: [PATCH 22/28] refactor: apply AbstractJdTest to some test --- .../java/org/jd/core/v1/AbstractJdTest.java | 8 +- .../jd/core/v1/JavaInnerOuterClassTest.java | 56 +----- .../java/org/jd/core/v1/JavaLambdaTest.java | 58 +----- .../java/org/jd/core/v1/JavaLoopTest.java | 78 ++------ .../java/org/jd/core/v1/JavaSwitchTest.java | 64 +------ .../jd/core/v1/JavaSynchronizedBlockTest.java | 58 +----- .../jd/core/v1/JavaTernaryOperatorTest.java | 60 +----- .../jd/core/v1/JavaTryCatchFinallyTest.java | 71 +------ .../core/v1/LayoutFragmentProcessorTest.java | 176 +----------------- 9 files changed, 52 insertions(+), 577 deletions(-) diff --git a/src/test/java/org/jd/core/v1/AbstractJdTest.java b/src/test/java/org/jd/core/v1/AbstractJdTest.java index b4bb06ec..04cee441 100644 --- a/src/test/java/org/jd/core/v1/AbstractJdTest.java +++ b/src/test/java/org/jd/core/v1/AbstractJdTest.java @@ -50,12 +50,16 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa return decompile(loader, printer, internalTypeName, Collections.emptyMap()); } - protected String decompileSuccess(Loader loader, Printer printer, String internalTypeName) throws Exception { - String source = decompile(loader, printer, internalTypeName, Collections.emptyMap()); + protected String decompileSuccess(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { + String source = decompile(loader, printer, internalTypeName, configuration); assertTrue(source.indexOf("// Byte code:") == -1); return source; } + protected String decompileSuccess(Loader loader, Printer printer, String internalTypeName) throws Exception { + return decompileSuccess(loader, printer, internalTypeName, Collections.emptyMap()); + } + protected void printSource(String source) { System.out.println("- - - - - - - - "); System.out.println(source); diff --git a/src/test/java/org/jd/core/v1/JavaInnerOuterClassTest.java b/src/test/java/org/jd/core/v1/JavaInnerOuterClassTest.java index 776b0805..b0913d82 100644 --- a/src/test/java/org/jd/core/v1/JavaInnerOuterClassTest.java +++ b/src/test/java/org/jd/core/v1/JavaInnerOuterClassTest.java @@ -7,36 +7,19 @@ package org.jd.core.v1; -import junit.framework.TestCase; import org.jd.core.v1.api.loader.Loader; -import org.jd.core.v1.api.printer.Printer; import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ZipLoader; -import org.jd.core.v1.model.classfile.ClassFile; -import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; -import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; -import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; -import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; -import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; -import org.jd.core.v1.service.writer.WriteTokenProcessor; import org.junit.Test; import java.io.InputStream; import java.util.Collections; import java.util.Map; -public class JavaInnerOuterClassTest extends TestCase { - protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); - protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); - protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); - protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); - //protected TestTokenizeJavaFragmentProcessor tokenizer = new TestTokenizeJavaFragmentProcessor(); - protected JavaFragmentToTokenProcessor tokenizer = new JavaFragmentToTokenProcessor(); - protected WriteTokenProcessor writer = new WriteTokenProcessor(); +public class JavaInnerOuterClassTest extends AbstractJdTest { @Test public void testJdk170InnerOuterClass() throws Exception { @@ -44,7 +27,7 @@ public void testJdk170InnerOuterClass() throws Exception { InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-1.7.0.zip"); Loader loader = new ZipLoader(is); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - String source = decompile(loader, new PlainTextPrinter(), internalClassName, configuration); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName, configuration); // Check decompiled source code assertTrue(source.matches(PatternMaker.make(": 10 */", "protected int outerField1 = 0;"))); @@ -102,39 +85,4 @@ public void testJdk170InnerOuterClass() throws Exception { // Recompile decompiled source code and check errors assertTrue(CompilerUtil.compile("1.7", new JavaSourceFileObject(internalClassName, source))); } - - protected String decompile(Loader loader, Printer printer, String internalTypeName) throws Exception { - return decompile(loader, printer, internalTypeName, Collections.emptyMap()); - } - - protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { - DecompileContext decompileContext = new DecompileContext(); - decompileContext.setLoader(loader); - decompileContext.setPrinter(printer); - decompileContext.setMainInternalTypeName(internalTypeName); - decompileContext.setConfiguration(configuration); - - ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); - decompileContext.setBody(classFile); - - converter.process(decompileContext); - fragmenter.process(decompileContext); - layouter.process(decompileContext); - tokenizer.process(decompileContext); - writer.process(decompileContext); - - String source = printer.toString(); - - printSource(source); - - assertTrue(source.indexOf("// Byte code:") == -1); - - return source; - } - - protected void printSource(String source) { - System.out.println("- - - - - - - - "); - System.out.println(source); - System.out.println("- - - - - - - - "); - } } diff --git a/src/test/java/org/jd/core/v1/JavaLambdaTest.java b/src/test/java/org/jd/core/v1/JavaLambdaTest.java index e2692351..45165566 100644 --- a/src/test/java/org/jd/core/v1/JavaLambdaTest.java +++ b/src/test/java/org/jd/core/v1/JavaLambdaTest.java @@ -7,43 +7,24 @@ package org.jd.core.v1; -import junit.framework.TestCase; import org.jd.core.v1.api.loader.Loader; -import org.jd.core.v1.api.printer.Printer; import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ZipLoader; -import org.jd.core.v1.model.classfile.ClassFile; -import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; -import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; -import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; -import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; -import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; -import org.jd.core.v1.service.writer.WriteTokenProcessor; import org.junit.Test; import java.io.InputStream; -import java.util.Collections; -import java.util.Map; -public class JavaLambdaTest extends TestCase { - protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); - protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); - protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); - protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); - //protected TestTokenizeJavaFragmentProcessor tokenizer = new TestTokenizeJavaFragmentProcessor(); - protected JavaFragmentToTokenProcessor tokenizer = new JavaFragmentToTokenProcessor(); - protected WriteTokenProcessor writer = new WriteTokenProcessor(); +public class JavaLambdaTest extends AbstractJdTest { @Test public void testJdk180Lambda() throws Exception { String internalClassName = "org/jd/core/test/Lambda"; InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-1.8.0.zip"); Loader loader = new ZipLoader(is); - String source = decompile(loader, new PlainTextPrinter(), internalClassName); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName); // Check decompiled source code assertTrue(source.matches(PatternMaker.make(": 16 */", "list.forEach(System.out::println);"))); @@ -66,39 +47,4 @@ public void testJdk180Lambda() throws Exception { // Recompile decompiled source code and check errors assertTrue(CompilerUtil.compile("1.8", new JavaSourceFileObject(internalClassName, source))); } - - protected String decompile(Loader loader, Printer printer, String internalTypeName) throws Exception { - return decompile(loader, printer, internalTypeName, Collections.emptyMap()); - } - - protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { - DecompileContext decompileContext = new DecompileContext(); - decompileContext.setLoader(loader); - decompileContext.setPrinter(printer); - decompileContext.setMainInternalTypeName(internalTypeName); - decompileContext.setConfiguration(configuration); - - ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); - decompileContext.setBody(classFile); - - converter.process(decompileContext); - fragmenter.process(decompileContext); - layouter.process(decompileContext); - tokenizer.process(decompileContext); - writer.process(decompileContext); - - String source = printer.toString(); - - printSource(source); - - assertTrue(source.indexOf("// Byte code:") == -1); - - return source; - } - - protected void printSource(String source) { - System.out.println("- - - - - - - - "); - System.out.println(source); - System.out.println("- - - - - - - - "); - } } diff --git a/src/test/java/org/jd/core/v1/JavaLoopTest.java b/src/test/java/org/jd/core/v1/JavaLoopTest.java index e06db457..f74be0bf 100644 --- a/src/test/java/org/jd/core/v1/JavaLoopTest.java +++ b/src/test/java/org/jd/core/v1/JavaLoopTest.java @@ -7,36 +7,19 @@ package org.jd.core.v1; -import junit.framework.TestCase; import org.jd.core.v1.api.loader.Loader; -import org.jd.core.v1.api.printer.Printer; import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ZipLoader; -import org.jd.core.v1.model.classfile.ClassFile; -import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; -import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; -import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; -import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; -import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; -import org.jd.core.v1.service.writer.WriteTokenProcessor; import org.junit.Test; import java.io.InputStream; import java.util.Collections; import java.util.Map; -public class JavaLoopTest extends TestCase { - protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); - protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); - protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); - protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); - //protected TestTokenizeJavaFragmentProcessor tokenizer = new TestTokenizeJavaFragmentProcessor(); - protected JavaFragmentToTokenProcessor tokenizer = new JavaFragmentToTokenProcessor(); - protected WriteTokenProcessor writer = new WriteTokenProcessor(); +public class JavaLoopTest extends AbstractJdTest { @Test public void testJdk170While() throws Exception { @@ -44,7 +27,7 @@ public void testJdk170While() throws Exception { InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-1.7.0.zip"); Loader loader = new ZipLoader(is); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - String source = decompile(loader, new PlainTextPrinter(), internalClassName, configuration); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName, configuration); // Check decompiled source code assertTrue(source.matches(PatternMaker.make(": 15 */", "while (i-- > 0)"))); @@ -72,7 +55,7 @@ public void testJdk901While() throws Exception { InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-9.0.1.zip"); Loader loader = new ZipLoader(is); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - String source = decompile(loader, new PlainTextPrinter(), internalClassName, configuration); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName, configuration); // Check decompiled source code assertTrue(source.matches(PatternMaker.make(": 15 */", "while (i-- > 0)"))); @@ -100,7 +83,7 @@ public void testJdk1002While() throws Exception { InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-10.0.2.zip"); Loader loader = new ZipLoader(is); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - String source = decompile(loader, new PlainTextPrinter(), internalClassName, configuration); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName, configuration); // Check decompiled source code assertTrue(source.matches(PatternMaker.make(": 15 */", "while (i-- > 0)"))); @@ -127,7 +110,7 @@ public void testJdk170DoWhile() throws Exception { String internalClassName = "org/jd/core/test/DoWhile"; InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-1.7.0.zip"); Loader loader = new ZipLoader(is); - String source = decompile(loader, new PlainTextPrinter(), internalClassName); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName); // Check decompiled source code assertTrue(source.matches(PatternMaker.make(": 24 */", "} while (i < 10);"))); @@ -151,7 +134,7 @@ public void testJdk901DoWhile() throws Exception { String internalClassName = "org/jd/core/test/DoWhile"; InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-9.0.1.zip"); Loader loader = new ZipLoader(is); - String source = decompile(loader, new PlainTextPrinter(), internalClassName); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName); // Check decompiled source code assertTrue(source.matches(PatternMaker.make(": 24 */", "} while (i < 10);"))); @@ -175,7 +158,7 @@ public void testJdk1002DoWhile() throws Exception { String internalClassName = "org/jd/core/test/DoWhile"; InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-10.0.2.zip"); Loader loader = new ZipLoader(is); - String source = decompile(loader, new PlainTextPrinter(), internalClassName); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName); // Check decompiled source code assertTrue(source.matches(PatternMaker.make(": 24 */", "} while (i < 10);"))); @@ -200,7 +183,7 @@ public void testJdk170BreakContinue() throws Exception { InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-1.7.0.zip"); Loader loader = new ZipLoader(is); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - String source = decompile(loader, new PlainTextPrinter(), internalClassName, configuration); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName, configuration); // Check decompiled source code assertTrue(source.matches(PatternMaker.make("/* 15: 15 */", "if (i == 1)"))); @@ -242,7 +225,7 @@ public void testJdk170For() throws Exception { InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-1.7.0.zip"); Loader loader = new ZipLoader(is); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - String source = decompile(loader, new PlainTextPrinter(), internalClassName, configuration); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName, configuration); // Check decompiled source code assertTrue(source.matches(PatternMaker.make(": 20 */", "for (int i = 0; i < 10; i++)"))); @@ -303,7 +286,7 @@ public void testJdk170NoDebugInfoFor() throws Exception { String internalClassName = "org/jd/core/test/For"; InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-1.7.0-no-debug-info.zip"); Loader loader = new ZipLoader(is); - String source = decompile(loader, new PlainTextPrinter(), internalClassName); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName); // Check decompiled source code assertTrue(source.matches(PatternMaker.make("for (int i = 0; i < 10; i++)"))); @@ -324,7 +307,7 @@ public void testJdk150For() throws Exception { InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-1.5.0.zip"); Loader loader = new ZipLoader(is); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - String source = decompile(loader, new PlainTextPrinter(), internalClassName, configuration); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName, configuration); // Check decompiled source code assertTrue(source.matches(PatternMaker.make(": 20 */", "for (int i = 0; i < 10; i++)"))); @@ -348,7 +331,7 @@ public void testJdk160For() throws Exception { InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-1.6.0.zip"); Loader loader = new ZipLoader(is); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - String source = decompile(loader, new PlainTextPrinter(), internalClassName, configuration); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName, configuration); // Check decompiled source code assertTrue(source.matches(PatternMaker.make(": 20 */", "for (int i = 0; i < 10; i++)"))); @@ -372,7 +355,7 @@ public void testIbmJ9For() throws Exception { InputStream is = this.getClass().getResourceAsStream("/zip/data-java-ibm-j9_vm.zip"); Loader loader = new ZipLoader(is); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - String source = decompile(loader, new PlainTextPrinter(), internalClassName, configuration); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName, configuration); // Check decompiled source code assertTrue(source.matches(PatternMaker.make(": 88 */", "while (i < 10)"))); @@ -388,39 +371,4 @@ public void testIbmJ9For() throws Exception { // Recompile decompiled source code and check errors assertTrue(CompilerUtil.compile("1.5", new JavaSourceFileObject(internalClassName, source))); } - - protected String decompile(Loader loader, Printer printer, String internalTypeName) throws Exception { - return decompile(loader, printer, internalTypeName, Collections.emptyMap()); - } - - protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { - DecompileContext decompileContext = new DecompileContext(); - decompileContext.setLoader(loader); - decompileContext.setPrinter(printer); - decompileContext.setMainInternalTypeName(internalTypeName); - decompileContext.setConfiguration(configuration); - - ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); - decompileContext.setBody(classFile); - - converter.process(decompileContext); - fragmenter.process(decompileContext); - layouter.process(decompileContext); - tokenizer.process(decompileContext); - writer.process(decompileContext); - - String source = printer.toString(); - - printSource(source); - - assertTrue(source.indexOf("// Byte code:") == -1); - - return source; - } - - protected void printSource(String source) { - System.out.println("- - - - - - - - "); - System.out.println(source); - System.out.println("- - - - - - - - "); - } } diff --git a/src/test/java/org/jd/core/v1/JavaSwitchTest.java b/src/test/java/org/jd/core/v1/JavaSwitchTest.java index 69bf3e47..b1af0370 100644 --- a/src/test/java/org/jd/core/v1/JavaSwitchTest.java +++ b/src/test/java/org/jd/core/v1/JavaSwitchTest.java @@ -7,22 +7,12 @@ package org.jd.core.v1; -import junit.framework.TestCase; import org.jd.core.v1.api.loader.Loader; -import org.jd.core.v1.api.printer.Printer; import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ZipLoader; -import org.jd.core.v1.model.classfile.ClassFile; -import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; -import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; -import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; -import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; -import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; -import org.jd.core.v1.service.writer.WriteTokenProcessor; import org.junit.Test; import java.io.FileInputStream; @@ -31,14 +21,7 @@ import java.util.Collections; import java.util.Map; -public class JavaSwitchTest extends TestCase { - protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); - protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); - protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); - protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); - //protected TestTokenizeJavaFragmentProcessor tokenizer = new TestTokenizeJavaFragmentProcessor(); - protected JavaFragmentToTokenProcessor tokenizer = new JavaFragmentToTokenProcessor(); - protected WriteTokenProcessor writer = new WriteTokenProcessor(); +public class JavaSwitchTest extends AbstractJdTest { @Test public void testJdk170Switch() throws Exception { @@ -46,7 +29,7 @@ public void testJdk170Switch() throws Exception { InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-1.7.0.zip"); Loader loader = new ZipLoader(is); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - String source = decompile(loader, new PlainTextPrinter(), internalClassName, configuration); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName, configuration); // Check decompiled source code assertTrue(source.matches(PatternMaker.make("/* 15: 15 */", "switch (i)"))); @@ -92,7 +75,7 @@ public void testJdk170AdvancedSwitch() throws Exception { InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-1.7.0.zip"); Loader loader = new ZipLoader(is); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - String source = decompile(loader, new PlainTextPrinter(), internalClassName, configuration); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName, configuration); // Check decompiled source code assertTrue(source.matches(PatternMaker.make("/* 13: 13 */", "A,", "B,", "C;"))); @@ -124,7 +107,7 @@ public void testEclipseJavaCompiler321Switch() throws Exception { InputStream is = this.getClass().getResourceAsStream("/zip/data-java-eclipse-java-compiler-3.2.1.zip"); Loader loader = new ZipLoader(is); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - String source = decompile(loader, new PlainTextPrinter(), internalClassName, configuration); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName, configuration); // Check decompiled source code assertTrue(source.indexOf("/* 239: 239 */") != -1); @@ -139,7 +122,7 @@ public void testEclipseJavaCompiler3130Switch() throws Exception { InputStream is = this.getClass().getResourceAsStream("/zip/data-java-eclipse-java-compiler-3.13.0.zip"); Loader loader = new ZipLoader(is); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - String source = decompile(loader, new PlainTextPrinter(), internalClassName, configuration); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName, configuration); // Check decompiled source code assertTrue(source.indexOf("/* 239: 239 */") != -1); @@ -156,7 +139,7 @@ public void testBstMutationResult() throws Exception { InputStream is = new FileInputStream(Paths.get(mainClass.getProtectionDomain().getCodeSource().getLocation().toURI()).toFile()); Loader loader = new ZipLoader(is); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - String source = decompile(loader, new PlainTextPrinter(), internalClassName, configuration); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName, configuration); // Check decompiled source code assertTrue(source.indexOf("N resultLeft, resultRight;") != -1); @@ -167,39 +150,4 @@ public void testBstMutationResult() throws Exception { // Recompile decompiled source code and check errors assertTrue(CompilerUtil.compile("1.8", new JavaSourceFileObject(internalClassName, source))); } - - protected String decompile(Loader loader, Printer printer, String internalTypeName) throws Exception { - return decompile(loader, printer, internalTypeName, Collections.emptyMap()); - } - - protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { - DecompileContext decompileContext = new DecompileContext(); - decompileContext.setLoader(loader); - decompileContext.setPrinter(printer); - decompileContext.setMainInternalTypeName(internalTypeName); - decompileContext.setConfiguration(configuration); - - ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); - decompileContext.setBody(classFile); - - converter.process(decompileContext); - fragmenter.process(decompileContext); - layouter.process(decompileContext); - tokenizer.process(decompileContext); - writer.process(decompileContext); - - String source = printer.toString(); - - printSource(source); - - assertTrue(source.indexOf("// Byte code:") == -1); - - return source; - } - - protected void printSource(String source) { - System.out.println("- - - - - - - - "); - System.out.println(source); - System.out.println("- - - - - - - - "); - } } diff --git a/src/test/java/org/jd/core/v1/JavaSynchronizedBlockTest.java b/src/test/java/org/jd/core/v1/JavaSynchronizedBlockTest.java index 333be3e0..14d04f4d 100644 --- a/src/test/java/org/jd/core/v1/JavaSynchronizedBlockTest.java +++ b/src/test/java/org/jd/core/v1/JavaSynchronizedBlockTest.java @@ -7,43 +7,24 @@ package org.jd.core.v1; -import junit.framework.TestCase; import org.jd.core.v1.api.loader.Loader; -import org.jd.core.v1.api.printer.Printer; import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ZipLoader; -import org.jd.core.v1.model.classfile.ClassFile; -import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; -import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; -import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; -import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; -import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; -import org.jd.core.v1.service.writer.WriteTokenProcessor; import org.junit.Test; import java.io.InputStream; -import java.util.Collections; -import java.util.Map; -public class JavaSynchronizedBlockTest extends TestCase { - protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); - protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); - protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); - protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); - //protected TestTokenizeJavaFragmentProcessor tokenizer = new TestTokenizeJavaFragmentProcessor(); - protected JavaFragmentToTokenProcessor tokenizer = new JavaFragmentToTokenProcessor(); - protected WriteTokenProcessor writer = new WriteTokenProcessor(); +public class JavaSynchronizedBlockTest extends AbstractJdTest { @Test public void testJdk170Synchronised() throws Exception { String internalClassName = "org/jd/core/test/Synchronized"; InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-1.7.0.zip"); Loader loader = new ZipLoader(is); - String source = decompile(loader, new PlainTextPrinter(), internalClassName); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName); // Check decompiled source code assertTrue(source.matches(PatternMaker.make(": 11 */", "synchronized (paramStringBuilder)"))); @@ -68,39 +49,4 @@ public void testJdk170Synchronised() throws Exception { // Recompile decompiled source code and check errors assertTrue(CompilerUtil.compile("1.7", new JavaSourceFileObject(internalClassName, source))); } - - protected String decompile(Loader loader, Printer printer, String internalTypeName) throws Exception { - return decompile(loader, printer, internalTypeName, Collections.emptyMap()); - } - - protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { - DecompileContext decompileContext = new DecompileContext(); - decompileContext.setLoader(loader); - decompileContext.setPrinter(printer); - decompileContext.setMainInternalTypeName(internalTypeName); - decompileContext.setConfiguration(configuration); - - ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); - decompileContext.setBody(classFile); - - converter.process(decompileContext); - fragmenter.process(decompileContext); - layouter.process(decompileContext); - tokenizer.process(decompileContext); - writer.process(decompileContext); - - String source = printer.toString(); - - printSource(source); - - assertTrue(source.indexOf("// Byte code:") == -1); - - return source; - } - - protected void printSource(String source) { - System.out.println("- - - - - - - - "); - System.out.println(source); - System.out.println("- - - - - - - - "); - } } diff --git a/src/test/java/org/jd/core/v1/JavaTernaryOperatorTest.java b/src/test/java/org/jd/core/v1/JavaTernaryOperatorTest.java index 97157a99..fdd43709 100644 --- a/src/test/java/org/jd/core/v1/JavaTernaryOperatorTest.java +++ b/src/test/java/org/jd/core/v1/JavaTernaryOperatorTest.java @@ -7,43 +7,24 @@ package org.jd.core.v1; -import junit.framework.TestCase; import org.jd.core.v1.api.loader.Loader; -import org.jd.core.v1.api.printer.Printer; import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ZipLoader; -import org.jd.core.v1.model.classfile.ClassFile; -import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; -import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; -import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; -import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; -import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; -import org.jd.core.v1.service.writer.WriteTokenProcessor; import org.junit.Test; import java.io.InputStream; -import java.util.Collections; -import java.util.Map; -public class JavaTernaryOperatorTest extends TestCase { - protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); - protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); - protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); - protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); - //protected TestTokenizeJavaFragmentProcessor tokenizer = new TestTokenizeJavaFragmentProcessor(); - protected JavaFragmentToTokenProcessor tokenizer = new JavaFragmentToTokenProcessor(); - protected WriteTokenProcessor writer = new WriteTokenProcessor(); +public class JavaTernaryOperatorTest extends AbstractJdTest { @Test public void testJdk118TernaryOperator() throws Exception { String internalClassName = "org/jd/core/test/TernaryOperator"; InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-1.1.8.zip"); Loader loader = new ZipLoader(is); - String source = decompile(loader, new PlainTextPrinter(), internalClassName); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName); // Check decompiled source code assertTrue(source.matches(PatternMaker.make(": 13 */", "this.str ="))); @@ -70,7 +51,7 @@ public void testJdk170TernaryOperator() throws Exception { String internalClassName = "org/jd/core/test/TernaryOperator"; InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-1.7.0.zip"); Loader loader = new ZipLoader(is); - String source = decompile(loader, new PlainTextPrinter(), internalClassName); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName); // Check decompiled source code assertTrue(source.matches(PatternMaker.make(": 13 */", "this.str = (s == null) ? \"1\" : \"2\";"))); @@ -88,39 +69,4 @@ public void testJdk170TernaryOperator() throws Exception { // Recompile decompiled source code and check errors assertTrue(CompilerUtil.compile("1.7", new JavaSourceFileObject(internalClassName, source))); } - - protected String decompile(Loader loader, Printer printer, String internalTypeName) throws Exception { - return decompile(loader, printer, internalTypeName, Collections.emptyMap()); - } - - protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { - DecompileContext decompileContext = new DecompileContext(); - decompileContext.setLoader(loader); - decompileContext.setPrinter(printer); - decompileContext.setMainInternalTypeName(internalTypeName); - decompileContext.setConfiguration(configuration); - - ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); - decompileContext.setBody(classFile); - - converter.process(decompileContext); - fragmenter.process(decompileContext); - layouter.process(decompileContext); - tokenizer.process(decompileContext); - writer.process(decompileContext); - - String source = printer.toString(); - - printSource(source); - - assertTrue(source.indexOf("// Byte code:") == -1); - - return source; - } - - protected void printSource(String source) { - System.out.println("- - - - - - - - "); - System.out.println(source); - System.out.println("- - - - - - - - "); - } } diff --git a/src/test/java/org/jd/core/v1/JavaTryCatchFinallyTest.java b/src/test/java/org/jd/core/v1/JavaTryCatchFinallyTest.java index 4f928a05..86917137 100644 --- a/src/test/java/org/jd/core/v1/JavaTryCatchFinallyTest.java +++ b/src/test/java/org/jd/core/v1/JavaTryCatchFinallyTest.java @@ -7,44 +7,26 @@ package org.jd.core.v1; -import junit.framework.TestCase; import org.jd.core.v1.api.loader.Loader; -import org.jd.core.v1.api.printer.Printer; import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ZipLoader; -import org.jd.core.v1.model.classfile.ClassFile; -import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; -import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; -import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; -import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; -import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; -import org.jd.core.v1.service.writer.WriteTokenProcessor; import org.junit.Test; import java.io.InputStream; import java.util.Collections; import java.util.Map; -public class JavaTryCatchFinallyTest extends TestCase { - protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); - protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); - protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); - protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); - //protected TestTokenizeJavaFragmentProcessor tokenizer = new TestTokenizeJavaFragmentProcessor(); - protected JavaFragmentToTokenProcessor tokenizer = new JavaFragmentToTokenProcessor(); - protected WriteTokenProcessor writer = new WriteTokenProcessor(); - +public class JavaTryCatchFinallyTest extends AbstractJdTest { @Test public void testJdk170TryWithResources() throws Exception { String internalClassName = "org/jd/core/test/TryWithResources"; InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-1.7.0.zip"); Loader loader = new ZipLoader(is); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - String source = decompile(loader, new PlainTextPrinter(), internalClassName, configuration); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName, configuration); // Check decompiled source code assertTrue(source.matches(PatternMaker.make(": 12 */", "try (FileInputStream input = new FileInputStream(path))"))); @@ -79,7 +61,7 @@ public void testJdk180TryWithResources() throws Exception { InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-1.8.0.zip"); Loader loader = new ZipLoader(is); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - String source = decompile(loader, new PlainTextPrinter(), internalClassName, configuration); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName, configuration); // Check decompiled source code assertTrue(source.matches(PatternMaker.make(": 12 */", "try (FileInputStream input = new FileInputStream(path))"))); @@ -114,7 +96,7 @@ public void testEclipseJavaCompiler321TryCatchFinally() throws Exception { InputStream is = this.getClass().getResourceAsStream("/zip/data-java-eclipse-java-compiler-3.2.1.zip"); Loader loader = new ZipLoader(is); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - String source = decompile(loader, new PlainTextPrinter(), internalClassName, configuration); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName, configuration); // Check decompiled source code assertTrue(source.indexOf("catch (RuntimeException runtimeexception)") != -1); @@ -146,7 +128,7 @@ public void testEclipseJavaCompiler370TryCatchFinally() throws Exception { InputStream is = this.getClass().getResourceAsStream("/zip/data-java-eclipse-java-compiler-3.7.0.zip"); Loader loader = new ZipLoader(is); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - String source = decompile(loader, new PlainTextPrinter(), internalClassName, configuration); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName, configuration); // Check decompiled source code assertTrue(source.indexOf("catch (RuntimeException runtimeException)") != -1); @@ -187,7 +169,7 @@ public void testEclipseJavaCompiler3130TryCatchFinally() throws Exception { InputStream is = this.getClass().getResourceAsStream("/zip/data-java-eclipse-java-compiler-3.13.0.zip"); Loader loader = new ZipLoader(is); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - String source = decompile(loader, new PlainTextPrinter(), internalClassName, configuration); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName, configuration); // Check decompiled source code assertTrue(source.indexOf("catch (RuntimeException runtimeException)") != -1); @@ -227,7 +209,7 @@ public void testJdk118TryCatchFinally() throws Exception { InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-1.1.8.zip"); Loader loader = new ZipLoader(is); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - String source = decompile(loader, new PlainTextPrinter(), internalClassName, configuration); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName, configuration); // Check decompiled source code assertTrue(source.indexOf("catch (RuntimeException runtimeexception)") != -1); @@ -267,7 +249,7 @@ public void testJdk131TryCatchFinally() throws Exception { InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-1.3.1.zip"); Loader loader = new ZipLoader(is); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - String source = decompile(loader, new PlainTextPrinter(), internalClassName, configuration); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName, configuration); // Check decompiled source code assertTrue(source.indexOf("catch (RuntimeException runtimeexception)") != -1); @@ -303,7 +285,7 @@ public void testJdk170TryCatchFinally() throws Exception { InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-1.7.0.zip"); Loader loader = new ZipLoader(is); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - String source = decompile(loader, new PlainTextPrinter(), internalClassName, configuration); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName, configuration); // Check decompiled source code assertTrue(source.indexOf("catch (RuntimeException runtimeexception)") != -1); @@ -339,39 +321,4 @@ public void testJdk170TryCatchFinally() throws Exception { // Recompile decompiled source code and check errors assertTrue(CompilerUtil.compile("1.7", new JavaSourceFileObject(internalClassName, source))); } - - protected String decompile(Loader loader, Printer printer, String internalTypeName) throws Exception { - return decompile(loader, printer, internalTypeName, Collections.emptyMap()); - } - - protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { - DecompileContext decompileContext = new DecompileContext(); - decompileContext.setLoader(loader); - decompileContext.setPrinter(printer); - decompileContext.setMainInternalTypeName(internalTypeName); - decompileContext.setConfiguration(configuration); - - ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); - decompileContext.setBody(classFile); - - converter.process(decompileContext); - fragmenter.process(decompileContext); - layouter.process(decompileContext); - tokenizer.process(decompileContext); - writer.process(decompileContext); - - String source = printer.toString(); - - printSource(source); - - assertTrue(source.indexOf("// Byte code:") == -1); - - return source; - } - - protected void printSource(String source) { - System.out.println("- - - - - - - - "); - System.out.println(source); - System.out.println("- - - - - - - - "); - } } diff --git a/src/test/java/org/jd/core/v1/LayoutFragmentProcessorTest.java b/src/test/java/org/jd/core/v1/LayoutFragmentProcessorTest.java index f3bd5e15..74e28e9e 100644 --- a/src/test/java/org/jd/core/v1/LayoutFragmentProcessorTest.java +++ b/src/test/java/org/jd/core/v1/LayoutFragmentProcessorTest.java @@ -7,18 +7,9 @@ package org.jd.core.v1; -import junit.framework.TestCase; import org.jd.core.v1.loader.ZipLoader; -import org.jd.core.v1.model.classfile.ClassFile; -import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; -import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; -import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; -import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; -import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; -import org.jd.core.v1.service.writer.WriteTokenProcessor; import org.jd.core.v1.services.tokenizer.javafragmenttotoken.TestTokenizeJavaFragmentProcessor; import org.junit.Assert; import org.junit.Test; @@ -27,14 +18,7 @@ import java.util.Collections; import java.util.Map; -public class LayoutFragmentProcessorTest extends TestCase { - protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); - protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); - protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); - protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); - //protected TestTokenizeJavaFragmentProcessor tokenizer = new TestTokenizeJavaFragmentProcessor(); - protected JavaFragmentToTokenProcessor tokenizer = new JavaFragmentToTokenProcessor(); - protected WriteTokenProcessor writer = new WriteTokenProcessor(); +public class LayoutFragmentProcessorTest extends AbstractJdTest { @Test public void testJdk118Basic() throws Exception { @@ -44,23 +28,7 @@ public void testJdk118Basic() throws Exception { PlainTextPrinter printer = new PlainTextPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - DecompileContext decompileContext = new DecompileContext(); - decompileContext.setMainInternalTypeName("org/jd/core/test/Basic"); - decompileContext.setLoader(loader); - decompileContext.setPrinter(printer); - decompileContext.setConfiguration(configuration); - - ClassFile classFile = deserializer.loadClassFile(loader, decompileContext.getMainInternalTypeName()); - decompileContext.setBody(classFile); - converter.process(decompileContext); - fragmenter.process(decompileContext); - layouter.process(decompileContext); - tokenizer.process(decompileContext); - writer.process(decompileContext); - - String source = printer.toString(); - - printSource(source); + String source = this.decompileSuccess(loader, printer, "org/jd/core/test/Basic", configuration); assertTrue(source.indexOf("/* 188: 188 */") != -1); } @@ -73,24 +41,7 @@ public void testJdk131TryCatchFinally() throws Exception { PlainTextPrinter printer = new PlainTextPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - DecompileContext decompileContext = new DecompileContext(); - decompileContext.setMainInternalTypeName("org/jd/core/test/TryCatchFinally"); - decompileContext.setLoader(loader); - decompileContext.setPrinter(printer); - decompileContext.setConfiguration(configuration); - - ClassFile classFile = deserializer.loadClassFile(loader, decompileContext.getMainInternalTypeName()); - decompileContext.setBody(classFile); - - converter.process(decompileContext); - fragmenter.process(decompileContext); - layouter.process(decompileContext); - tokenizer.process(decompileContext); - writer.process(decompileContext); - - String source = printer.toString(); - - printSource(source); + String source = this.decompileSuccess(loader, printer, "org/jd/core/test/TryCatchFinally", configuration); assertTrue(source.indexOf("/* 902: 902 */") != -1); } @@ -102,25 +53,7 @@ public void testTryCatchFinally() throws Exception { //PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); PlainTextPrinter printer = new PlainTextPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - - DecompileContext decompileContext = new DecompileContext(); - decompileContext.setMainInternalTypeName("org/jd/core/test/TryCatchFinally"); - decompileContext.setLoader(loader); - decompileContext.setPrinter(printer); - decompileContext.setConfiguration(configuration); - - ClassFile classFile = deserializer.loadClassFile(loader, decompileContext.getMainInternalTypeName()); - decompileContext.setBody(classFile); - - converter.process(decompileContext); - fragmenter.process(decompileContext); - layouter.process(decompileContext); - tokenizer.process(decompileContext); - writer.process(decompileContext); - - String source = printer.toString(); - - printSource(source); + String source = this.decompileSuccess(loader, printer, "org/jd/core/test/TryCatchFinally", configuration); assertTrue(source.indexOf("/* 902: 902 */") != -1); } @@ -133,23 +66,7 @@ public void testAnonymousClass() throws Exception { PlainTextPrinter printer = new PlainTextPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - DecompileContext decompileContext = new DecompileContext(); - decompileContext.setMainInternalTypeName("org/jd/core/test/AnonymousClass"); - decompileContext.setLoader(loader); - decompileContext.setPrinter(printer); - decompileContext.setConfiguration(configuration); - - ClassFile classFile = deserializer.loadClassFile(loader, decompileContext.getMainInternalTypeName()); - decompileContext.setBody(classFile); - converter.process(decompileContext); - fragmenter.process(decompileContext); - layouter.process(decompileContext); - tokenizer.process(decompileContext); - writer.process(decompileContext); - - String source = printer.toString(); - - printSource(source); + String source = this.decompileSuccess(loader, printer, "org/jd/core/test/AnonymousClass", configuration); assertTrue(source.indexOf("/* 111: 111 */") != -1); @@ -164,23 +81,7 @@ public void testOuterClass() throws Exception { PlainTextPrinter printer = new PlainTextPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - DecompileContext decompileContext = new DecompileContext(); - decompileContext.setMainInternalTypeName("org/jd/core/test/OuterClass"); - decompileContext.setLoader(loader); - decompileContext.setPrinter(printer); - decompileContext.setConfiguration(configuration); - - ClassFile classFile = deserializer.loadClassFile(loader, decompileContext.getMainInternalTypeName()); - decompileContext.setBody(classFile); - converter.process(decompileContext); - fragmenter.process(decompileContext); - layouter.process(decompileContext); - tokenizer.process(decompileContext); - writer.process(decompileContext); - - String source = printer.toString(); - - printSource(source); + String source = this.decompileSuccess(loader, printer, "org/jd/core/test/OuterClass", configuration); assertTrue(source.indexOf("/* 182: 182 */") != -1); } @@ -194,22 +95,7 @@ public void testEnumClass() throws Exception { TestTokenizeJavaFragmentProcessor tokenizer = new TestTokenizeJavaFragmentProcessor(); - DecompileContext decompileContext = new DecompileContext(); - decompileContext.setMainInternalTypeName("org/jd/core/test/Enum"); - decompileContext.setLoader(loader); - decompileContext.setPrinter(printer); - - ClassFile classFile = deserializer.loadClassFile(loader, decompileContext.getMainInternalTypeName()); - decompileContext.setBody(classFile); - converter.process(decompileContext); - fragmenter.process(decompileContext); - layouter.process(decompileContext); - tokenizer.process(decompileContext); - writer.process(decompileContext); - - String source = printer.toString(); - - printSource(source); + String source = this.decompileSuccess(loader, printer, "org/jd/core/test/Enum"); assertTrue(source.indexOf("NEPTUNE(1.024E26D, 2.4746E7D);") != -1); assertTrue(source.indexOf("public static final double G = 6.673E-11D;") != -1); @@ -222,26 +108,7 @@ public void testAnnotationQuality() throws Exception { //PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); PlainTextPrinter printer = new PlainTextPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - - TestTokenizeJavaFragmentProcessor tokenizer = new TestTokenizeJavaFragmentProcessor(); - - DecompileContext decompileContext = new DecompileContext(); - decompileContext.setMainInternalTypeName("org/jd/core/test/annotation/Quality"); - decompileContext.setLoader(loader); - decompileContext.setPrinter(printer); - decompileContext.setConfiguration(configuration); - - ClassFile classFile = deserializer.loadClassFile(loader, decompileContext.getMainInternalTypeName()); - decompileContext.setBody(classFile); - converter.process(decompileContext); - fragmenter.process(decompileContext); - layouter.process(decompileContext); - tokenizer.process(decompileContext); - writer.process(decompileContext); - - String source = printer.toString(); - - printSource(source); + String source = this.decompileSuccess(loader, printer, "org/jd/core/test/annotation/Quality", configuration); assertTrue(source.indexOf("/* 9: 0 */ }") != -1); } @@ -253,35 +120,10 @@ public void testJdk170Array() throws Exception { //PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); PlainTextPrinter printer = new PlainTextPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - - TestTokenizeJavaFragmentProcessor tokenizer = new TestTokenizeJavaFragmentProcessor(); - - DecompileContext decompileContext = new DecompileContext(); - decompileContext.setMainInternalTypeName("org/jd/core/test/Array"); - decompileContext.setLoader(loader); - decompileContext.setPrinter(printer); - decompileContext.setConfiguration(configuration); - - ClassFile classFile = deserializer.loadClassFile(loader, decompileContext.getMainInternalTypeName()); - decompileContext.setBody(classFile); - converter.process(decompileContext); - fragmenter.process(decompileContext); - layouter.process(decompileContext); - tokenizer.process(decompileContext); - writer.process(decompileContext); - - String source = printer.toString(); - - printSource(source); + String source = this.decompileSuccess(loader, printer, "org/jd/core/test/Array", configuration); Assert.assertTrue(source.matches(PatternMaker.make("/* 30: 30 */", "int[][] ia", "0, 1, 2"))); assertTrue(source.indexOf("/* 75: 75 */") != -1); } - - protected void printSource(String source) { - System.out.println("- - - - - - - - "); - System.out.println(source); - System.out.println("- - - - - - - - "); - } } From 837bf22d4cd14fb48968f513516b2e309e036564 Mon Sep 17 00:00:00 2001 From: Yushan Gao Date: Sat, 28 Nov 2020 09:07:44 +0800 Subject: [PATCH 23/28] refactor: apply AbstractJdTest to test case --- .../jd/core/v1/JarFileToJavaSourceTest.java | 9 +-- .../org/jd/core/v1/Java9InterfaceTest.java | 58 +-------------- .../org/jd/core/v1/JavaAnnotationTest.java | 63 ++-------------- .../jd/core/v1/JavaAnonymousClassTest.java | 59 +-------------- .../java/org/jd/core/v1/JavaAssertTest.java | 58 +-------------- .../java/org/jd/core/v1/JavaBasicTest.java | 72 +++---------------- .../java/org/jd/core/v1/JavaEnumTest.java | 60 ++-------------- .../java/org/jd/core/v1/JavaGenericTest.java | 56 +-------------- .../java/org/jd/core/v1/JavaIfElseTest.java | 57 +-------------- 9 files changed, 31 insertions(+), 461 deletions(-) diff --git a/src/test/java/org/jd/core/v1/JarFileToJavaSourceTest.java b/src/test/java/org/jd/core/v1/JarFileToJavaSourceTest.java index 598b4e8f..b4bc9a2c 100644 --- a/src/test/java/org/jd/core/v1/JarFileToJavaSourceTest.java +++ b/src/test/java/org/jd/core/v1/JarFileToJavaSourceTest.java @@ -29,14 +29,7 @@ import java.util.HashMap; import java.util.Map; -public class JarFileToJavaSourceTest extends TestCase { - protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); - protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); - protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); - protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); - //protected TestTokenizeJavaFragmentProcessor tokenizer = new TestTokenizeJavaFragmentProcessor(); - protected JavaFragmentToTokenProcessor tokenizer = new JavaFragmentToTokenProcessor(); - protected WriteTokenProcessor writer = new WriteTokenProcessor(); +public class JarFileToJavaSourceTest extends AbstractJdTest { @Test public void testCommonsCodec() throws Exception { diff --git a/src/test/java/org/jd/core/v1/Java9InterfaceTest.java b/src/test/java/org/jd/core/v1/Java9InterfaceTest.java index 7cd14d17..780b583f 100644 --- a/src/test/java/org/jd/core/v1/Java9InterfaceTest.java +++ b/src/test/java/org/jd/core/v1/Java9InterfaceTest.java @@ -7,43 +7,24 @@ package org.jd.core.v1; -import junit.framework.TestCase; import org.jd.core.v1.api.loader.Loader; -import org.jd.core.v1.api.printer.Printer; import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ZipLoader; -import org.jd.core.v1.model.classfile.ClassFile; -import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; -import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; -import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; -import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; -import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; -import org.jd.core.v1.service.writer.WriteTokenProcessor; import org.junit.Test; import java.io.InputStream; -import java.util.Collections; -import java.util.Map; -public class Java9InterfaceTest extends TestCase { - protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); - protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); - protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); - protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); - //protected TestTokenizeJavaFragmentProcessor tokenizer = new TestTokenizeJavaFragmentProcessor(); - protected JavaFragmentToTokenProcessor tokenizer = new JavaFragmentToTokenProcessor(); - protected WriteTokenProcessor writer = new WriteTokenProcessor(); +public class Java9InterfaceTest extends AbstractJdTest { @Test public void testJdk901InterfaceWithDefaultMethods() throws Exception { String internalClassName = "org/jd/core/test/InterfaceWithDefaultMethods"; InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-9.0.1.zip"); Loader loader = new ZipLoader(is); - String source = decompile(loader, new PlainTextPrinter(), internalClassName); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName); // Check decompiled source code assertTrue(source.matches(PatternMaker.make("public interface InterfaceWithDefaultMethods"))); @@ -71,39 +52,4 @@ public void testJdk901InterfaceWithDefaultMethods() throws Exception { } } } - - protected String decompile(Loader loader, Printer printer, String internalTypeName) throws Exception { - return decompile(loader, printer, internalTypeName, Collections.emptyMap()); - } - - protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { - DecompileContext decompileContext = new DecompileContext(); - decompileContext.setLoader(loader); - decompileContext.setPrinter(printer); - decompileContext.setMainInternalTypeName(internalTypeName); - decompileContext.setConfiguration(configuration); - - ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); - decompileContext.setBody(classFile); - - converter.process(decompileContext); - fragmenter.process(decompileContext); - layouter.process(decompileContext); - tokenizer.process(decompileContext); - writer.process(decompileContext); - - String source = printer.toString(); - - printSource(source); - - assertTrue(source.indexOf("// Byte code:") == -1); - - return source; - } - - protected void printSource(String source) { - System.out.println("- - - - - - - - "); - System.out.println(source); - System.out.println("- - - - - - - - "); - } } diff --git a/src/test/java/org/jd/core/v1/JavaAnnotationTest.java b/src/test/java/org/jd/core/v1/JavaAnnotationTest.java index 94a834ba..5fd109dc 100644 --- a/src/test/java/org/jd/core/v1/JavaAnnotationTest.java +++ b/src/test/java/org/jd/core/v1/JavaAnnotationTest.java @@ -7,43 +7,23 @@ package org.jd.core.v1; -import junit.framework.TestCase; import org.jd.core.v1.api.loader.Loader; -import org.jd.core.v1.api.printer.Printer; import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ZipLoader; -import org.jd.core.v1.model.classfile.ClassFile; -import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; -import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; -import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; -import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; -import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; -import org.jd.core.v1.service.writer.WriteTokenProcessor; import org.junit.Test; import java.io.InputStream; -import java.util.Collections; -import java.util.Map; - -public class JavaAnnotationTest extends TestCase { - protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); - protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); - protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); - protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); - //protected TestTokenizeJavaFragmentProcessor tokenizer = new TestTokenizeJavaFragmentProcessor(); - protected JavaFragmentToTokenProcessor tokenizer = new JavaFragmentToTokenProcessor(); - protected WriteTokenProcessor writer = new WriteTokenProcessor(); +public class JavaAnnotationTest extends AbstractJdTest { @Test public void testJdk170AnnotatedClass() throws Exception { String internalClassName = "org/jd/core/test/AnnotatedClass"; InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-1.7.0.zip"); Loader loader = new ZipLoader(is); - String source = decompile(loader, new PlainTextPrinter(), internalClassName); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName); // Check decompiled source code assertTrue(source.indexOf("@Quality(Quality.Level.HIGH)") != -1); @@ -76,7 +56,7 @@ public void testJdk170AnnotationAuthor() throws Exception { String internalClassName = "org/jd/core/test/annotation/Author"; InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-1.7.0.zip"); Loader loader = new ZipLoader(is); - String source = decompile(loader, new PlainTextPrinter(), internalClassName); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName); // Check decompiled source code assertTrue(source.matches(PatternMaker.make("/* 3: 0 */", "public @interface Author"))); @@ -96,7 +76,7 @@ public void testJdk170AnnotationValue() throws Exception { String internalClassName = "org/jd/core/test/annotation/Value"; InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-1.7.0.zip"); Loader loader = new ZipLoader(is); - String source = decompile(loader, new PlainTextPrinter(), internalClassName); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName); // Check decompiled source code assertTrue(source.matches(PatternMaker.make("/* 8: 0 */", "@Retention(RetentionPolicy.RUNTIME)"))); @@ -110,39 +90,4 @@ public void testJdk170AnnotationValue() throws Exception { // Recompile decompiled source code and check errors assertTrue(CompilerUtil.compile("1.7", new JavaSourceFileObject(internalClassName, source))); } - - protected String decompile(Loader loader, Printer printer, String internalTypeName) throws Exception { - return decompile(loader, printer, internalTypeName, Collections.emptyMap()); - } - - protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { - DecompileContext decompileContext = new DecompileContext(); - decompileContext.setLoader(loader); - decompileContext.setPrinter(printer); - decompileContext.setMainInternalTypeName(internalTypeName); - decompileContext.setConfiguration(configuration); - - ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); - decompileContext.setBody(classFile); - - converter.process(decompileContext); - fragmenter.process(decompileContext); - layouter.process(decompileContext); - tokenizer.process(decompileContext); - writer.process(decompileContext); - - String source = printer.toString(); - - printSource(source); - - assertTrue(source.indexOf("// Byte code:") == -1); - - return source; - } - - protected void printSource(String source) { - System.out.println("- - - - - - - - "); - System.out.println(source); - System.out.println("- - - - - - - - "); - } } diff --git a/src/test/java/org/jd/core/v1/JavaAnonymousClassTest.java b/src/test/java/org/jd/core/v1/JavaAnonymousClassTest.java index 4339780b..df3df21c 100644 --- a/src/test/java/org/jd/core/v1/JavaAnonymousClassTest.java +++ b/src/test/java/org/jd/core/v1/JavaAnonymousClassTest.java @@ -7,44 +7,26 @@ package org.jd.core.v1; -import junit.framework.TestCase; import org.jd.core.v1.api.loader.Loader; -import org.jd.core.v1.api.printer.Printer; import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ZipLoader; -import org.jd.core.v1.model.classfile.ClassFile; -import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; -import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; -import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; -import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; -import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; -import org.jd.core.v1.service.writer.WriteTokenProcessor; import org.junit.Test; import java.io.InputStream; import java.util.Collections; import java.util.Map; -public class JavaAnonymousClassTest extends TestCase { - protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); - protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); - protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); - protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); - //protected TestTokenizeJavaFragmentProcessor tokenizer = new TestTokenizeJavaFragmentProcessor(); - protected JavaFragmentToTokenProcessor tokenizer = new JavaFragmentToTokenProcessor(); - protected WriteTokenProcessor writer = new WriteTokenProcessor(); - +public class JavaAnonymousClassTest extends AbstractJdTest { @Test public void testJdk150AnonymousClass() throws Exception { String internalClassName = "org/jd/core/test/AnonymousClass"; InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-1.5.0.zip"); Loader loader = new ZipLoader(is); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - String source = decompile(loader, new PlainTextPrinter(), internalClassName, configuration); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName, configuration); // Check decompiled source code assertTrue(source.matches(PatternMaker.make(": 21 */", "Object object = new Object()"))); @@ -82,7 +64,7 @@ public void testJdk170AnonymousClass() throws Exception { InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-1.7.0.zip"); Loader loader = new ZipLoader(is); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - String source = decompile(loader, new PlainTextPrinter(), internalClassName, configuration); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName, configuration); // Check decompiled source code assertTrue(source.matches(PatternMaker.make(": 21 */", "Object obj = new Object()"))); @@ -118,39 +100,4 @@ public void testJdk170AnonymousClass() throws Exception { new JavaSourceFileObject("org/jd/core/test/annotation/Name", "package org.jd.core.test.annotation; public @interface Name {String value();}") )); } - - protected String decompile(Loader loader, Printer printer, String internalTypeName) throws Exception { - return decompile(loader, printer, internalTypeName, Collections.emptyMap()); - } - - protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { - DecompileContext decompileContext = new DecompileContext(); - decompileContext.setLoader(loader); - decompileContext.setPrinter(printer); - decompileContext.setMainInternalTypeName(internalTypeName); - decompileContext.setConfiguration(configuration); - - ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); - decompileContext.setBody(classFile); - - converter.process(decompileContext); - fragmenter.process(decompileContext); - layouter.process(decompileContext); - tokenizer.process(decompileContext); - writer.process(decompileContext); - - String source = printer.toString(); - - printSource(source); - - assertTrue(source.indexOf("// Byte code:") == -1); - - return source; - } - - protected void printSource(String source) { - System.out.println("- - - - - - - - "); - System.out.println(source); - System.out.println("- - - - - - - - "); - } } diff --git a/src/test/java/org/jd/core/v1/JavaAssertTest.java b/src/test/java/org/jd/core/v1/JavaAssertTest.java index 71ad617e..f6bca1a6 100644 --- a/src/test/java/org/jd/core/v1/JavaAssertTest.java +++ b/src/test/java/org/jd/core/v1/JavaAssertTest.java @@ -7,36 +7,19 @@ package org.jd.core.v1; -import junit.framework.TestCase; import org.jd.core.v1.api.loader.Loader; -import org.jd.core.v1.api.printer.Printer; import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ZipLoader; -import org.jd.core.v1.model.classfile.ClassFile; -import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; -import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; -import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; -import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; -import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; -import org.jd.core.v1.service.writer.WriteTokenProcessor; import org.junit.Test; import java.io.InputStream; import java.util.Collections; import java.util.Map; -public class JavaAssertTest extends TestCase { - protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); - protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); - protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); - protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); - //protected TestTokenizeJavaFragmentProcessor tokenizer = new TestTokenizeJavaFragmentProcessor(); - protected JavaFragmentToTokenProcessor tokenizer = new JavaFragmentToTokenProcessor(); - protected WriteTokenProcessor writer = new WriteTokenProcessor(); +public class JavaAssertTest extends AbstractJdTest { @Test public void testJdk170Assert() throws Exception { @@ -44,7 +27,7 @@ public void testJdk170Assert() throws Exception { InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-1.7.0.zip"); Loader loader = new ZipLoader(is); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - String source = decompile(loader, new PlainTextPrinter(), internalClassName, configuration); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName, configuration); // Check decompiled source code assertTrue(source.matches(PatternMaker.make("/* 16: 16 */", "assert false : \"false\";"))); @@ -65,7 +48,7 @@ public void testJdk150Assert() throws Exception { InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-1.5.0.zip"); Loader loader = new ZipLoader(is); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - String source = decompile(loader, new PlainTextPrinter(), internalClassName, configuration); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName, configuration); // Check decompiled source code assertTrue(source.matches(PatternMaker.make("/* 16: 16 */", "assert false : \"false\";"))); @@ -79,39 +62,4 @@ public void testJdk150Assert() throws Exception { // Recompile decompiled source code and check errors assertTrue(CompilerUtil.compile("1.5", new JavaSourceFileObject(internalClassName, source))); } - - protected String decompile(Loader loader, Printer printer, String internalTypeName) throws Exception { - return decompile(loader, printer, internalTypeName, Collections.emptyMap()); - } - - protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { - DecompileContext decompileContext = new DecompileContext(); - decompileContext.setLoader(loader); - decompileContext.setPrinter(printer); - decompileContext.setMainInternalTypeName(internalTypeName); - decompileContext.setConfiguration(configuration); - - ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); - decompileContext.setBody(classFile); - - converter.process(decompileContext); - fragmenter.process(decompileContext); - layouter.process(decompileContext); - tokenizer.process(decompileContext); - writer.process(decompileContext); - - String source = printer.toString(); - - printSource(source); - - assertTrue(source.indexOf("// Byte code:") == -1); - - return source; - } - - protected void printSource(String source) { - System.out.println("- - - - - - - - "); - System.out.println(source); - System.out.println("- - - - - - - - "); - } } diff --git a/src/test/java/org/jd/core/v1/JavaBasicTest.java b/src/test/java/org/jd/core/v1/JavaBasicTest.java index b39d2dba..757db51b 100644 --- a/src/test/java/org/jd/core/v1/JavaBasicTest.java +++ b/src/test/java/org/jd/core/v1/JavaBasicTest.java @@ -7,37 +7,20 @@ package org.jd.core.v1; -import junit.framework.TestCase; import org.jd.core.v1.api.loader.Loader; -import org.jd.core.v1.api.printer.Printer; import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ClassPathLoader; import org.jd.core.v1.loader.ZipLoader; -import org.jd.core.v1.model.classfile.ClassFile; -import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; -import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; -import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; -import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; -import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; -import org.jd.core.v1.service.writer.WriteTokenProcessor; import org.junit.Test; import java.io.InputStream; import java.util.Collections; import java.util.Map; -public class JavaBasicTest extends TestCase { - protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); - protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); - protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); - protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); - //protected TestTokenizeJavaFragmentProcessor tokenizer = new TestTokenizeJavaFragmentProcessor(); - protected JavaFragmentToTokenProcessor tokenizer = new JavaFragmentToTokenProcessor(); - protected WriteTokenProcessor writer = new WriteTokenProcessor(); +public class JavaBasicTest extends AbstractJdTest { @Test public void testJdk170Basic() throws Exception { @@ -45,7 +28,7 @@ public void testJdk170Basic() throws Exception { InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-1.7.0.zip"); Loader loader = new ZipLoader(is); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - String source = decompile(loader, new PlainTextPrinter(), internalClassName, configuration); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName, configuration); // Check decompiled source code assertTrue(source.indexOf("serialVersionUID = 9506606333927794L;") != -1); @@ -112,7 +95,7 @@ public void testJdk170NoDebugInfoBasic() throws Exception { String internalClassName = "org/jd/core/test/Basic"; InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-1.7.0-no-debug-info.zip"); Loader loader = new ZipLoader(is); - String source = decompile(loader, new PlainTextPrinter(), internalClassName); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName); // Check decompiled source code assertTrue(source.matches(PatternMaker.make("System.out.println(\"hello\");"))); @@ -144,7 +127,7 @@ public void testJdk170Constructors() throws Exception { String internalClassName = "org/jd/core/test/Constructors"; InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-1.7.0.zip"); Loader loader = new ZipLoader(is); - String source = decompile(loader, new PlainTextPrinter(), internalClassName); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName); // Check decompiled source code assertTrue(source.matches(PatternMaker.make(": 28 */", "this.short123 = 1;"))); @@ -165,7 +148,7 @@ public void testJdk170Interface() throws Exception { String internalClassName = "org/jd/core/test/Interface"; InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-1.7.0.zip"); Loader loader = new ZipLoader(is); - String source = decompile(loader, new PlainTextPrinter(), internalClassName); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName); // Check decompiled source code assertTrue(source.matches(PatternMaker.make("public interface Interface", "extends Serializable"))); @@ -180,7 +163,7 @@ public void testJdk118Basic() throws Exception { InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-1.1.8.zip"); Loader loader = new ZipLoader(is); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - String source = decompile(loader, new PlainTextPrinter(), internalClassName, configuration); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName, configuration); // Check decompiled source code assertTrue(source.matches(PatternMaker.make(": 43 */", "Class class3 = String.class, class2 = class3, class1 = class2;"))); @@ -200,7 +183,7 @@ public void testJdk142Basic() throws Exception { InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-1.4.2.zip"); Loader loader = new ZipLoader(is); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - String source = decompile(loader, new PlainTextPrinter(), internalClassName, configuration); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName, configuration); // Check decompiled source code assertTrue(source.matches(PatternMaker.make(": 18 */", "protected short short56 = 56;"))); @@ -223,7 +206,7 @@ public void testJdk901Basic() throws Exception { InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-9.0.1.zip"); Loader loader = new ZipLoader(is); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - String source = decompile(loader, new PlainTextPrinter(), internalClassName, configuration); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName, configuration); // Check decompiled source code assertTrue(source.matches(PatternMaker.make(": 18 */", "protected short short56 = 56;"))); @@ -246,7 +229,7 @@ public void testJdk1002Basic() throws Exception { InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-10.0.2.zip"); Loader loader = new ZipLoader(is); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - String source = decompile(loader, new PlainTextPrinter(), internalClassName, configuration); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName, configuration); // Check decompiled source code assertTrue(source.matches(PatternMaker.make(": 18 */", "protected short short56 = 56;"))); @@ -268,7 +251,7 @@ public void testJdk1002Basic() throws Exception { public void testAnnotationUtils() throws Exception { String internalClassName = "org/apache/commons/lang3/AnnotationUtils"; Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - String source = decompile(new ClassPathLoader(), new PlainTextPrinter(), internalClassName, configuration); + String source = decompileSuccess(new ClassPathLoader(), new PlainTextPrinter(), internalClassName, configuration); // Check decompiled source code assertTrue(source.indexOf("setDefaultFullDetail(true);") != -1); @@ -276,39 +259,4 @@ public void testAnnotationUtils() throws Exception { // Recompile decompiled source code and check errors assertTrue(CompilerUtil.compile("1.8", new JavaSourceFileObject(internalClassName, source))); } - - protected String decompile(Loader loader, Printer printer, String internalTypeName) throws Exception { - return decompile(loader, printer, internalTypeName, Collections.emptyMap()); - } - - protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { - DecompileContext decompileContext = new DecompileContext(); - decompileContext.setLoader(loader); - decompileContext.setPrinter(printer); - decompileContext.setMainInternalTypeName(internalTypeName); - decompileContext.setConfiguration(configuration); - - ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); - decompileContext.setBody(classFile); - - converter.process(decompileContext); - fragmenter.process(decompileContext); - layouter.process(decompileContext); - tokenizer.process(decompileContext); - writer.process(decompileContext); - - String source = printer.toString(); - - printSource(source); - - assertTrue(source.indexOf("// Byte code:") == -1); - - return source; - } - - protected void printSource(String source) { - System.out.println("- - - - - - - - "); - System.out.println(source); - System.out.println("- - - - - - - - "); - } } diff --git a/src/test/java/org/jd/core/v1/JavaEnumTest.java b/src/test/java/org/jd/core/v1/JavaEnumTest.java index bfec3688..36cbd0f1 100644 --- a/src/test/java/org/jd/core/v1/JavaEnumTest.java +++ b/src/test/java/org/jd/core/v1/JavaEnumTest.java @@ -7,36 +7,19 @@ package org.jd.core.v1; -import junit.framework.TestCase; import org.jd.core.v1.api.loader.Loader; -import org.jd.core.v1.api.printer.Printer; import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ZipLoader; -import org.jd.core.v1.model.classfile.ClassFile; -import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; -import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; -import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; -import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; -import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; -import org.jd.core.v1.service.writer.WriteTokenProcessor; import org.junit.Test; import java.io.InputStream; import java.util.Collections; import java.util.Map; -public class JavaEnumTest extends TestCase { - protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); - protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); - protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); - protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); - //protected TestTokenizeJavaFragmentProcessor tokenizer = new TestTokenizeJavaFragmentProcessor(); - protected JavaFragmentToTokenProcessor tokenizer = new JavaFragmentToTokenProcessor(); - protected WriteTokenProcessor writer = new WriteTokenProcessor(); +public class JavaEnumTest extends AbstractJdTest { @Test public void testJdk170Enum() throws Exception { @@ -44,7 +27,7 @@ public void testJdk170Enum() throws Exception { InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-1.7.0.zip"); Loader loader = new ZipLoader(is); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - String source = decompile(loader, new PlainTextPrinter(), internalClassName, configuration); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName, configuration); // Check decompiled source code assertTrue(source.matches(PatternMaker.make(": 5 */", "SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY;"))); @@ -74,7 +57,7 @@ public void testJdk901Enum() throws Exception { InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-9.0.1.zip"); Loader loader = new ZipLoader(is); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - String source = decompile(loader, new PlainTextPrinter(), internalClassName, configuration); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName, configuration); // Check decompiled source code assertTrue(source.matches(PatternMaker.make(": 5 */", "SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY;"))); @@ -104,7 +87,7 @@ public void testJdk1002Enum() throws Exception { InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-10.0.2.zip"); Loader loader = new ZipLoader(is); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - String source = decompile(loader, new PlainTextPrinter(), internalClassName, configuration); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName, configuration); // Check decompiled source code assertTrue(source.matches(PatternMaker.make(": 5 */", "SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY;"))); @@ -127,39 +110,4 @@ public void testJdk1002Enum() throws Exception { // Recompile decompiled source code and check errors assertTrue(CompilerUtil.compile("1.8", new JavaSourceFileObject(internalClassName, source))); } - - protected String decompile(Loader loader, Printer printer, String internalTypeName) throws Exception { - return decompile(loader, printer, internalTypeName, Collections.emptyMap()); - } - - protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { - DecompileContext decompileContext = new DecompileContext(); - decompileContext.setLoader(loader); - decompileContext.setPrinter(printer); - decompileContext.setMainInternalTypeName(internalTypeName); - decompileContext.setConfiguration(configuration); - - ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); - decompileContext.setBody(classFile); - - converter.process(decompileContext); - fragmenter.process(decompileContext); - layouter.process(decompileContext); - tokenizer.process(decompileContext); - writer.process(decompileContext); - - String source = printer.toString(); - - printSource(source); - - assertTrue(source.indexOf("// Byte code:") == -1); - - return source; - } - - protected void printSource(String source) { - System.out.println("- - - - - - - - "); - System.out.println(source); - System.out.println("- - - - - - - - "); - } } diff --git a/src/test/java/org/jd/core/v1/JavaGenericTest.java b/src/test/java/org/jd/core/v1/JavaGenericTest.java index d351855e..38025e93 100644 --- a/src/test/java/org/jd/core/v1/JavaGenericTest.java +++ b/src/test/java/org/jd/core/v1/JavaGenericTest.java @@ -7,36 +7,19 @@ package org.jd.core.v1; -import junit.framework.TestCase; import org.jd.core.v1.api.loader.Loader; -import org.jd.core.v1.api.printer.Printer; import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ZipLoader; -import org.jd.core.v1.model.classfile.ClassFile; -import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; -import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; -import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; -import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; -import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; -import org.jd.core.v1.service.writer.WriteTokenProcessor; import org.junit.Test; import java.io.InputStream; import java.util.Collections; import java.util.Map; -public class JavaGenericTest extends TestCase { - protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); - protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); - protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); - protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); - //protected TestTokenizeJavaFragmentProcessor tokenizer = new TestTokenizeJavaFragmentProcessor(); - protected JavaFragmentToTokenProcessor tokenizer = new JavaFragmentToTokenProcessor(); - protected WriteTokenProcessor writer = new WriteTokenProcessor(); +public class JavaGenericTest extends AbstractJdTest { @Test public void testJdk170GenericClass() throws Exception { @@ -44,7 +27,7 @@ public void testJdk170GenericClass() throws Exception { InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-1.7.0.zip"); Loader loader = new ZipLoader(is); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - String source = decompile(loader, new PlainTextPrinter(), internalClassName, configuration); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName, configuration); // Check decompiled source code assertTrue(source.indexOf("public class GenericClass, T7 extends Map, T8 extends Map, T9 extends T8>") != -1); @@ -72,39 +55,4 @@ public void testJdk170GenericClass() throws Exception { new JavaSourceFileObject("org/jd/core/test/AnnotatedClass", "package org.jd.core.test; public class AnnotatedClass {}") )); } - - protected String decompile(Loader loader, Printer printer, String internalTypeName) throws Exception { - return decompile(loader, printer, internalTypeName, Collections.emptyMap()); - } - - protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { - DecompileContext decompileContext = new DecompileContext(); - decompileContext.setLoader(loader); - decompileContext.setPrinter(printer); - decompileContext.setMainInternalTypeName(internalTypeName); - decompileContext.setConfiguration(configuration); - - ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); - decompileContext.setBody(classFile); - - converter.process(decompileContext); - fragmenter.process(decompileContext); - layouter.process(decompileContext); - tokenizer.process(decompileContext); - writer.process(decompileContext); - - String source = printer.toString(); - - printSource(source); - - assertTrue(source.indexOf("// Byte code:") == -1); - - return source; - } - - protected void printSource(String source) { - System.out.println("- - - - - - - - "); - System.out.println(source); - System.out.println("- - - - - - - - "); - } } diff --git a/src/test/java/org/jd/core/v1/JavaIfElseTest.java b/src/test/java/org/jd/core/v1/JavaIfElseTest.java index e6557056..9d25be55 100644 --- a/src/test/java/org/jd/core/v1/JavaIfElseTest.java +++ b/src/test/java/org/jd/core/v1/JavaIfElseTest.java @@ -7,44 +7,26 @@ package org.jd.core.v1; -import junit.framework.TestCase; import org.jd.core.v1.api.loader.Loader; -import org.jd.core.v1.api.printer.Printer; import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ZipLoader; -import org.jd.core.v1.model.classfile.ClassFile; -import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.regex.PatternMaker; -import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; -import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; -import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; -import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; -import org.jd.core.v1.service.writer.WriteTokenProcessor; import org.junit.Test; import java.io.InputStream; import java.util.Collections; import java.util.Map; -public class JavaIfElseTest extends TestCase { - protected ClassFileDeserializer deserializer = new ClassFileDeserializer(); - protected ClassFileToJavaSyntaxProcessor converter = new ClassFileToJavaSyntaxProcessor(); - protected JavaSyntaxToJavaFragmentProcessor fragmenter = new JavaSyntaxToJavaFragmentProcessor(); - protected LayoutFragmentProcessor layouter = new LayoutFragmentProcessor(); - //protected TestTokenizeJavaFragmentProcessor tokenizer = new TestTokenizeJavaFragmentProcessor(); - protected JavaFragmentToTokenProcessor tokenizer = new JavaFragmentToTokenProcessor(); - protected WriteTokenProcessor writer = new WriteTokenProcessor(); - +public class JavaIfElseTest extends AbstractJdTest { @Test public void testJdk170IfElse() throws Exception { String internalClassName = "org/jd/core/test/IfElse"; InputStream is = this.getClass().getResourceAsStream("/zip/data-java-jdk-1.7.0.zip"); Loader loader = new ZipLoader(is); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - String source = decompile(loader, new PlainTextPrinter(), internalClassName, configuration); + String source = decompileSuccess(loader, new PlainTextPrinter(), internalClassName, configuration); // Check decompiled source code assertTrue(source.matches(PatternMaker.make("/* 12: 12 */", "if (this == null)"))); @@ -79,39 +61,4 @@ public void testJdk170IfElse() throws Exception { // Recompile decompiled source code and check errors assertTrue(CompilerUtil.compile("1.7", new JavaSourceFileObject(internalClassName, source))); } - - protected String decompile(Loader loader, Printer printer, String internalTypeName) throws Exception { - return decompile(loader, printer, internalTypeName, Collections.emptyMap()); - } - - protected String decompile(Loader loader, Printer printer, String internalTypeName, Map configuration) throws Exception { - DecompileContext decompileContext = new DecompileContext(); - decompileContext.setLoader(loader); - decompileContext.setPrinter(printer); - decompileContext.setMainInternalTypeName(internalTypeName); - decompileContext.setConfiguration(configuration); - - ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); - decompileContext.setBody(classFile); - - converter.process(decompileContext); - fragmenter.process(decompileContext); - layouter.process(decompileContext); - tokenizer.process(decompileContext); - writer.process(decompileContext); - - String source = printer.toString(); - - printSource(source); - - assertTrue(source.indexOf("// Byte code:") == -1); - - return source; - } - - protected void printSource(String source) { - System.out.println("- - - - - - - - "); - System.out.println(source); - System.out.println("- - - - - - - - "); - } } From cc8d957c29215802dc366950a9ede204a387419f Mon Sep 17 00:00:00 2001 From: Yushan Gao Date: Sat, 28 Nov 2020 10:25:06 +0800 Subject: [PATCH 24/28] refactor: split body to real field --- .../v1/ClassFileToJavaSourceDecompiler.java | 2 +- .../v1/model/message/DecompileContext.java | 17 +++++++++++++++-- .../processor/ConvertClassFileProcessor.java | 4 ++-- .../UpdateJavaSyntaxTreeProcessor.java | 2 +- .../JavaSyntaxToJavaFragmentProcessor.java | 2 +- .../JavaFragmentToTokenProcessor.java | 2 +- .../v1/service/writer/WriteTokenProcessor.java | 2 +- .../java/org/jd/core/v1/AbstractJdTest.java | 2 +- .../jd/core/v1/AnnotationConverterTest.java | 2 +- .../jd/core/v1/ClassFileDeserializerTest.java | 2 +- .../org/jd/core/v1/ControlFlowGraphTest.java | 4 ++-- .../jd/core/v1/JarFileToJavaSourceTest.java | 2 +- .../jd/core/v1/JavaFragmentToTokenTest.java | 1 + .../jd/core/v1/JavaSyntaxToJavaSourceTest.java | 18 ++++++++++++------ .../org/jd/core/v1/SignatureParserTest.java | 4 ++-- .../java/org/jd/core/v1/WriteTokenTest.java | 6 ++++-- .../TestTokenizeJavaFragmentProcessor.java | 2 +- 17 files changed, 48 insertions(+), 26 deletions(-) diff --git a/src/main/java/org/jd/core/v1/ClassFileToJavaSourceDecompiler.java b/src/main/java/org/jd/core/v1/ClassFileToJavaSourceDecompiler.java index cc7c91c2..82f43485 100644 --- a/src/main/java/org/jd/core/v1/ClassFileToJavaSourceDecompiler.java +++ b/src/main/java/org/jd/core/v1/ClassFileToJavaSourceDecompiler.java @@ -53,7 +53,7 @@ public void decompile(Loader loader, Printer printer, String internalName, Map tokens; + + @Deprecated protected Object body; public DecompileContext() {} - public DecompileContext(Object body) { - this.body = body; + @Deprecated + public DecompileContext(DefaultList fragments) { + this.body = fragments; } @SuppressWarnings("unchecked") + @Deprecated public T getBody() { return (T)body; } + @Deprecated public void setBody(Object body) { this.body = body; } diff --git a/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/ConvertClassFileProcessor.java b/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/ConvertClassFileProcessor.java index 6a4284d4..9dfdd0a5 100644 --- a/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/ConvertClassFileProcessor.java +++ b/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/ConvertClassFileProcessor.java @@ -93,7 +93,7 @@ public void visit(TypeParameterWithTypeBounds parameter) { public void process(DecompileContext decompileContext) throws Exception { TypeMaker typeMaker = decompileContext.getTypeMaker(); - ClassFile classFile = decompileContext.getBody(); + ClassFile classFile = decompileContext.getClassFile(); AnnotationConverter annotationConverter = new AnnotationConverter(typeMaker); @@ -113,7 +113,7 @@ public void process(DecompileContext decompileContext) throws Exception { decompileContext.setMajorVersion(classFile.getMajorVersion()); decompileContext.setMinorVersion(classFile.getMinorVersion()); - decompileContext.setBody(new CompilationUnit(typeDeclaration)); + decompileContext.setCompilationUnit(new CompilationUnit(typeDeclaration)); } protected ClassFileInterfaceDeclaration convertInterfaceDeclaration(TypeMaker parser, AnnotationConverter converter, ClassFile classFile, ClassFileBodyDeclaration outerClassFileBodyDeclaration) { diff --git a/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/UpdateJavaSyntaxTreeProcessor.java b/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/UpdateJavaSyntaxTreeProcessor.java index 68aca767..91722470 100644 --- a/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/UpdateJavaSyntaxTreeProcessor.java +++ b/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/UpdateJavaSyntaxTreeProcessor.java @@ -24,7 +24,7 @@ public class UpdateJavaSyntaxTreeProcessor { public void process(DecompileContext decompileContext) throws Exception { TypeMaker typeMaker = decompileContext.getTypeMaker(); - CompilationUnit compilationUnit = decompileContext.getBody(); + CompilationUnit compilationUnit = decompileContext.getCompilationUnit(); new UpdateJavaSyntaxTreeStep0Visitor(typeMaker).visit(compilationUnit); new UpdateJavaSyntaxTreeStep1Visitor(typeMaker).visit(compilationUnit); diff --git a/src/main/java/org/jd/core/v1/service/fragmenter/javasyntaxtojavafragment/JavaSyntaxToJavaFragmentProcessor.java b/src/main/java/org/jd/core/v1/service/fragmenter/javasyntaxtojavafragment/JavaSyntaxToJavaFragmentProcessor.java index b816f7a8..f04497a1 100644 --- a/src/main/java/org/jd/core/v1/service/fragmenter/javasyntaxtojavafragment/JavaSyntaxToJavaFragmentProcessor.java +++ b/src/main/java/org/jd/core/v1/service/fragmenter/javasyntaxtojavafragment/JavaSyntaxToJavaFragmentProcessor.java @@ -26,7 +26,7 @@ public void process(DecompileContext decompileContext) throws Exception { Loader loader = decompileContext.getLoader(); String mainInternalTypeName = decompileContext.getMainInternalTypeName(); int majorVersion = decompileContext.getMajorVersion(); - CompilationUnit compilationUnit = decompileContext.getBody(); + CompilationUnit compilationUnit = decompileContext.getCompilationUnit(); SearchImportsVisitor importsVisitor = new SearchImportsVisitor(loader, mainInternalTypeName); importsVisitor.visit(compilationUnit); diff --git a/src/main/java/org/jd/core/v1/service/tokenizer/javafragmenttotoken/JavaFragmentToTokenProcessor.java b/src/main/java/org/jd/core/v1/service/tokenizer/javafragmenttotoken/JavaFragmentToTokenProcessor.java index 96d6177a..1c709c52 100644 --- a/src/main/java/org/jd/core/v1/service/tokenizer/javafragmenttotoken/JavaFragmentToTokenProcessor.java +++ b/src/main/java/org/jd/core/v1/service/tokenizer/javafragmenttotoken/JavaFragmentToTokenProcessor.java @@ -30,6 +30,6 @@ public void process(DecompileContext decompileContext) throws Exception { fragment.accept(visitor); } - decompileContext.setBody(visitor.getTokens()); + decompileContext.setTokens(visitor.getTokens()); } } diff --git a/src/main/java/org/jd/core/v1/service/writer/WriteTokenProcessor.java b/src/main/java/org/jd/core/v1/service/writer/WriteTokenProcessor.java index 78e94707..4d4db0f1 100644 --- a/src/main/java/org/jd/core/v1/service/writer/WriteTokenProcessor.java +++ b/src/main/java/org/jd/core/v1/service/writer/WriteTokenProcessor.java @@ -24,7 +24,7 @@ public class WriteTokenProcessor { public void process(DecompileContext decompileContext) throws Exception { Printer printer = decompileContext.getPrinter(); - List tokens = decompileContext.getBody(); + List tokens = decompileContext.getTokens(); PrintTokenVisitor visitor = new PrintTokenVisitor(); int maxLineNumber = decompileContext.getMaxLineNumber(); int majorVersion = decompileContext.getMajorVersion(); diff --git a/src/test/java/org/jd/core/v1/AbstractJdTest.java b/src/test/java/org/jd/core/v1/AbstractJdTest.java index 04cee441..80d7626e 100644 --- a/src/test/java/org/jd/core/v1/AbstractJdTest.java +++ b/src/test/java/org/jd/core/v1/AbstractJdTest.java @@ -31,7 +31,7 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa decompileContext.setConfiguration(configuration); ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); - decompileContext.setBody(classFile); + decompileContext.setClassFile(classFile); converter.process(decompileContext); fragmenter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/AnnotationConverterTest.java b/src/test/java/org/jd/core/v1/AnnotationConverterTest.java index a373245d..9f94566d 100644 --- a/src/test/java/org/jd/core/v1/AnnotationConverterTest.java +++ b/src/test/java/org/jd/core/v1/AnnotationConverterTest.java @@ -39,7 +39,7 @@ public void test() throws Exception { decompileContext.setLoader(loader); ClassFile classFile = deserializer.loadClassFile(loader, decompileContext.getMainInternalTypeName()); - decompileContext.setBody(classFile); + decompileContext.setClassFile(classFile); // Check class assertNotNull(classFile); diff --git a/src/test/java/org/jd/core/v1/ClassFileDeserializerTest.java b/src/test/java/org/jd/core/v1/ClassFileDeserializerTest.java index c3636a77..cc12f566 100644 --- a/src/test/java/org/jd/core/v1/ClassFileDeserializerTest.java +++ b/src/test/java/org/jd/core/v1/ClassFileDeserializerTest.java @@ -60,7 +60,7 @@ public void testAnnotatedClass() throws Exception { decompileContext.setLoader(loader); ClassFile classFile = deserializer.loadClassFile(loader, decompileContext.getMainInternalTypeName()); - decompileContext.setBody(classFile); + decompileContext.setClassFile(classFile); // Check class assertNotNull(classFile); diff --git a/src/test/java/org/jd/core/v1/ControlFlowGraphTest.java b/src/test/java/org/jd/core/v1/ControlFlowGraphTest.java index 6573ec66..845e5a82 100644 --- a/src/test/java/org/jd/core/v1/ControlFlowGraphTest.java +++ b/src/test/java/org/jd/core/v1/ControlFlowGraphTest.java @@ -2671,11 +2671,11 @@ protected Method searchMethod(Loader loader, TypeMaker typeMaker, String interna decompileContext.setTypeMaker(typeMaker); ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); - decompileContext.setBody(classFile); + decompileContext.setClassFile(classFile); converter.process(decompileContext); - CompilationUnit compilationUnit = decompileContext.getBody(); + CompilationUnit compilationUnit = decompileContext.getCompilationUnit(); assertNotNull(compilationUnit); diff --git a/src/test/java/org/jd/core/v1/JarFileToJavaSourceTest.java b/src/test/java/org/jd/core/v1/JarFileToJavaSourceTest.java index b4bc9a2c..8dbf1d14 100644 --- a/src/test/java/org/jd/core/v1/JarFileToJavaSourceTest.java +++ b/src/test/java/org/jd/core/v1/JarFileToJavaSourceTest.java @@ -163,7 +163,7 @@ protected void test(InputStream inputStream) throws Exception { try { // Decompile class ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); - decompileContext.setBody(classFile); + decompileContext.setClassFile(classFile); converter.process(decompileContext); fragmenter.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaFragmentToTokenTest.java b/src/test/java/org/jd/core/v1/JavaFragmentToTokenTest.java index 98f4d711..fa6ecd8e 100644 --- a/src/test/java/org/jd/core/v1/JavaFragmentToTokenTest.java +++ b/src/test/java/org/jd/core/v1/JavaFragmentToTokenTest.java @@ -939,6 +939,7 @@ public DecompileContext createMessageToTestIfReturn(int lineNumber1, int lineNum JavaFragmentFactory.addSpacerBetweenStatements(fragments); DecompileContext decompileContext = new DecompileContext(fragments); + decompileContext.setBody(fragments); decompileContext.setMaxLineNumber(Integer.valueOf(lineNumber2)); return decompileContext; diff --git a/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java b/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java index 2c9d5be4..cc43516a 100644 --- a/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java +++ b/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java @@ -140,7 +140,8 @@ public void testClassDeclaration() throws Exception { PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); Map configuration = Collections.singletonMap("realignLineNumbers", Boolean.TRUE); - DecompileContext decompileContext = new DecompileContext(compilationUnit); + DecompileContext decompileContext = new DecompileContext(); + decompileContext.setCompilationUnit(compilationUnit); decompileContext.setMainInternalTypeName("org/jd/core/v1/service/test/TokenWriterTest"); decompileContext.setLoader(new NopLoader()); @@ -181,7 +182,8 @@ public void testInterfaceDeclaration() throws Exception { ); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); - DecompileContext decompileContext = new DecompileContext(compilationUnit); + DecompileContext decompileContext = new DecompileContext(); + decompileContext.setCompilationUnit(compilationUnit); decompileContext.setMainInternalTypeName("org/jd/core/v1/service/test/InterfaceTest"); decompileContext.setLoader(new NopLoader()); @@ -231,7 +233,8 @@ public void testEnumDayDeclaration() throws Exception { ); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); - DecompileContext decompileContext = new DecompileContext(compilationUnit); + DecompileContext decompileContext = new DecompileContext(); + decompileContext.setCompilationUnit(compilationUnit); decompileContext.setMainInternalTypeName("org/jd/core/v1/service/test/Day"); decompileContext.setLoader(new NopLoader()); @@ -515,7 +518,8 @@ public void testEnumPlanetDeclaration() throws Exception { ); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); - DecompileContext decompileContext = new DecompileContext(compilationUnit); + DecompileContext decompileContext = new DecompileContext(); + decompileContext.setCompilationUnit(compilationUnit); decompileContext.setMainInternalTypeName("org/jd/core/v1/service/test/Planet"); decompileContext.setLoader(new NopLoader()); @@ -584,7 +588,8 @@ public void testSwitch() throws Exception { ); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); - DecompileContext decompileContext = new DecompileContext(compilationUnit); + DecompileContext decompileContext = new DecompileContext(); + decompileContext.setCompilationUnit(compilationUnit); decompileContext.setMainInternalTypeName("org/jd/core/v1/service/test/SwitchTest"); decompileContext.setLoader(new NopLoader()); @@ -640,7 +645,8 @@ public void testBridgeAndSyntheticAttributes() throws Exception { ); PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); - DecompileContext decompileContext = new DecompileContext(compilationUnit); + DecompileContext decompileContext = new DecompileContext(); + decompileContext.setCompilationUnit(compilationUnit); decompileContext.setMainInternalTypeName("org/jd/core/v1/service/test/SyntheticAttributeTest"); decompileContext.setLoader(new NopLoader()); diff --git a/src/test/java/org/jd/core/v1/SignatureParserTest.java b/src/test/java/org/jd/core/v1/SignatureParserTest.java index 39029a03..f53112c4 100644 --- a/src/test/java/org/jd/core/v1/SignatureParserTest.java +++ b/src/test/java/org/jd/core/v1/SignatureParserTest.java @@ -41,7 +41,7 @@ public void testAnnotatedClass() throws Exception { decompileContext.setLoader(loader); ClassFile classFile = deserializer.loadClassFile(loader, decompileContext.getMainInternalTypeName()); - decompileContext.setBody(classFile); + decompileContext.setClassFile(classFile); // Check type TypeMaker.TypeTypes typeTypes = typeMaker.parseClassFileSignature(classFile); @@ -158,7 +158,7 @@ public void testGenericClass() throws Exception { decompileContext.setLoader(loader); ClassFile classFile = deserializer.loadClassFile(loader, decompileContext.getMainInternalTypeName()); - decompileContext.setBody(classFile); + decompileContext.setClassFile(classFile); // Check type TypeMaker.TypeTypes typeTypes = typeMaker.parseClassFileSignature(classFile); diff --git a/src/test/java/org/jd/core/v1/WriteTokenTest.java b/src/test/java/org/jd/core/v1/WriteTokenTest.java index 5f3b085c..e2dc3478 100644 --- a/src/test/java/org/jd/core/v1/WriteTokenTest.java +++ b/src/test/java/org/jd/core/v1/WriteTokenTest.java @@ -198,7 +198,8 @@ public void writeClassDeclaration() throws Exception { PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); WriteTokenProcessor writer = new WriteTokenProcessor(); - DecompileContext decompileContext = new DecompileContext(tokens); + DecompileContext decompileContext = new DecompileContext(); + decompileContext.setTokens(tokens); decompileContext.setPrinter(printer); decompileContext.setMaxLineNumber(22); decompileContext.setMajorVersion(0); @@ -279,7 +280,8 @@ public void testComments() throws Exception { PlainTextMetaPrinter printer = new PlainTextMetaPrinter(); WriteTokenProcessor writer = new WriteTokenProcessor(); - DecompileContext decompileContext = new DecompileContext(tokens); + DecompileContext decompileContext = new DecompileContext(); + decompileContext.setTokens(tokens); decompileContext.setPrinter(printer); decompileContext.setMaxLineNumber(0); decompileContext.setMajorVersion(0); diff --git a/src/test/java/org/jd/core/v1/services/tokenizer/javafragmenttotoken/TestTokenizeJavaFragmentProcessor.java b/src/test/java/org/jd/core/v1/services/tokenizer/javafragmenttotoken/TestTokenizeJavaFragmentProcessor.java index cf61228c..f72d2251 100644 --- a/src/test/java/org/jd/core/v1/services/tokenizer/javafragmenttotoken/TestTokenizeJavaFragmentProcessor.java +++ b/src/test/java/org/jd/core/v1/services/tokenizer/javafragmenttotoken/TestTokenizeJavaFragmentProcessor.java @@ -24,6 +24,6 @@ public void process(DecompileContext decompileContext) throws Exception { fragment.accept(visitor); } - decompileContext.setBody(visitor.getTokens()); + decompileContext.setTokens(visitor.getTokens()); } } From 93586efdb6ec4e33c39d55e174562586c9c7c960 Mon Sep 17 00:00:00 2001 From: Yushan Gao Date: Sat, 28 Nov 2020 10:33:03 +0800 Subject: [PATCH 25/28] refactor: JavaFragment must be Fragment --- .../java/org/jd/core/v1/model/javafragment/JavaFragment.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/jd/core/v1/model/javafragment/JavaFragment.java b/src/main/java/org/jd/core/v1/model/javafragment/JavaFragment.java index 25be9c98..4a395f89 100644 --- a/src/main/java/org/jd/core/v1/model/javafragment/JavaFragment.java +++ b/src/main/java/org/jd/core/v1/model/javafragment/JavaFragment.java @@ -7,6 +7,8 @@ package org.jd.core.v1.model.javafragment; -public interface JavaFragment { +import org.jd.core.v1.model.fragment.Fragment; + +public interface JavaFragment extends Fragment { void accept(JavaFragmentVisitor visitor); } From a33952c489f5ef720ab8121864ed9037cbcacfa8 Mon Sep 17 00:00:00 2001 From: Yushan Gao Date: Sat, 28 Nov 2020 16:02:00 +0800 Subject: [PATCH 26/28] refactor: make process more readable --- .../v1/ClassFileToJavaSourceDecompiler.java | 5 +++-- .../ClassFileToJavaSyntaxProcessor.java | 17 ++++++++++------- .../processor/ConvertClassFileProcessor.java | 7 ++----- .../UpdateJavaSyntaxTreeProcessor.java | 5 +---- .../JavaSyntaxToJavaFragmentProcessor.java | 3 +-- .../java/org/jd/core/v1/AbstractJdTest.java | 5 +++-- .../org/jd/core/v1/ControlFlowGraphTest.java | 4 +--- .../org/jd/core/v1/JarFileToJavaSourceTest.java | 12 +++--------- .../jd/core/v1/JavaSyntaxToJavaSourceTest.java | 12 ++++++------ 9 files changed, 30 insertions(+), 40 deletions(-) diff --git a/src/main/java/org/jd/core/v1/ClassFileToJavaSourceDecompiler.java b/src/main/java/org/jd/core/v1/ClassFileToJavaSourceDecompiler.java index 82f43485..a9fa5a3a 100644 --- a/src/main/java/org/jd/core/v1/ClassFileToJavaSourceDecompiler.java +++ b/src/main/java/org/jd/core/v1/ClassFileToJavaSourceDecompiler.java @@ -11,6 +11,7 @@ import org.jd.core.v1.api.loader.Loader; import org.jd.core.v1.api.printer.Printer; import org.jd.core.v1.model.classfile.ClassFile; +import org.jd.core.v1.model.javasyntax.CompilationUnit; import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; @@ -55,8 +56,8 @@ protected void decompile(DecompileContext decompileContext) throws Exception { decompileContext.getMainInternalTypeName()); decompileContext.setClassFile(classFile); - this.converter.process(decompileContext); - this.fragmenter.process(decompileContext); + CompilationUnit compilationUnit = this.converter.process(decompileContext); + this.fragmenter.process(compilationUnit, decompileContext); this.layouter.process(decompileContext); this.tokenizer.process(decompileContext); this.writer.process(decompileContext); diff --git a/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/ClassFileToJavaSyntaxProcessor.java b/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/ClassFileToJavaSyntaxProcessor.java index 97492a70..63520d2c 100644 --- a/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/ClassFileToJavaSyntaxProcessor.java +++ b/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/ClassFileToJavaSyntaxProcessor.java @@ -8,6 +8,7 @@ package org.jd.core.v1.service.converter.classfiletojavasyntax; import org.jd.core.v1.api.loader.Loader; +import org.jd.core.v1.model.javasyntax.CompilationUnit; import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.service.converter.classfiletojavasyntax.processor.ConvertClassFileProcessor; import org.jd.core.v1.service.converter.classfiletojavasyntax.processor.UpdateJavaSyntaxTreeProcessor; @@ -27,15 +28,14 @@ public class ClassFileToJavaSyntaxProcessor { protected static final ConvertClassFileProcessor CONVERT_CLASS_FILE_PROCESSOR = new ConvertClassFileProcessor(); protected static final UpdateJavaSyntaxTreeProcessor UPDATE_JAVA_SYNTAX_TREE_PROCESSOR = new UpdateJavaSyntaxTreeProcessor(); - public void process(DecompileContext decompileContext) throws Exception { + public CompilationUnit process(DecompileContext decompileContext) throws Exception { Loader loader = decompileContext.getLoader(); Map configuration = decompileContext.getConfiguration(); + TypeMaker typeMaker = null; if (configuration == null) { - decompileContext.setTypeMaker(new TypeMaker(loader)); + typeMaker = new TypeMaker(loader); } else { - TypeMaker typeMaker = null; - try { typeMaker = (TypeMaker)configuration.get("typeMaker"); @@ -49,10 +49,13 @@ public void process(DecompileContext decompileContext) throws Exception { } } - decompileContext.setTypeMaker(typeMaker); } + decompileContext.setTypeMaker(typeMaker); + + CompilationUnit compilationUnit = CONVERT_CLASS_FILE_PROCESSOR.process(decompileContext.getClassFile(), typeMaker, decompileContext); + decompileContext.setCompilationUnit(compilationUnit); - CONVERT_CLASS_FILE_PROCESSOR.process(decompileContext); - UPDATE_JAVA_SYNTAX_TREE_PROCESSOR.process(decompileContext); + UPDATE_JAVA_SYNTAX_TREE_PROCESSOR.process(compilationUnit, typeMaker); + return compilationUnit; } } diff --git a/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/ConvertClassFileProcessor.java b/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/ConvertClassFileProcessor.java index 9dfdd0a5..2cb790d2 100644 --- a/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/ConvertClassFileProcessor.java +++ b/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/ConvertClassFileProcessor.java @@ -91,10 +91,7 @@ public void visit(TypeParameterWithTypeBounds parameter) { } }; - public void process(DecompileContext decompileContext) throws Exception { - TypeMaker typeMaker = decompileContext.getTypeMaker(); - ClassFile classFile = decompileContext.getClassFile(); - + public CompilationUnit process(ClassFile classFile, TypeMaker typeMaker, DecompileContext decompileContext) throws Exception { AnnotationConverter annotationConverter = new AnnotationConverter(typeMaker); TypeDeclaration typeDeclaration; @@ -113,7 +110,7 @@ public void process(DecompileContext decompileContext) throws Exception { decompileContext.setMajorVersion(classFile.getMajorVersion()); decompileContext.setMinorVersion(classFile.getMinorVersion()); - decompileContext.setCompilationUnit(new CompilationUnit(typeDeclaration)); + return new CompilationUnit(typeDeclaration); } protected ClassFileInterfaceDeclaration convertInterfaceDeclaration(TypeMaker parser, AnnotationConverter converter, ClassFile classFile, ClassFileBodyDeclaration outerClassFileBodyDeclaration) { diff --git a/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/UpdateJavaSyntaxTreeProcessor.java b/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/UpdateJavaSyntaxTreeProcessor.java index 91722470..d279bc06 100644 --- a/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/UpdateJavaSyntaxTreeProcessor.java +++ b/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/UpdateJavaSyntaxTreeProcessor.java @@ -22,10 +22,7 @@ */ public class UpdateJavaSyntaxTreeProcessor { - public void process(DecompileContext decompileContext) throws Exception { - TypeMaker typeMaker = decompileContext.getTypeMaker(); - CompilationUnit compilationUnit = decompileContext.getCompilationUnit(); - + public void process(CompilationUnit compilationUnit, TypeMaker typeMaker) throws Exception { new UpdateJavaSyntaxTreeStep0Visitor(typeMaker).visit(compilationUnit); new UpdateJavaSyntaxTreeStep1Visitor(typeMaker).visit(compilationUnit); new UpdateJavaSyntaxTreeStep2Visitor(typeMaker).visit(compilationUnit); diff --git a/src/main/java/org/jd/core/v1/service/fragmenter/javasyntaxtojavafragment/JavaSyntaxToJavaFragmentProcessor.java b/src/main/java/org/jd/core/v1/service/fragmenter/javasyntaxtojavafragment/JavaSyntaxToJavaFragmentProcessor.java index f04497a1..b542842f 100644 --- a/src/main/java/org/jd/core/v1/service/fragmenter/javasyntaxtojavafragment/JavaSyntaxToJavaFragmentProcessor.java +++ b/src/main/java/org/jd/core/v1/service/fragmenter/javasyntaxtojavafragment/JavaSyntaxToJavaFragmentProcessor.java @@ -22,11 +22,10 @@ */ public class JavaSyntaxToJavaFragmentProcessor { - public void process(DecompileContext decompileContext) throws Exception { + public void process(CompilationUnit compilationUnit, DecompileContext decompileContext) throws Exception { Loader loader = decompileContext.getLoader(); String mainInternalTypeName = decompileContext.getMainInternalTypeName(); int majorVersion = decompileContext.getMajorVersion(); - CompilationUnit compilationUnit = decompileContext.getCompilationUnit(); SearchImportsVisitor importsVisitor = new SearchImportsVisitor(loader, mainInternalTypeName); importsVisitor.visit(compilationUnit); diff --git a/src/test/java/org/jd/core/v1/AbstractJdTest.java b/src/test/java/org/jd/core/v1/AbstractJdTest.java index 80d7626e..326174c6 100644 --- a/src/test/java/org/jd/core/v1/AbstractJdTest.java +++ b/src/test/java/org/jd/core/v1/AbstractJdTest.java @@ -4,6 +4,7 @@ import org.jd.core.v1.api.loader.Loader; import org.jd.core.v1.api.printer.Printer; import org.jd.core.v1.model.classfile.ClassFile; +import org.jd.core.v1.model.javasyntax.CompilationUnit; import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; @@ -33,8 +34,8 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); decompileContext.setClassFile(classFile); - converter.process(decompileContext); - fragmenter.process(decompileContext); + CompilationUnit compilationUnit = converter.process(decompileContext); + fragmenter.process(compilationUnit, decompileContext); layouter.process(decompileContext); tokenizer.process(decompileContext); writer.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/ControlFlowGraphTest.java b/src/test/java/org/jd/core/v1/ControlFlowGraphTest.java index 845e5a82..53305a46 100644 --- a/src/test/java/org/jd/core/v1/ControlFlowGraphTest.java +++ b/src/test/java/org/jd/core/v1/ControlFlowGraphTest.java @@ -2673,9 +2673,7 @@ protected Method searchMethod(Loader loader, TypeMaker typeMaker, String interna ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); decompileContext.setClassFile(classFile); - converter.process(decompileContext); - - CompilationUnit compilationUnit = decompileContext.getCompilationUnit(); + CompilationUnit compilationUnit = converter.process(classFile, typeMaker, decompileContext); assertNotNull(compilationUnit); diff --git a/src/test/java/org/jd/core/v1/JarFileToJavaSourceTest.java b/src/test/java/org/jd/core/v1/JarFileToJavaSourceTest.java index 8dbf1d14..f0115144 100644 --- a/src/test/java/org/jd/core/v1/JarFileToJavaSourceTest.java +++ b/src/test/java/org/jd/core/v1/JarFileToJavaSourceTest.java @@ -7,19 +7,13 @@ package org.jd.core.v1; -import junit.framework.TestCase; import org.jd.core.v1.compiler.CompilerUtil; import org.jd.core.v1.compiler.JavaSourceFileObject; import org.jd.core.v1.loader.ZipLoader; import org.jd.core.v1.model.classfile.ClassFile; +import org.jd.core.v1.model.javasyntax.CompilationUnit; import org.jd.core.v1.model.message.DecompileContext; import org.jd.core.v1.printer.PlainTextPrinter; -import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; -import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; -import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; -import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; -import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; -import org.jd.core.v1.service.writer.WriteTokenProcessor; import org.jd.core.v1.util.DefaultList; import org.junit.Test; @@ -165,8 +159,8 @@ protected void test(InputStream inputStream) throws Exception { ClassFile classFile = deserializer.loadClassFile(loader, internalTypeName); decompileContext.setClassFile(classFile); - converter.process(decompileContext); - fragmenter.process(decompileContext); + CompilationUnit compilationUnit = converter.process(decompileContext); + fragmenter.process(compilationUnit, decompileContext); layouter.process(decompileContext); tokenizer.process(decompileContext); writer.process(decompileContext); diff --git a/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java b/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java index cc43516a..7400a219 100644 --- a/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java +++ b/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java @@ -151,7 +151,7 @@ public void testClassDeclaration() throws Exception { decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); - fragmenter.process(decompileContext); + fragmenter.process(compilationUnit, decompileContext); layouter.process(decompileContext); tokenizer.process(decompileContext); writer.process(decompileContext); @@ -192,7 +192,7 @@ public void testInterfaceDeclaration() throws Exception { decompileContext.setMajorVersion(49); decompileContext.setMinorVersion(0); - fragmenter.process(decompileContext); + fragmenter.process(compilationUnit, decompileContext); layouter.process(decompileContext); tokenizer.process(decompileContext); writer.process(decompileContext); @@ -243,7 +243,7 @@ public void testEnumDayDeclaration() throws Exception { decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); - fragmenter.process(decompileContext); + fragmenter.process(compilationUnit, decompileContext); layouter.process(decompileContext); tokenizer.process(decompileContext); writer.process(decompileContext); @@ -528,7 +528,7 @@ public void testEnumPlanetDeclaration() throws Exception { decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); - fragmenter.process(decompileContext); + fragmenter.process(compilationUnit, decompileContext); layouter.process(decompileContext); //tokenizer.process(message); new JavaFragmentToTokenProcessor().process(decompileContext); @@ -598,7 +598,7 @@ public void testSwitch() throws Exception { decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); - fragmenter.process(decompileContext); + fragmenter.process(compilationUnit, decompileContext); layouter.process(decompileContext); tokenizer.process(decompileContext); writer.process(decompileContext); @@ -655,7 +655,7 @@ public void testBridgeAndSyntheticAttributes() throws Exception { decompileContext.setMajorVersion(0); decompileContext.setMinorVersion(0); - fragmenter.process(decompileContext); + fragmenter.process(compilationUnit, decompileContext); layouter.process(decompileContext); tokenizer.process(decompileContext); writer.process(decompileContext); From 744e1b3d862ae17d47bf9080bd382269d77965ea Mon Sep 17 00:00:00 2001 From: Yushan Gao Date: Sat, 28 Nov 2020 16:13:49 +0800 Subject: [PATCH 27/28] refactor: more readable --- .../v1/ClassFileToJavaSourceDecompiler.java | 5 +++- .../JavaFragmentToTokenProcessor.java | 8 +++--- .../java/org/jd/core/v1/AbstractJdTest.java | 5 +++- .../jd/core/v1/JarFileToJavaSourceTest.java | 4 ++- .../core/v1/JavaSyntaxToJavaSourceTest.java | 27 ++++++++++++++----- 5 files changed, 35 insertions(+), 14 deletions(-) diff --git a/src/main/java/org/jd/core/v1/ClassFileToJavaSourceDecompiler.java b/src/main/java/org/jd/core/v1/ClassFileToJavaSourceDecompiler.java index a9fa5a3a..1717a4a2 100644 --- a/src/main/java/org/jd/core/v1/ClassFileToJavaSourceDecompiler.java +++ b/src/main/java/org/jd/core/v1/ClassFileToJavaSourceDecompiler.java @@ -13,12 +13,14 @@ import org.jd.core.v1.model.classfile.ClassFile; import org.jd.core.v1.model.javasyntax.CompilationUnit; import org.jd.core.v1.model.message.DecompileContext; +import org.jd.core.v1.model.token.Token; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; import org.jd.core.v1.service.writer.WriteTokenProcessor; +import org.jd.core.v1.util.DefaultList; import java.util.Map; @@ -59,7 +61,8 @@ protected void decompile(DecompileContext decompileContext) throws Exception { CompilationUnit compilationUnit = this.converter.process(decompileContext); this.fragmenter.process(compilationUnit, decompileContext); this.layouter.process(decompileContext); - this.tokenizer.process(decompileContext); + DefaultList tokens = this.tokenizer.process(decompileContext.getBody()); + decompileContext.setTokens(tokens); this.writer.process(decompileContext); } } diff --git a/src/main/java/org/jd/core/v1/service/tokenizer/javafragmenttotoken/JavaFragmentToTokenProcessor.java b/src/main/java/org/jd/core/v1/service/tokenizer/javafragmenttotoken/JavaFragmentToTokenProcessor.java index 1c709c52..f0173007 100644 --- a/src/main/java/org/jd/core/v1/service/tokenizer/javafragmenttotoken/JavaFragmentToTokenProcessor.java +++ b/src/main/java/org/jd/core/v1/service/tokenizer/javafragmenttotoken/JavaFragmentToTokenProcessor.java @@ -8,8 +8,9 @@ package org.jd.core.v1.service.tokenizer.javafragmenttotoken; import org.jd.core.v1.model.javafragment.JavaFragment; -import org.jd.core.v1.model.message.DecompileContext; +import org.jd.core.v1.model.token.Token; import org.jd.core.v1.service.tokenizer.javafragmenttotoken.visitor.TokenizeJavaFragmentVisitor; +import org.jd.core.v1.util.DefaultList; import java.util.List; @@ -21,8 +22,7 @@ */ public class JavaFragmentToTokenProcessor { - public void process(DecompileContext decompileContext) throws Exception { - List fragments = decompileContext.getBody(); + public DefaultList process(List fragments) throws Exception { TokenizeJavaFragmentVisitor visitor = new TokenizeJavaFragmentVisitor(fragments.size() * 3); // Create tokens @@ -30,6 +30,6 @@ public void process(DecompileContext decompileContext) throws Exception { fragment.accept(visitor); } - decompileContext.setTokens(visitor.getTokens()); + return visitor.getTokens(); } } diff --git a/src/test/java/org/jd/core/v1/AbstractJdTest.java b/src/test/java/org/jd/core/v1/AbstractJdTest.java index 326174c6..21c6a227 100644 --- a/src/test/java/org/jd/core/v1/AbstractJdTest.java +++ b/src/test/java/org/jd/core/v1/AbstractJdTest.java @@ -6,12 +6,14 @@ import org.jd.core.v1.model.classfile.ClassFile; import org.jd.core.v1.model.javasyntax.CompilationUnit; import org.jd.core.v1.model.message.DecompileContext; +import org.jd.core.v1.model.token.Token; import org.jd.core.v1.service.converter.classfiletojavasyntax.ClassFileToJavaSyntaxProcessor; import org.jd.core.v1.service.deserializer.classfile.ClassFileDeserializer; import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; import org.jd.core.v1.service.writer.WriteTokenProcessor; +import org.jd.core.v1.util.DefaultList; import java.util.Collections; import java.util.Map; @@ -37,7 +39,8 @@ protected String decompile(Loader loader, Printer printer, String internalTypeNa CompilationUnit compilationUnit = converter.process(decompileContext); fragmenter.process(compilationUnit, decompileContext); layouter.process(decompileContext); - tokenizer.process(decompileContext); + DefaultList tokens = tokenizer.process(decompileContext.getBody()); + decompileContext.setTokens(tokens); writer.process(decompileContext); String source = printer.toString(); diff --git a/src/test/java/org/jd/core/v1/JarFileToJavaSourceTest.java b/src/test/java/org/jd/core/v1/JarFileToJavaSourceTest.java index f0115144..e3ff0a8e 100644 --- a/src/test/java/org/jd/core/v1/JarFileToJavaSourceTest.java +++ b/src/test/java/org/jd/core/v1/JarFileToJavaSourceTest.java @@ -13,6 +13,7 @@ import org.jd.core.v1.model.classfile.ClassFile; import org.jd.core.v1.model.javasyntax.CompilationUnit; import org.jd.core.v1.model.message.DecompileContext; +import org.jd.core.v1.model.token.Token; import org.jd.core.v1.printer.PlainTextPrinter; import org.jd.core.v1.util.DefaultList; import org.junit.Test; @@ -162,7 +163,8 @@ protected void test(InputStream inputStream) throws Exception { CompilationUnit compilationUnit = converter.process(decompileContext); fragmenter.process(compilationUnit, decompileContext); layouter.process(decompileContext); - tokenizer.process(decompileContext); + DefaultList tokens = tokenizer.process(decompileContext.getBody()); + decompileContext.setTokens(tokens); writer.process(decompileContext); } catch (AssertionError e) { String msg = (e.getMessage() == null) ? "" : e.getMessage(); diff --git a/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java b/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java index 7400a219..07a4eba0 100644 --- a/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java +++ b/src/test/java/org/jd/core/v1/JavaSyntaxToJavaSourceTest.java @@ -18,11 +18,13 @@ import org.jd.core.v1.model.javasyntax.type.Type; import org.jd.core.v1.model.javasyntax.type.Types; import org.jd.core.v1.model.message.DecompileContext; +import org.jd.core.v1.model.token.Token; import org.jd.core.v1.printer.PlainTextMetaPrinter; import org.jd.core.v1.service.fragmenter.javasyntaxtojavafragment.JavaSyntaxToJavaFragmentProcessor; import org.jd.core.v1.service.layouter.LayoutFragmentProcessor; import org.jd.core.v1.service.tokenizer.javafragmenttotoken.JavaFragmentToTokenProcessor; import org.jd.core.v1.service.writer.WriteTokenProcessor; +import org.jd.core.v1.util.DefaultList; import org.junit.Assert; import org.junit.Test; @@ -153,7 +155,8 @@ public void testClassDeclaration() throws Exception { fragmenter.process(compilationUnit, decompileContext); layouter.process(decompileContext); - tokenizer.process(decompileContext); + DefaultList tokens = tokenizer.process(decompileContext.getBody()); + decompileContext.setTokens(tokens); writer.process(decompileContext); String source = printer.toString(); @@ -194,7 +197,9 @@ public void testInterfaceDeclaration() throws Exception { fragmenter.process(compilationUnit, decompileContext); layouter.process(decompileContext); - tokenizer.process(decompileContext); + DefaultList tokens = tokenizer.process(decompileContext.getBody()); + decompileContext.setTokens(tokens); + writer.process(decompileContext); String source = printer.toString(); @@ -245,7 +250,9 @@ public void testEnumDayDeclaration() throws Exception { fragmenter.process(compilationUnit, decompileContext); layouter.process(decompileContext); - tokenizer.process(decompileContext); + DefaultList tokens = tokenizer.process(decompileContext.getBody()); + decompileContext.setTokens(tokens); + writer.process(decompileContext); String source = printer.toString(); @@ -529,9 +536,11 @@ public void testEnumPlanetDeclaration() throws Exception { decompileContext.setMinorVersion(0); fragmenter.process(compilationUnit, decompileContext); - layouter.process(decompileContext); + DefaultList tokens = tokenizer.process(decompileContext.getBody()); + decompileContext.setTokens(tokens); + //tokenizer.process(message); - new JavaFragmentToTokenProcessor().process(decompileContext); + tokens = new JavaFragmentToTokenProcessor().process(decompileContext.getBody()); writer.process(decompileContext); String source = printer.toString(); @@ -600,7 +609,9 @@ public void testSwitch() throws Exception { fragmenter.process(compilationUnit, decompileContext); layouter.process(decompileContext); - tokenizer.process(decompileContext); + DefaultList tokens = tokenizer.process(decompileContext.getBody()); + decompileContext.setTokens(tokens); + writer.process(decompileContext); String source = printer.toString(); @@ -657,7 +668,9 @@ public void testBridgeAndSyntheticAttributes() throws Exception { fragmenter.process(compilationUnit, decompileContext); layouter.process(decompileContext); - tokenizer.process(decompileContext); + DefaultList tokens = tokenizer.process(decompileContext.getBody()); + decompileContext.setTokens(tokens); + writer.process(decompileContext); String source = printer.toString(); From 73bf4338df36796b666fd483858d1103ccadfc75 Mon Sep 17 00:00:00 2001 From: Yushan Gao Date: Sat, 28 Nov 2020 22:19:10 +0800 Subject: [PATCH 28/28] chore: cache TypeMaker in Context --- .../ClassFileToJavaSyntaxProcessor.java | 23 +++---------------- 1 file changed, 3 insertions(+), 20 deletions(-) diff --git a/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/ClassFileToJavaSyntaxProcessor.java b/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/ClassFileToJavaSyntaxProcessor.java index 63520d2c..b9daaf9b 100644 --- a/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/ClassFileToJavaSyntaxProcessor.java +++ b/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/ClassFileToJavaSyntaxProcessor.java @@ -14,8 +14,6 @@ import org.jd.core.v1.service.converter.classfiletojavasyntax.processor.UpdateJavaSyntaxTreeProcessor; import org.jd.core.v1.service.converter.classfiletojavasyntax.util.TypeMaker; -import java.util.Map; - /** * Convert ClassFile model to Java syntax model.

* @@ -30,27 +28,12 @@ public class ClassFileToJavaSyntaxProcessor { public CompilationUnit process(DecompileContext decompileContext) throws Exception { Loader loader = decompileContext.getLoader(); - Map configuration = decompileContext.getConfiguration(); - TypeMaker typeMaker = null; - if (configuration == null) { + TypeMaker typeMaker = decompileContext.getTypeMaker(); + if (typeMaker == null) { typeMaker = new TypeMaker(loader); - } else { - try { - typeMaker = (TypeMaker)configuration.get("typeMaker"); - - if (typeMaker == null) { - // Store the heavy weight object 'typeMaker' in 'configuration' to reuse it - configuration.put("typeMaker", typeMaker=new TypeMaker(loader)); - } - } catch (Exception e) { - if (typeMaker == null) { - typeMaker = new TypeMaker(loader); - } - } - + decompileContext.setTypeMaker(typeMaker); } - decompileContext.setTypeMaker(typeMaker); CompilationUnit compilationUnit = CONVERT_CLASS_FILE_PROCESSOR.process(decompileContext.getClassFile(), typeMaker, decompileContext); decompileContext.setCompilationUnit(compilationUnit);