Skip to content

Commit afd3af5

Browse files
author
emmanue1
committed
Merge ObjectTypeMaker and SignatureParser
1 parent f6b0837 commit afd3af5

20 files changed

+735
-795
lines changed

src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/ClassFileToJavaSyntaxProcessor.java

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2008-2019 Emmanuel Dupuy.
2+
* Copyright (c) 2008, 2019 Emmanuel Dupuy.
33
* This project is distributed under the GPLv3 license.
44
* This is a Copyleft license that gives the user the right to use,
55
* copy and modify the code freely for non-commercial purposes.
@@ -12,8 +12,7 @@
1212
import org.jd.core.v1.model.processor.Processor;
1313
import org.jd.core.v1.service.converter.classfiletojavasyntax.processor.ConvertClassFileProcessor;
1414
import org.jd.core.v1.service.converter.classfiletojavasyntax.processor.UpdateJavaSyntaxTreeProcessor;
15-
import org.jd.core.v1.service.converter.classfiletojavasyntax.util.ObjectTypeMaker;
16-
import org.jd.core.v1.service.converter.classfiletojavasyntax.util.SignatureParser;
15+
import org.jd.core.v1.service.converter.classfiletojavasyntax.util.TypeMaker;
1716

1817
/**
1918
* Convert ClassFile model to Java syntax model.<br><br>
@@ -30,11 +29,9 @@ public class ClassFileToJavaSyntaxProcessor implements Processor {
3029
public void process(Message message) throws Exception {
3130
Loader loader = message.getHeader("loader");
3231

33-
ObjectTypeMaker maker = new ObjectTypeMaker(loader);
34-
SignatureParser parser = new SignatureParser(maker);
32+
TypeMaker typeMaker = new TypeMaker(loader);
3533

36-
message.setHeader("objectTypeMaker", maker);
37-
message.setHeader("signatureParser", parser);
34+
message.setHeader("typeMaker", typeMaker);
3835

3936
CONVERT_CLASS_FILE_PROCESSOR.process(message);
4037
UPDATE_JAVA_SYNTAX_TREE_PROCESSOR.process(message);

src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/model/localvariable/ObjectLocalVariable.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,29 +9,29 @@
99

1010
import org.jd.core.v1.model.javasyntax.type.ObjectType;
1111
import org.jd.core.v1.model.javasyntax.type.Type;
12-
import org.jd.core.v1.service.converter.classfiletojavasyntax.util.ObjectTypeMaker;
12+
import org.jd.core.v1.service.converter.classfiletojavasyntax.util.TypeMaker;
1313

1414
import static org.jd.core.v1.model.javasyntax.type.ObjectType.TYPE_OBJECT;
1515
import static org.jd.core.v1.model.javasyntax.type.ObjectType.TYPE_UNDEFINED_OBJECT;
1616

1717
public class ObjectLocalVariable extends AbstractLocalVariable {
18-
protected ObjectTypeMaker objectTypeMaker;
18+
protected TypeMaker typeMaker;
1919
protected Type type;
2020

21-
public ObjectLocalVariable(ObjectTypeMaker objectTypeMaker, int index, int offset, Type type, String name) {
21+
public ObjectLocalVariable(TypeMaker typeMaker, int index, int offset, Type type, String name) {
2222
super(index, offset, name);
23-
this.objectTypeMaker = objectTypeMaker;
23+
this.typeMaker = typeMaker;
2424
this.type = type;
2525
}
2626

27-
public ObjectLocalVariable(ObjectTypeMaker objectTypeMaker, int index, int offset, Type type, String name, boolean declared) {
28-
this(objectTypeMaker, index, offset, type, name);
27+
public ObjectLocalVariable(TypeMaker typeMaker, int index, int offset, Type type, String name, boolean declared) {
28+
this(typeMaker, index, offset, type, name);
2929
this.declared = declared;
3030
}
3131

32-
public ObjectLocalVariable(ObjectTypeMaker objectTypeMaker, int index, int offset, ObjectLocalVariable objectLocalVariable) {
32+
public ObjectLocalVariable(TypeMaker typeMaker, int index, int offset, ObjectLocalVariable objectLocalVariable) {
3333
super(index, offset, null);
34-
this.objectTypeMaker = objectTypeMaker;
34+
this.typeMaker = typeMaker;
3535
this.type = objectLocalVariable.type;
3636
}
3737

@@ -94,7 +94,7 @@ public boolean isAssignableFrom(Type type) {
9494

9595
if (type.getDimension() == 0) {
9696
if ((thisObjectType.getTypeArguments() == null) ? (otherObjectType.getTypeArguments() == null) : thisObjectType.getTypeArguments().equals(otherObjectType.getTypeArguments())) {
97-
return objectTypeMaker.isAssignable(thisObjectType, otherObjectType);
97+
return typeMaker.isAssignable(thisObjectType, otherObjectType);
9898
}
9999
}
100100
} else if (thisObjectType.getInternalName().equals(TYPE_OBJECT.getInternalName())) {
@@ -126,7 +126,7 @@ public void typeOnRight(Type type) {
126126
this.type = otherObjectType;
127127
fireChangeEvent();
128128
}
129-
} else if (objectTypeMaker.isAssignable(thisObjectType, otherObjectType)) {
129+
} else if (typeMaker.isAssignable(thisObjectType, otherObjectType)) {
130130
// Assignable types
131131
if ((thisObjectType.getTypeArguments() == null) && (otherObjectType.getTypeArguments() != null)) {
132132
// Keep type, update type arguments
@@ -163,7 +163,7 @@ public void typeOnLeft(Type type) {
163163
this.type = otherObjectType;
164164
fireChangeEvent();
165165
}
166-
} else if (objectTypeMaker.isAssignable(otherObjectType, thisObjectType)) {
166+
} else if (typeMaker.isAssignable(otherObjectType, thisObjectType)) {
167167
// Assignable types
168168
if ((thisObjectType.getTypeArguments() == null) && (otherObjectType.getTypeArguments() != null)) {
169169
// Keep type, update type arguments

src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/ConvertClassFileProcessor.java

Lines changed: 24 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2008-2019 Emmanuel Dupuy.
2+
* Copyright (c) 2008, 2019 Emmanuel Dupuy.
33
* This project is distributed under the GPLv3 license.
44
* This is a Copyleft license that gives the user the right to use,
55
* copy and modify the code freely for non-commercial purposes.
@@ -23,8 +23,7 @@
2323
import org.jd.core.v1.model.processor.Processor;
2424
import org.jd.core.v1.service.converter.classfiletojavasyntax.model.javasyntax.declaration.*;
2525
import org.jd.core.v1.service.converter.classfiletojavasyntax.util.AnnotationConverter;
26-
import org.jd.core.v1.service.converter.classfiletojavasyntax.util.ObjectTypeMaker;
27-
import org.jd.core.v1.service.converter.classfiletojavasyntax.util.SignatureParser;
26+
import org.jd.core.v1.service.converter.classfiletojavasyntax.util.TypeMaker;
2827
import org.jd.core.v1.util.DefaultList;
2928

3029
import java.util.List;
@@ -39,35 +38,34 @@ public class ConvertClassFileProcessor implements Processor {
3938

4039
@Override
4140
public void process(Message message) throws Exception {
42-
ObjectTypeMaker objectTypeMaker = message.getHeader("objectTypeMaker");
43-
SignatureParser signatureParser = message.getHeader("signatureParser");
41+
TypeMaker typeMaker = message.getHeader("typeMaker");
4442
ClassFile classFile = message.getBody();
4543

46-
AnnotationConverter annotationConverter = new AnnotationConverter(objectTypeMaker);
44+
AnnotationConverter annotationConverter = new AnnotationConverter(typeMaker);
4745

4846
int flags = classFile.getAccessFlags();
4947
TypeDeclaration typeDeclaration;
5048

5149
if ((flags & Constants.ACC_ENUM) != 0) {
52-
typeDeclaration = convertEnumDeclaration(signatureParser, annotationConverter, classFile, null);
50+
typeDeclaration = convertEnumDeclaration(typeMaker, annotationConverter, classFile, null);
5351
} else if ((flags & Constants.ACC_ANNOTATION) != 0) {
54-
typeDeclaration = convertAnnotationDeclaration(signatureParser, annotationConverter, classFile, null);
52+
typeDeclaration = convertAnnotationDeclaration(typeMaker, annotationConverter, classFile, null);
5553
} else if ((flags & Constants.ACC_MODULE) != 0) {
5654
typeDeclaration = convertModuleDeclaration(classFile);
5755
} else if ((flags & Constants.ACC_INTERFACE) != 0) {
58-
typeDeclaration = convertInterfaceDeclaration(signatureParser, annotationConverter, classFile, null);
56+
typeDeclaration = convertInterfaceDeclaration(typeMaker, annotationConverter, classFile, null);
5957
} else {
60-
typeDeclaration = convertClassDeclaration(signatureParser, annotationConverter, classFile, null);
58+
typeDeclaration = convertClassDeclaration(typeMaker, annotationConverter, classFile, null);
6159
}
6260

6361
message.setHeader("majorVersion", classFile.getMajorVersion());
6462
message.setHeader("minorVersion", classFile.getMinorVersion());
6563
message.setBody(new CompilationUnit(typeDeclaration));
6664
}
6765

68-
protected ClassFileInterfaceDeclaration convertInterfaceDeclaration(SignatureParser parser, AnnotationConverter converter, ClassFile classFile, ClassFileBodyDeclaration outerClassFileBodyDeclaration) {
66+
protected ClassFileInterfaceDeclaration convertInterfaceDeclaration(TypeMaker parser, AnnotationConverter converter, ClassFile classFile, ClassFileBodyDeclaration outerClassFileBodyDeclaration) {
6967
BaseAnnotationReference annotationReferences = convertAnnotationReferences(converter, classFile);
70-
SignatureParser.TypeTypes typeTypes = parser.parseClassFileSignature(classFile);
68+
TypeMaker.TypeTypes typeTypes = parser.parseClassFileSignature(classFile);
7169
ClassFileBodyDeclaration bodyDeclaration = convertBodyDeclaration(parser, converter, classFile, outerClassFileBodyDeclaration);
7270

7371
return new ClassFileInterfaceDeclaration(
@@ -76,9 +74,9 @@ protected ClassFileInterfaceDeclaration convertInterfaceDeclaration(SignaturePar
7674
typeTypes.typeParameters, typeTypes.interfaces, bodyDeclaration);
7775
}
7876

79-
protected ClassFileEnumDeclaration convertEnumDeclaration(SignatureParser parser, AnnotationConverter converter, ClassFile classFile, ClassFileBodyDeclaration outerClassFileBodyDeclaration) {
77+
protected ClassFileEnumDeclaration convertEnumDeclaration(TypeMaker parser, AnnotationConverter converter, ClassFile classFile, ClassFileBodyDeclaration outerClassFileBodyDeclaration) {
8078
BaseAnnotationReference annotationReferences = convertAnnotationReferences(converter, classFile);
81-
SignatureParser.TypeTypes typeTypes = parser.parseClassFileSignature(classFile);
79+
TypeMaker.TypeTypes typeTypes = parser.parseClassFileSignature(classFile);
8280
ClassFileBodyDeclaration bodyDeclaration = convertBodyDeclaration(parser, converter, classFile, outerClassFileBodyDeclaration);
8381

8482
return new ClassFileEnumDeclaration(
@@ -87,9 +85,9 @@ protected ClassFileEnumDeclaration convertEnumDeclaration(SignatureParser parser
8785
typeTypes.interfaces, bodyDeclaration);
8886
}
8987

90-
protected ClassFileAnnotationDeclaration convertAnnotationDeclaration(SignatureParser parser, AnnotationConverter converter, ClassFile classFile, ClassFileBodyDeclaration outerClassFileBodyDeclaration) {
88+
protected ClassFileAnnotationDeclaration convertAnnotationDeclaration(TypeMaker parser, AnnotationConverter converter, ClassFile classFile, ClassFileBodyDeclaration outerClassFileBodyDeclaration) {
9189
BaseAnnotationReference annotationReferences = convertAnnotationReferences(converter, classFile);
92-
SignatureParser.TypeTypes typeTypes = parser.parseClassFileSignature(classFile);
90+
TypeMaker.TypeTypes typeTypes = parser.parseClassFileSignature(classFile);
9391
ClassFileBodyDeclaration bodyDeclaration = convertBodyDeclaration(parser, converter, classFile, outerClassFileBodyDeclaration);
9492

9593
return new ClassFileAnnotationDeclaration(
@@ -98,9 +96,9 @@ protected ClassFileAnnotationDeclaration convertAnnotationDeclaration(SignatureP
9896
bodyDeclaration);
9997
}
10098

101-
protected ClassFileClassDeclaration convertClassDeclaration(SignatureParser parser, AnnotationConverter converter, ClassFile classFile, ClassFileBodyDeclaration outerClassFileBodyDeclaration) {
99+
protected ClassFileClassDeclaration convertClassDeclaration(TypeMaker parser, AnnotationConverter converter, ClassFile classFile, ClassFileBodyDeclaration outerClassFileBodyDeclaration) {
102100
BaseAnnotationReference annotationReferences = convertAnnotationReferences(converter, classFile);
103-
SignatureParser.TypeTypes typeTypes = parser.parseClassFileSignature(classFile);
101+
TypeMaker.TypeTypes typeTypes = parser.parseClassFileSignature(classFile);
104102
ClassFileBodyDeclaration bodyDeclaration = convertBodyDeclaration(parser, converter, classFile, outerClassFileBodyDeclaration);
105103

106104
return new ClassFileClassDeclaration(
@@ -110,7 +108,7 @@ protected ClassFileClassDeclaration convertClassDeclaration(SignatureParser pars
110108
typeTypes.interfaces, bodyDeclaration);
111109
}
112110

113-
protected ClassFileBodyDeclaration convertBodyDeclaration(SignatureParser parser, AnnotationConverter converter, ClassFile classFile, ClassFileBodyDeclaration outerClassFileBodyDeclaration) {
111+
protected ClassFileBodyDeclaration convertBodyDeclaration(TypeMaker parser, AnnotationConverter converter, ClassFile classFile, ClassFileBodyDeclaration outerClassFileBodyDeclaration) {
114112
ClassFileBodyDeclaration bodyDeclaration = new ClassFileBodyDeclaration(classFile.getInternalTypeName(), outerClassFileBodyDeclaration);
115113

116114
bodyDeclaration.setFieldDeclarations(convertFields(parser, converter, classFile));
@@ -120,7 +118,7 @@ protected ClassFileBodyDeclaration convertBodyDeclaration(SignatureParser parser
120118
return bodyDeclaration;
121119
}
122120

123-
protected List<ClassFileFieldDeclaration> convertFields(SignatureParser parser, AnnotationConverter converter, ClassFile classFile) {
121+
protected List<ClassFileFieldDeclaration> convertFields(TypeMaker parser, AnnotationConverter converter, ClassFile classFile) {
124122
Field[] fields = classFile.getFields();
125123

126124
if (fields == null) {
@@ -141,7 +139,7 @@ protected List<ClassFileFieldDeclaration> convertFields(SignatureParser parser,
141139
}
142140
}
143141

144-
protected List<ClassFileConstructorOrMethodDeclaration> convertMethods(SignatureParser parser, AnnotationConverter converter, ClassFileBodyDeclaration bodyDeclaration, ClassFile classFile) {
142+
protected List<ClassFileConstructorOrMethodDeclaration> convertMethods(TypeMaker parser, AnnotationConverter converter, ClassFileBodyDeclaration bodyDeclaration, ClassFile classFile) {
145143
Method[] methods = classFile.getMethods();
146144

147145
if (methods == null) {
@@ -170,18 +168,18 @@ protected List<ClassFileConstructorOrMethodDeclaration> convertMethods(Signature
170168
}
171169

172170
if ("<init>".equals(name)) {
173-
SignatureParser.MethodTypes methodTypes = parser.parseConstructorSignature(method);
171+
TypeMaker.MethodTypes methodTypes = parser.parseConstructorSignature(method);
174172
list.add(new ClassFileConstructorDeclaration(
175173
bodyDeclaration, classFile, method, annotationReferences, methodTypes.typeParameters,
176-
methodTypes.parameters, methodTypes.exceptions, firstLineNumber));
174+
methodTypes.parameterTypes, methodTypes.exceptions, firstLineNumber));
177175
} else if ("<clinit>".equals(name)) {
178176
list.add(new ClassFileStaticInitializerDeclaration(bodyDeclaration, classFile, method, firstLineNumber));
179177
} else {
180178
ClassFileMethodDeclaration methodDeclaration;
181-
SignatureParser.MethodTypes methodTypes = parser.parseMethodSignature(method);
179+
TypeMaker.MethodTypes methodTypes = parser.parseMethodSignature(method);
182180
list.add(methodDeclaration = new ClassFileMethodDeclaration(
183181
bodyDeclaration, classFile, method, annotationReferences, name, methodTypes.typeParameters,
184-
methodTypes.returned, methodTypes.parameters, methodTypes.exceptions, defaultAnnotationValue,
182+
methodTypes.returnedType, methodTypes.parameterTypes, methodTypes.exceptions, defaultAnnotationValue,
185183
firstLineNumber));
186184
if ((classFile.getAccessFlags() & Constants.ACC_INTERFACE) != 0) {
187185
if (methodDeclaration.getFlags() == Constants.ACC_PUBLIC) {
@@ -196,7 +194,7 @@ protected List<ClassFileConstructorOrMethodDeclaration> convertMethods(Signature
196194
}
197195
}
198196

199-
protected List<ClassFileMemberDeclaration> convertInnerTypes(SignatureParser parser, AnnotationConverter converter, ClassFile classFile, ClassFileBodyDeclaration outerClassFileBodyDeclaration) {
197+
protected List<ClassFileMemberDeclaration> convertInnerTypes(TypeMaker parser, AnnotationConverter converter, ClassFile classFile, ClassFileBodyDeclaration outerClassFileBodyDeclaration) {
200198
List<ClassFile> innerClassFiles = classFile.getInnerClassFiles();
201199

202200
if (innerClassFiles == null) {

src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/processor/UpdateJavaSyntaxTreeProcessor.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@
1010
import org.jd.core.v1.model.javasyntax.CompilationUnit;
1111
import org.jd.core.v1.model.message.Message;
1212
import org.jd.core.v1.model.processor.Processor;
13-
import org.jd.core.v1.service.converter.classfiletojavasyntax.util.ObjectTypeMaker;
14-
import org.jd.core.v1.service.converter.classfiletojavasyntax.util.SignatureParser;
13+
import org.jd.core.v1.service.converter.classfiletojavasyntax.util.TypeMaker;
1514
import org.jd.core.v1.service.converter.classfiletojavasyntax.visitor.UpdateJavaSyntaxTreeStep1Visitor;
1615
import org.jd.core.v1.service.converter.classfiletojavasyntax.visitor.UpdateJavaSyntaxTreeStep2Visitor;
1716

@@ -25,11 +24,10 @@ public class UpdateJavaSyntaxTreeProcessor implements Processor {
2524

2625
@Override
2726
public void process(Message message) throws Exception {
28-
ObjectTypeMaker maker = message.getHeader("objectTypeMaker");
29-
SignatureParser parser = message.getHeader("signatureParser");
27+
TypeMaker typeMaker = message.getHeader("typeMaker");
3028
CompilationUnit compilationUnit = message.getBody();
3129

32-
UpdateJavaSyntaxTreeStep1Visitor updateJavaSyntaxTreeStep1Visitor = new UpdateJavaSyntaxTreeStep1Visitor(maker, parser);
30+
UpdateJavaSyntaxTreeStep1Visitor updateJavaSyntaxTreeStep1Visitor = new UpdateJavaSyntaxTreeStep1Visitor(typeMaker);
3331
updateJavaSyntaxTreeStep1Visitor.visit(compilationUnit);
3432

3533
UpdateJavaSyntaxTreeStep2Visitor updateJavaSyntaxTreeStep2Visitor = new UpdateJavaSyntaxTreeStep2Visitor();

0 commit comments

Comments
 (0)