Skip to content

Commit e216332

Browse files
author
emmanue1
committed
Fix syntax errors in decompiled sources
1 parent b8d7a06 commit e216332

29 files changed

+449
-257
lines changed

src/main/java/org/jd/core/v1/model/javasyntax/type/BaseTypeArgument.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,11 @@
99

1010
import org.jd.core.v1.util.DefaultList;
1111

12+
import java.util.Map;
13+
1214
@SuppressWarnings("unchecked")
1315
public interface BaseTypeArgument extends TypeArgumentVisitable {
14-
default boolean isTypeArgumentAssignableFrom(BaseTypeArgument typeArgument) {
16+
default boolean isTypeArgumentAssignableFrom(Map<String, BaseType> typeBounds, BaseTypeArgument typeArgument) {
1517
return false;
1618
}
1719

src/main/java/org/jd/core/v1/model/javasyntax/type/DiamondTypeArgument.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
package org.jd.core.v1.model.javasyntax.type;
99

10+
import java.util.Map;
11+
1012
public class DiamondTypeArgument implements TypeArgument {
1113
public static final DiamondTypeArgument DIAMOND = new DiamondTypeArgument();
1214

@@ -18,7 +20,7 @@ public void accept(TypeArgumentVisitor visitor) {
1820
}
1921

2022
@Override
21-
public boolean isTypeArgumentAssignableFrom(BaseTypeArgument typeArgument) {
23+
public boolean isTypeArgumentAssignableFrom(Map<String, BaseType> typeBounds, BaseTypeArgument typeArgument) {
2224
return true;
2325
}
2426
}

src/main/java/org/jd/core/v1/model/javasyntax/type/GenericType.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
package org.jd.core.v1.model.javasyntax.type;
99

10+
import java.util.Map;
11+
1012
public class GenericType implements Type {
1113
protected String name;
1214
protected int dimension;
@@ -76,7 +78,7 @@ public void accept(TypeArgumentVisitor visitor) {
7678
}
7779

7880
@Override
79-
public boolean isTypeArgumentAssignableFrom(BaseTypeArgument typeArgument) {
81+
public boolean isTypeArgumentAssignableFrom(Map<String, BaseType> typeBounds, BaseTypeArgument typeArgument) {
8082
Class typeArgumentClass = typeArgument.getClass();
8183

8284
if (typeArgumentClass == GenericType.class) {

src/main/java/org/jd/core/v1/model/javasyntax/type/ObjectType.java

Lines changed: 44 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
package org.jd.core.v1.model.javasyntax.type;
99

10+
import java.util.Map;
11+
1012
public class ObjectType implements Type {
1113
public static final ObjectType TYPE_BOOLEAN = new ObjectType("java/lang/Boolean", "java.lang.Boolean", "Boolean");
1214
public static final ObjectType TYPE_BYTE = new ObjectType("java/lang/Byte", "java.lang.Byte", "Byte");
@@ -203,25 +205,60 @@ public void accept(TypeArgumentVisitor visitor) {
203205
}
204206

205207
@Override
206-
public boolean isTypeArgumentAssignableFrom(BaseTypeArgument typeArgument) {
208+
public boolean isTypeArgumentAssignableFrom(Map<String, BaseType> typeBounds, BaseTypeArgument typeArgument) {
207209
Class typeArgumentClass = typeArgument.getClass();
208210

209-
if ((typeArgumentClass != ObjectType.class) && (typeArgumentClass != InnerObjectType.class)) {
210-
return false;
211+
if ((typeArgumentClass == ObjectType.class) || (typeArgumentClass == InnerObjectType.class)) {
212+
ObjectType ot = (ObjectType)typeArgument;
213+
214+
if ((dimension != ot.getDimension()) || !internalName.equals(ot.getInternalName())) {
215+
return false;
216+
}
217+
218+
if (ot.getTypeArguments() == null) {
219+
return (typeArguments == null);
220+
} else if (typeArguments == null) {
221+
return false;
222+
} else {
223+
return typeArguments.isTypeArgumentAssignableFrom(typeBounds, ot.getTypeArguments());
224+
}
211225
}
212226

213-
ObjectType ot = (ObjectType)typeArgument;
227+
if (typeArgumentClass == GenericType.class) {
228+
GenericType gt = (GenericType)typeArgument;
229+
BaseType bt = typeBounds.get(gt.getName());
230+
231+
if (bt != null) {
232+
for (Type type : bt) {
233+
if (dimension == type.getDimension()) {
234+
Class typeClass = type.getClass();
235+
236+
if ((typeClass == ObjectType.class) || (typeClass == InnerObjectType.class)) {
237+
ObjectType ot = (ObjectType) type;
238+
239+
if (internalName.equals(ot.getInternalName())) {
240+
return true;
241+
}
242+
}
243+
}
244+
}
245+
}
246+
}
247+
248+
return false;
249+
}
214250

215-
if ((dimension != ot.getDimension()) || !internalName.equals(ot.getInternalName())) {
251+
protected boolean isTypeArgumentAssignableFrom(Map<String, BaseType> typeBounds, ObjectType objectType) {
252+
if ((dimension != objectType.getDimension()) || !internalName.equals(objectType.getInternalName())) {
216253
return false;
217254
}
218255

219-
if (ot.getTypeArguments() == null) {
256+
if (objectType.getTypeArguments() == null) {
220257
return (typeArguments == null);
221258
} else if (typeArguments == null) {
222259
return false;
223260
} else {
224-
return typeArguments.isTypeArgumentAssignableFrom(ot.getTypeArguments());
261+
return typeArguments.isTypeArgumentAssignableFrom(typeBounds, objectType.getTypeArguments());
225262
}
226263
}
227264

src/main/java/org/jd/core/v1/model/javasyntax/type/PrimitiveType.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
package org.jd.core.v1.model.javasyntax.type;
99

10+
import java.util.Map;
11+
1012
public class PrimitiveType implements Type {
1113
public static final int FLAG_BOOLEAN = 1;
1214
public static final int FLAG_CHAR = 2;
@@ -159,7 +161,7 @@ public void accept(TypeArgumentVisitor visitor) {
159161
}
160162

161163
@Override
162-
public boolean isTypeArgumentAssignableFrom(BaseTypeArgument typeArgument) {
164+
public boolean isTypeArgumentAssignableFrom(Map<String, BaseType> typeBounds, BaseTypeArgument typeArgument) {
163165
return equals(typeArgument);
164166
}
165167

src/main/java/org/jd/core/v1/model/javasyntax/type/TypeArguments.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
import java.util.Collection;
1313
import java.util.Iterator;
14+
import java.util.Map;
1415

1516
public class TypeArguments extends DefaultList<TypeArgument> implements BaseTypeArgument {
1617
public TypeArguments() {}
@@ -29,7 +30,7 @@ public boolean isList() {
2930
}
3031

3132
@Override
32-
public boolean isTypeArgumentAssignableFrom(BaseTypeArgument typeArgument) {
33+
public boolean isTypeArgumentAssignableFrom(Map<String, BaseType> typeBounds, BaseTypeArgument typeArgument) {
3334
if (typeArgument.getClass() != TypeArguments.class) {
3435
return false;
3536
}
@@ -44,7 +45,7 @@ public boolean isTypeArgumentAssignableFrom(BaseTypeArgument typeArgument) {
4445
Iterator<TypeArgument> iterator2 = ata.iterator();
4546

4647
while (iterator1.hasNext()) {
47-
if (!iterator1.next().isTypeArgumentAssignableFrom(iterator2.next())) {
48+
if (!iterator1.next().isTypeArgumentAssignableFrom(typeBounds, iterator2.next())) {
4849
return false;
4950
}
5051
}

src/main/java/org/jd/core/v1/model/javasyntax/type/WildcardExtendsTypeArgument.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
package org.jd.core.v1.model.javasyntax.type;
99

10+
import java.util.Map;
11+
1012
public class WildcardExtendsTypeArgument implements TypeArgument {
1113
protected Type type;
1214

@@ -24,11 +26,11 @@ public void accept(TypeArgumentVisitor visitor) {
2426
}
2527

2628
@Override
27-
public boolean isTypeArgumentAssignableFrom(BaseTypeArgument typeArgument) {
29+
public boolean isTypeArgumentAssignableFrom(Map<String, BaseType> typeBounds, BaseTypeArgument typeArgument) {
2830
if (typeArgument.getClass() == WildcardExtendsTypeArgument.class) {
29-
return type.isTypeArgumentAssignableFrom(((WildcardExtendsTypeArgument)typeArgument).getType());
31+
return type.isTypeArgumentAssignableFrom(typeBounds, ((WildcardExtendsTypeArgument)typeArgument).getType());
3032
} else if (typeArgument instanceof Type) {
31-
return type.isTypeArgumentAssignableFrom(typeArgument);
33+
return type.isTypeArgumentAssignableFrom(typeBounds, typeArgument);
3234
}
3335

3436
return false;

src/main/java/org/jd/core/v1/model/javasyntax/type/WildcardSuperTypeArgument.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
package org.jd.core.v1.model.javasyntax.type;
99

10+
import java.util.Map;
11+
1012
public class WildcardSuperTypeArgument implements TypeArgument {
1113
protected Type type;
1214

@@ -24,11 +26,11 @@ public void accept(TypeArgumentVisitor visitor) {
2426
}
2527

2628
@Override
27-
public boolean isTypeArgumentAssignableFrom(BaseTypeArgument typeArgument) {
29+
public boolean isTypeArgumentAssignableFrom(Map<String, BaseType> typeBounds, BaseTypeArgument typeArgument) {
2830
if (typeArgument.getClass() == WildcardSuperTypeArgument.class) {
29-
return type.isTypeArgumentAssignableFrom(((WildcardSuperTypeArgument)typeArgument).getType());
31+
return type.isTypeArgumentAssignableFrom(typeBounds, ((WildcardSuperTypeArgument)typeArgument).getType());
3032
} else if (typeArgument instanceof Type) {
31-
return type.isTypeArgumentAssignableFrom(typeArgument);
33+
return type.isTypeArgumentAssignableFrom(typeBounds, typeArgument);
3234
}
3335

3436
return false;

src/main/java/org/jd/core/v1/model/javasyntax/type/WildcardTypeArgument.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
package org.jd.core.v1.model.javasyntax.type;
99

10+
import java.util.Map;
11+
1012
public class WildcardTypeArgument implements TypeArgument {
1113
public static final WildcardTypeArgument WILDCARD_TYPE_ARGUMENT = new WildcardTypeArgument();
1214

@@ -18,7 +20,7 @@ public void accept(TypeArgumentVisitor visitor) {
1820
}
1921

2022
@Override
21-
public boolean isTypeArgumentAssignableFrom(BaseTypeArgument typeArgument) {
23+
public boolean isTypeArgumentAssignableFrom(Map<String, BaseType> typeBounds, BaseTypeArgument typeArgument) {
2224
return true;
2325
}
2426

src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/model/javasyntax/declaration/ClassFileConstructorDeclaration.java

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,23 +16,31 @@
1616
import org.jd.core.v1.model.javasyntax.type.BaseType;
1717
import org.jd.core.v1.model.javasyntax.type.BaseTypeParameter;
1818
import org.jd.core.v1.model.javasyntax.type.Type;
19+
import org.jd.core.v1.model.javasyntax.type.TypeArgument;
20+
21+
import java.util.Map;
1922

2023
public class ClassFileConstructorDeclaration extends ConstructorDeclaration implements ClassFileConstructorOrMethodDeclaration {
2124
protected ClassFileBodyDeclaration bodyDeclaration;
2225
protected ClassFile classFile;
2326
protected Method method;
2427
protected BaseType parameterTypes;
28+
protected Map<String, TypeArgument> bindings;
29+
protected Map<String, BaseType> typeBounds;
2530
protected int firstLineNumber;
2631

2732
public ClassFileConstructorDeclaration(
2833
ClassFileBodyDeclaration bodyDeclaration, ClassFile classFile, Method method, BaseAnnotationReference annotationReferences,
29-
BaseTypeParameter typeParameters, BaseType parameterTypes, BaseType exceptions, int firstLineNumber) {
34+
BaseTypeParameter typeParameters, BaseType parameterTypes, BaseType exceptions, Map<String, TypeArgument> bindings,
35+
Map<String, BaseType> typeBounds, int firstLineNumber) {
3036
super(annotationReferences, method.getAccessFlags(), typeParameters, null, exceptions, method.getDescriptor(), null);
3137
this.bodyDeclaration = bodyDeclaration;
3238
this.classFile = classFile;
33-
this.firstLineNumber = firstLineNumber;
34-
this.parameterTypes = parameterTypes;
3539
this.method = method;
40+
this.parameterTypes = parameterTypes;
41+
this.bindings = bindings;
42+
this.typeBounds = typeBounds;
43+
this.firstLineNumber = firstLineNumber;
3644
}
3745

3846
@Override
@@ -75,6 +83,16 @@ public Type getReturnedType() {
7583
return null;
7684
}
7785

86+
@Override
87+
public Map<String, TypeArgument> getBindings() {
88+
return bindings;
89+
}
90+
91+
@Override
92+
public Map<String, BaseType> getTypeBounds() {
93+
return typeBounds;
94+
}
95+
7896
@Override
7997
public int getFirstLineNumber() {
8098
return firstLineNumber;

0 commit comments

Comments
 (0)