1
1
/*
2
2
* ProGuardCORE -- library to process Java bytecode.
3
3
*
4
- * Copyright (c) 2002-2020 Guardsquare NV
4
+ * Copyright (c) 2002-2022 Guardsquare NV
5
5
*
6
6
* Licensed under the Apache License, Version 2.0 (the "License");
7
7
* you may not use this file except in compliance with the License.
17
17
*/
18
18
package proguard .classfile .util ;
19
19
20
- import proguard .classfile .*;
20
+ import proguard .classfile .AccessConstants ;
21
+ import proguard .classfile .ClassConstants ;
22
+ import proguard .classfile .JavaAccessConstants ;
23
+ import proguard .classfile .JavaTypeConstants ;
24
+ import proguard .classfile .JavaVersionConstants ;
25
+ import proguard .classfile .TypeConstants ;
26
+ import proguard .classfile .VersionConstants ;
21
27
22
28
import java .util .List ;
23
29
@@ -397,6 +403,26 @@ public static boolean isInternalClassType(String internalType)
397
403
}
398
404
399
405
406
+ /**
407
+ * Returns whether the given type is an internal type, i.e. one of:
408
+ *
409
+ * - an internal array type;
410
+ * - an internal primitive type;
411
+ * - an internal class type.
412
+ *
413
+ * @param type the type,
414
+ * e.g. "<code>Ljava/lang/String;</code>", "<code>I</code>"
415
+ * @return <code>true</code> if the given type is a class type,
416
+ * <code>false</code> otherwise.
417
+ */
418
+ public static boolean isInternalType (String type )
419
+ {
420
+ return isInternalArrayType (type ) ||
421
+ isInternalPrimitiveType (type ) ||
422
+ isInternalClassType (type );
423
+ }
424
+
425
+
400
426
/**
401
427
* Returns the internal type of a given class name.
402
428
* @param internalClassName the internal class name,
@@ -423,7 +449,7 @@ public static String internalTypeFromClassName(String internalClassName)
423
449
public static String internalArrayTypeFromClassName (String internalClassName ,
424
450
int dimensionCount )
425
451
{
426
- StringBuffer buffer = new StringBuffer (internalClassName .length () + dimensionCount + 2 );
452
+ StringBuilder buffer = new StringBuilder (internalClassName .length () + dimensionCount + 2 );
427
453
428
454
for (int dimension = 0 ; dimension < dimensionCount ; dimension ++)
429
455
{
@@ -450,7 +476,7 @@ public static String internalArrayTypeFromClassName(String internalClassName,
450
476
public static String internalArrayTypeFromType (String internalType ,
451
477
int dimensionDelta )
452
478
{
453
- StringBuffer buffer = new StringBuffer (internalType .length () + dimensionDelta );
479
+ StringBuilder buffer = new StringBuilder (internalType .length () + dimensionDelta );
454
480
455
481
for (int dimension = 0 ; dimension < dimensionDelta ; dimension ++)
456
482
{
@@ -1278,7 +1304,7 @@ public static String externalMethodName(String externalMethodNameAndArguments)
1278
1304
public static String internalMethodDescriptor (String externalReturnType ,
1279
1305
String externalMethodNameAndArguments )
1280
1306
{
1281
- StringBuffer internalMethodDescriptor = new StringBuffer ();
1307
+ StringBuilder internalMethodDescriptor = new StringBuilder ();
1282
1308
internalMethodDescriptor .append (TypeConstants .METHOD_ARGUMENTS_OPEN );
1283
1309
1284
1310
ExternalTypeEnumeration externalTypeEnumeration =
@@ -1306,15 +1332,15 @@ public static String internalMethodDescriptor(String externalReturnType,
1306
1332
* @return the internal method descriptor,
1307
1333
* e.g. "<code>(II)Z</code>".
1308
1334
*/
1309
- public static String internalMethodDescriptor (String externalReturnType ,
1310
- List externalArguments )
1335
+ public static String internalMethodDescriptor (String externalReturnType ,
1336
+ List < String > externalArguments )
1311
1337
{
1312
- StringBuffer internalMethodDescriptor = new StringBuffer ();
1338
+ StringBuilder internalMethodDescriptor = new StringBuilder ();
1313
1339
internalMethodDescriptor .append (TypeConstants .METHOD_ARGUMENTS_OPEN );
1314
1340
1315
- for (int index = 0 ; index < externalArguments . size (); index ++ )
1341
+ for (String externalArgument : externalArguments )
1316
1342
{
1317
- internalMethodDescriptor .append (internalType (( String ) externalArguments . get ( index ) ));
1343
+ internalMethodDescriptor .append (internalType (externalArgument ));
1318
1344
}
1319
1345
1320
1346
internalMethodDescriptor .append (TypeConstants .METHOD_ARGUMENTS_CLOSE );
@@ -1428,7 +1454,7 @@ public static String externalClassAccessFlags(int accessFlags, String prefix)
1428
1454
return EMPTY_STRING ;
1429
1455
}
1430
1456
1431
- StringBuffer string = new StringBuffer (50 );
1457
+ StringBuilder string = new StringBuilder (50 );
1432
1458
1433
1459
if ((accessFlags & AccessConstants .PUBLIC ) != 0 )
1434
1460
{
@@ -1508,7 +1534,7 @@ public static String externalFieldAccessFlags(int accessFlags, String prefix)
1508
1534
return EMPTY_STRING ;
1509
1535
}
1510
1536
1511
- StringBuffer string = new StringBuffer (50 );
1537
+ StringBuilder string = new StringBuilder (50 );
1512
1538
1513
1539
if ((accessFlags & AccessConstants .PUBLIC ) != 0 )
1514
1540
{
@@ -1573,7 +1599,7 @@ public static String externalMethodAccessFlags(int accessFlags, String prefix)
1573
1599
return EMPTY_STRING ;
1574
1600
}
1575
1601
1576
- StringBuffer string = new StringBuffer (50 );
1602
+ StringBuilder string = new StringBuilder (50 );
1577
1603
1578
1604
if ((accessFlags & AccessConstants .PUBLIC ) != 0 )
1579
1605
{
@@ -1656,7 +1682,7 @@ public static String externalParameterAccessFlags(int accessFlags, String prefix
1656
1682
return EMPTY_STRING ;
1657
1683
}
1658
1684
1659
- StringBuffer string = new StringBuffer (50 );
1685
+ StringBuilder string = new StringBuilder (50 );
1660
1686
1661
1687
if ((accessFlags & AccessConstants .FINAL ) != 0 )
1662
1688
{
@@ -1716,7 +1742,7 @@ public static String externalModuleAccessFlags(int accessFlags, String prefix)
1716
1742
return EMPTY_STRING ;
1717
1743
}
1718
1744
1719
- StringBuffer string = new StringBuffer (50 );
1745
+ StringBuilder string = new StringBuilder (50 );
1720
1746
1721
1747
if ((accessFlags & AccessConstants .OPEN ) != 0 )
1722
1748
{
@@ -1763,7 +1789,7 @@ public static String externalRequiresAccessFlags(int accessFlags, String prefix)
1763
1789
return EMPTY_STRING ;
1764
1790
}
1765
1791
1766
- StringBuffer string = new StringBuffer (50 );
1792
+ StringBuilder string = new StringBuilder (50 );
1767
1793
1768
1794
if ((accessFlags & AccessConstants .TRANSITIVE ) != 0 )
1769
1795
{
@@ -1814,7 +1840,7 @@ public static String externalExportsAccessFlags(int accessFlags, String prefix)
1814
1840
return EMPTY_STRING ;
1815
1841
}
1816
1842
1817
- StringBuffer string = new StringBuffer (50 );
1843
+ StringBuilder string = new StringBuilder (50 );
1818
1844
1819
1845
if ((accessFlags & AccessConstants .SYNTHETIC ) != 0 )
1820
1846
{
@@ -1857,7 +1883,7 @@ public static String externalOpensAccessFlags(int accessFlags, String prefix)
1857
1883
return EMPTY_STRING ;
1858
1884
}
1859
1885
1860
- StringBuffer string = new StringBuffer (50 );
1886
+ StringBuilder string = new StringBuilder (50 );
1861
1887
1862
1888
if ((accessFlags & AccessConstants .SYNTHETIC ) != 0 )
1863
1889
{
@@ -1908,7 +1934,7 @@ private static String externalMethodReturnTypeAndName(String internalClassName,
1908
1934
*/
1909
1935
public static String externalMethodArguments (String internalMethodDescriptor )
1910
1936
{
1911
- StringBuffer externalMethodNameAndArguments = new StringBuffer ();
1937
+ StringBuilder externalMethodNameAndArguments = new StringBuilder ();
1912
1938
1913
1939
InternalTypeEnumeration internalTypeEnumeration =
1914
1940
new InternalTypeEnumeration (internalMethodDescriptor );
0 commit comments