Skip to content

Commit e46f9dc

Browse files
author
emmanue1
committed
Refactoring
1 parent 49d8eb7 commit e46f9dc

File tree

5 files changed

+21
-17
lines changed

5 files changed

+21
-17
lines changed

src/main/java/org/jd/core/v1/model/classfile/ClassFile.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,9 @@ public int getAccessFlags() {
5252
public void setAccessFlags(int accessFlags) {
5353
this.accessFlags = accessFlags;
5454
}
55+
public boolean matchAccessFlags(int flags) {
56+
return (this.accessFlags & flags) != 0;
57+
}
5558

5659
public String getInternalTypeName() {
5760
return internalTypeName;

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

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
import java.util.List;
3333
import java.util.Map;
3434

35-
import static org.jd.core.v1.model.classfile.Constants.ACC_STATIC;
35+
import static org.jd.core.v1.model.classfile.Constants.*;
3636

3737
/**
3838
* Convert ClassFile model to Java syntax model.<br><br>
@@ -60,16 +60,15 @@ public void process(Message message) throws Exception {
6060

6161
AnnotationConverter annotationConverter = new AnnotationConverter(typeMaker);
6262

63-
int flags = classFile.getAccessFlags();
6463
TypeDeclaration typeDeclaration;
6564

66-
if ((flags & Constants.ACC_ENUM) != 0) {
65+
if (classFile.matchAccessFlags(ACC_ENUM)) {
6766
typeDeclaration = convertEnumDeclaration(typeMaker, annotationConverter, classFile, null);
68-
} else if ((flags & Constants.ACC_ANNOTATION) != 0) {
67+
} else if (classFile.matchAccessFlags(ACC_ANNOTATION)) {
6968
typeDeclaration = convertAnnotationDeclaration(typeMaker, annotationConverter, classFile, null);
70-
} else if ((flags & Constants.ACC_MODULE) != 0) {
69+
} else if (classFile.matchAccessFlags(ACC_MODULE)) {
7170
typeDeclaration = convertModuleDeclaration(classFile);
72-
} else if ((flags & Constants.ACC_INTERFACE) != 0) {
71+
} else if (classFile.matchAccessFlags(ACC_INTERFACE)) {
7372
typeDeclaration = convertInterfaceDeclaration(typeMaker, annotationConverter, classFile, null);
7473
} else {
7574
typeDeclaration = convertClassDeclaration(typeMaker, annotationConverter, classFile, null);
@@ -129,7 +128,7 @@ protected ClassFileBodyDeclaration convertBodyDeclaration(TypeMaker parser, Anno
129128
Map<String, TypeArgument> bindings;
130129
Map<String, BaseType> typeBounds;
131130

132-
if (((classFile.getAccessFlags() & ACC_STATIC) == 0) && (outerClassFileBodyDeclaration != null)) {
131+
if (!classFile.matchAccessFlags(ACC_STATIC) && (outerClassFileBodyDeclaration != null)) {
133132
bindings = outerClassFileBodyDeclaration.getBindings();
134133
typeBounds = outerClassFileBodyDeclaration.getTypeBounds();
135134
} else {
@@ -228,7 +227,7 @@ protected List<ClassFileConstructorOrMethodDeclaration> convertMethods(TypeMaker
228227
bodyDeclaration, classFile, method, annotationReferences, name, methodTypes.typeParameters,
229228
methodTypes.returnedType, methodTypes.parameterTypes, methodTypes.exceptionTypes, defaultAnnotationValue,
230229
bindings, typeBounds, firstLineNumber);
231-
if ((classFile.getAccessFlags() & Constants.ACC_INTERFACE) != 0) {
230+
if (classFile.matchAccessFlags(ACC_INTERFACE)) {
232231
if (methodDeclaration.getFlags() == Constants.ACC_PUBLIC) {
233232
// For interfaces, add 'default' access flag on public methods
234233
methodDeclaration.setFlags(Declaration.FLAG_PUBLIC|Declaration.FLAG_DEFAULT);
@@ -251,14 +250,13 @@ protected List<ClassFileTypeDeclaration> convertInnerTypes(TypeMaker parser, Ann
251250
DefaultList<ClassFileTypeDeclaration> list = new DefaultList<>(innerClassFiles.size());
252251

253252
for (ClassFile innerClassFile : innerClassFiles) {
254-
int flags = innerClassFile.getAccessFlags();
255253
ClassFileTypeDeclaration innerTypeDeclaration;
256254

257-
if ((flags & Constants.ACC_ENUM) != 0) {
255+
if (innerClassFile.matchAccessFlags(ACC_ENUM)) {
258256
innerTypeDeclaration = convertEnumDeclaration(parser, converter, innerClassFile, outerClassFileBodyDeclaration);
259-
} else if ((flags & Constants.ACC_ANNOTATION) != 0) {
257+
} else if (innerClassFile.matchAccessFlags(ACC_ANNOTATION)) {
260258
innerTypeDeclaration = convertAnnotationDeclaration(parser, converter, innerClassFile, outerClassFileBodyDeclaration);
261-
} else if ((flags & Constants.ACC_INTERFACE) != 0) {
259+
} else if (innerClassFile.matchAccessFlags(ACC_INTERFACE)) {
262260
innerTypeDeclaration = convertInterfaceDeclaration(parser, converter, innerClassFile, outerClassFileBodyDeclaration);
263261
} else {
264262
innerTypeDeclaration = convertClassDeclaration(parser, converter, innerClassFile, outerClassFileBodyDeclaration);

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626
import java.util.HashSet;
2727
import java.util.Map;
2828

29+
import static org.jd.core.v1.model.classfile.Constants.ACC_ENUM;
30+
import static org.jd.core.v1.model.classfile.Constants.ACC_STATIC;
2931
import static org.jd.core.v1.model.javasyntax.declaration.MethodDeclaration.*;
3032

3133
public class LocalVariableMaker {
@@ -103,7 +105,7 @@ public LocalVariableMaker(TypeMaker typeMaker, ClassFileConstructorOrMethodDecla
103105
}
104106

105107
if (constructor) {
106-
if ((classFile.getAccessFlags() & FLAG_ENUM) != 0) {
108+
if (classFile.matchAccessFlags(ACC_ENUM)) {
107109
if (localVariableSet.root(1) == null) {
108110
// Local variable missing
109111
localVariableSet.add(1, new ObjectLocalVariable(typeMaker, 1, 0, ObjectType.TYPE_STRING, "this$enum$name"));
@@ -112,7 +114,7 @@ public LocalVariableMaker(TypeMaker typeMaker, ClassFileConstructorOrMethodDecla
112114
// Local variable missing
113115
localVariableSet.add(2, new PrimitiveLocalVariable(2, 0, PrimitiveType.TYPE_INT, "this$enum$index"));
114116
}
115-
} else if ((classFile.getOuterClassFile() != null) && ((classFile.getAccessFlags() & FLAG_STATIC) == 0)) {
117+
} else if ((classFile.getOuterClassFile() != null) && !classFile.matchAccessFlags(ACC_STATIC)) {
116118
if (localVariableSet.root(1) == null) {
117119
// Local variable missing
118120
localVariableSet.add(1, new ObjectLocalVariable(typeMaker, 1, 0, typeMaker.makeFromInternalTypeName(classFile.getOuterClassFile().getInternalTypeName()), "this$0"));

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
import java.util.List;
2323

24+
import static org.jd.core.v1.model.classfile.Constants.ACC_INTERFACE;
2425
import static org.jd.core.v1.model.javasyntax.declaration.Declaration.*;
2526

2627
public class CreateInstructionsVisitor extends AbstractJavaSyntaxVisitor {
@@ -135,7 +136,7 @@ protected void createParametersVariablesAndStatements(ClassFileConstructorOrMeth
135136

136137
comd.setFormalParameters(localVariableMaker.getFormalParameters());
137138

138-
if ((classFile.getAccessFlags() & FLAG_INTERFACE) != 0) {
139+
if (classFile.matchAccessFlags(ACC_INTERFACE)) {
139140
comd.setFlags(comd.getFlags() & ~(FLAG_PUBLIC|FLAG_ABSTRACT));
140141
}
141142
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ public void visit(ConstructorDeclaration declaration) {
101101

102102
if (expression.isConstructorInvocationExpression()) {
103103
// 'this(...)'
104-
if ((outerClassFile != null) && ((classFile.getAccessFlags() & ACC_STATIC) == 0)) {
104+
if ((outerClassFile != null) && !classFile.matchAccessFlags(ACC_STATIC)) {
105105
// Inner non-static class --> First parameter is the synthetic outer reference
106106
outerType = (ObjectType) cfcd.getParameterTypes().getFirst();
107107
}
@@ -520,7 +520,7 @@ public void visit(SuperConstructorInvocationExpression expression) {
520520
// Remove outer 'this' reference parameter
521521
Type firstParameterType = parameters.getFirst().getType();
522522

523-
if (firstParameterType.isObjectType() && ((classFile.getAccessFlags() & ACC_STATIC) == 0) && (bodyDeclaration.getOuterType() != null)) {
523+
if (firstParameterType.isObjectType() && !classFile.matchAccessFlags(ACC_STATIC) && (bodyDeclaration.getOuterType() != null)) {
524524
TypeMaker.TypeTypes superTypeTypes = typeMaker.makeTypeTypes(classFile.getSuperTypeName());
525525

526526
if ((superTypeTypes != null) && superTypeTypes.thisType.isInnerObjectType()) {

0 commit comments

Comments
 (0)