public final class com.google.common.reflect.ClassPath
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.google.common.reflect.ClassPath
super_class: java.lang.Object
{
private static final java.util.logging.Logger logger;
descriptor: Ljava/util/logging/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final com.google.common.base.Predicate<com.google.common.reflect.ClassPath$ClassInfo> IS_TOP_LEVEL;
descriptor: Lcom/google/common/base/Predicate;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Lcom/google/common/base/Predicate<Lcom/google/common/reflect/ClassPath$ClassInfo;>;
private static final com.google.common.base.Splitter CLASS_PATH_ATTRIBUTE_SEPARATOR;
descriptor: Lcom/google/common/base/Splitter;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.String CLASS_FILE_NAME_EXTENSION;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: ".class"
private final com.google.common.collect.ImmutableSet<com.google.common.reflect.ClassPath$ResourceInfo> resources;
descriptor: Lcom/google/common/collect/ImmutableSet;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lcom/google/common/collect/ImmutableSet<Lcom/google/common/reflect/ClassPath$ResourceInfo;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Lcom/google/common/reflect/ClassPath;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
putstatic com.google.common.reflect.ClassPath.logger:Ljava/util/logging/Logger;
1: new com.google.common.reflect.ClassPath$1
dup
invokespecial com.google.common.reflect.ClassPath$1.<init>:()V
2: putstatic com.google.common.reflect.ClassPath.IS_TOP_LEVEL:Lcom/google/common/base/Predicate;
3: ldc " "
invokestatic com.google.common.base.Splitter.on:(Ljava/lang/String;)Lcom/google/common/base/Splitter;
invokevirtual com.google.common.base.Splitter.omitEmptyStrings:()Lcom/google/common/base/Splitter;
4: putstatic com.google.common.reflect.ClassPath.CLASS_PATH_ATTRIBUTE_SEPARATOR:Lcom/google/common/base/Splitter;
5: return
LocalVariableTable:
Start End Slot Name Signature
private void <init>(com.google.common.collect.ImmutableSet<com.google.common.reflect.ClassPath$ResourceInfo>);
descriptor: (Lcom/google/common/collect/ImmutableSet;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield com.google.common.reflect.ClassPath.resources:Lcom/google/common/collect/ImmutableSet;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/google/common/reflect/ClassPath;
0 3 1 resources Lcom/google/common/collect/ImmutableSet<Lcom/google/common/reflect/ClassPath$ResourceInfo;>;
Signature: (Lcom/google/common/collect/ImmutableSet<Lcom/google/common/reflect/ClassPath$ResourceInfo;>;)V
MethodParameters:
Name Flags
resources
public static com.google.common.reflect.ClassPath from(java.lang.ClassLoader);
descriptor: (Ljava/lang/ClassLoader;)Lcom/google/common/reflect/ClassPath;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: new com.google.common.reflect.ClassPath$DefaultScanner
dup
invokespecial com.google.common.reflect.ClassPath$DefaultScanner.<init>:()V
astore 1
start local 1 1: aload 1
aload 0
invokevirtual com.google.common.reflect.ClassPath$DefaultScanner.scan:(Ljava/lang/ClassLoader;)V
2: new com.google.common.reflect.ClassPath
dup
aload 1
invokevirtual com.google.common.reflect.ClassPath$DefaultScanner.getResources:()Lcom/google/common/collect/ImmutableSet;
invokespecial com.google.common.reflect.ClassPath.<init>:(Lcom/google/common/collect/ImmutableSet;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 classloader Ljava/lang/ClassLoader;
1 3 1 scanner Lcom/google/common/reflect/ClassPath$DefaultScanner;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
classloader
public com.google.common.collect.ImmutableSet<com.google.common.reflect.ClassPath$ResourceInfo> getResources();
descriptor: ()Lcom/google/common/collect/ImmutableSet;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.reflect.ClassPath.resources:Lcom/google/common/collect/ImmutableSet;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/reflect/ClassPath;
Signature: ()Lcom/google/common/collect/ImmutableSet<Lcom/google/common/reflect/ClassPath$ResourceInfo;>;
public com.google.common.collect.ImmutableSet<com.google.common.reflect.ClassPath$ClassInfo> getAllClasses();
descriptor: ()Lcom/google/common/collect/ImmutableSet;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.reflect.ClassPath.resources:Lcom/google/common/collect/ImmutableSet;
invokestatic com.google.common.collect.FluentIterable.from:(Ljava/lang/Iterable;)Lcom/google/common/collect/FluentIterable;
ldc Lcom/google/common/reflect/ClassPath$ClassInfo;
invokevirtual com.google.common.collect.FluentIterable.filter:(Ljava/lang/Class;)Lcom/google/common/collect/FluentIterable;
invokevirtual com.google.common.collect.FluentIterable.toSet:()Lcom/google/common/collect/ImmutableSet;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/reflect/ClassPath;
Signature: ()Lcom/google/common/collect/ImmutableSet<Lcom/google/common/reflect/ClassPath$ClassInfo;>;
public com.google.common.collect.ImmutableSet<com.google.common.reflect.ClassPath$ClassInfo> getTopLevelClasses();
descriptor: ()Lcom/google/common/collect/ImmutableSet;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.reflect.ClassPath.resources:Lcom/google/common/collect/ImmutableSet;
invokestatic com.google.common.collect.FluentIterable.from:(Ljava/lang/Iterable;)Lcom/google/common/collect/FluentIterable;
ldc Lcom/google/common/reflect/ClassPath$ClassInfo;
invokevirtual com.google.common.collect.FluentIterable.filter:(Ljava/lang/Class;)Lcom/google/common/collect/FluentIterable;
getstatic com.google.common.reflect.ClassPath.IS_TOP_LEVEL:Lcom/google/common/base/Predicate;
invokevirtual com.google.common.collect.FluentIterable.filter:(Lcom/google/common/base/Predicate;)Lcom/google/common/collect/FluentIterable;
invokevirtual com.google.common.collect.FluentIterable.toSet:()Lcom/google/common/collect/ImmutableSet;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/reflect/ClassPath;
Signature: ()Lcom/google/common/collect/ImmutableSet<Lcom/google/common/reflect/ClassPath$ClassInfo;>;
public com.google.common.collect.ImmutableSet<com.google.common.reflect.ClassPath$ClassInfo> getTopLevelClasses(java.lang.String);
descriptor: (Ljava/lang/String;)Lcom/google/common/collect/ImmutableSet;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: invokestatic com.google.common.collect.ImmutableSet.builder:()Lcom/google/common/collect/ImmutableSet$Builder;
astore 2
start local 2 2: aload 0
invokevirtual com.google.common.reflect.ClassPath.getTopLevelClasses:()Lcom/google/common/collect/ImmutableSet;
invokevirtual com.google.common.collect.ImmutableSet.iterator:()Ljava/util/Iterator;
astore 4
goto 6
StackMap locals: com.google.common.reflect.ClassPath java.lang.String com.google.common.collect.ImmutableSet$Builder top java.util.Iterator
StackMap stack:
3: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.google.common.reflect.ClassPath$ClassInfo
astore 3
start local 3 4: aload 3
invokevirtual com.google.common.reflect.ClassPath$ClassInfo.getPackageName:()Ljava/lang/String;
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 6
5: aload 2
aload 3
invokevirtual com.google.common.collect.ImmutableSet$Builder.add:(Ljava/lang/Object;)Lcom/google/common/collect/ImmutableSet$Builder;
pop
end local 3 6: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
7: aload 2
invokevirtual com.google.common.collect.ImmutableSet$Builder.build:()Lcom/google/common/collect/ImmutableSet;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/google/common/reflect/ClassPath;
0 8 1 packageName Ljava/lang/String;
2 8 2 builder Lcom/google/common/collect/ImmutableSet$Builder<Lcom/google/common/reflect/ClassPath$ClassInfo;>;
4 6 3 classInfo Lcom/google/common/reflect/ClassPath$ClassInfo;
Signature: (Ljava/lang/String;)Lcom/google/common/collect/ImmutableSet<Lcom/google/common/reflect/ClassPath$ClassInfo;>;
MethodParameters:
Name Flags
packageName
public com.google.common.collect.ImmutableSet<com.google.common.reflect.ClassPath$ClassInfo> getTopLevelClassesRecursive(java.lang.String);
descriptor: (Ljava/lang/String;)Lcom/google/common/collect/ImmutableSet;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 1
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: new java.lang.StringBuilder
dup
aload 1
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
bipush 46
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
start local 2 2: invokestatic com.google.common.collect.ImmutableSet.builder:()Lcom/google/common/collect/ImmutableSet$Builder;
astore 3
start local 3 3: aload 0
invokevirtual com.google.common.reflect.ClassPath.getTopLevelClasses:()Lcom/google/common/collect/ImmutableSet;
invokevirtual com.google.common.collect.ImmutableSet.iterator:()Ljava/util/Iterator;
astore 5
goto 7
StackMap locals: com.google.common.reflect.ClassPath java.lang.String java.lang.String com.google.common.collect.ImmutableSet$Builder top java.util.Iterator
StackMap stack:
4: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.google.common.reflect.ClassPath$ClassInfo
astore 4
start local 4 5: aload 4
invokevirtual com.google.common.reflect.ClassPath$ClassInfo.getName:()Ljava/lang/String;
aload 2
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 7
6: aload 3
aload 4
invokevirtual com.google.common.collect.ImmutableSet$Builder.add:(Ljava/lang/Object;)Lcom/google/common/collect/ImmutableSet$Builder;
pop
end local 4 7: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
8: aload 3
invokevirtual com.google.common.collect.ImmutableSet$Builder.build:()Lcom/google/common/collect/ImmutableSet;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/google/common/reflect/ClassPath;
0 9 1 packageName Ljava/lang/String;
2 9 2 packagePrefix Ljava/lang/String;
3 9 3 builder Lcom/google/common/collect/ImmutableSet$Builder<Lcom/google/common/reflect/ClassPath$ClassInfo;>;
5 7 4 classInfo Lcom/google/common/reflect/ClassPath$ClassInfo;
Signature: (Ljava/lang/String;)Lcom/google/common/collect/ImmutableSet<Lcom/google/common/reflect/ClassPath$ClassInfo;>;
MethodParameters:
Name Flags
packageName
static java.lang.String getClassName(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.String.length:()I
ldc ".class"
invokevirtual java.lang.String.length:()I
isub
istore 1
start local 1 1: aload 0
iconst_0
iload 1
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
bipush 47
bipush 46
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 filename Ljava/lang/String;
1 2 1 classNameEnd I
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()
RuntimeInvisibleTypeAnnotations:
METHOD_RETURN
com.google.common.annotations.VisibleForTesting()
MethodParameters:
Name Flags
filename
static java.io.File toFile(java.net.URL);
descriptor: (Ljava/net/URL;)Ljava/io/File;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.net.URL.getProtocol:()Ljava/lang/String;
ldc "file"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
invokestatic com.google.common.base.Preconditions.checkArgument:(Z)V
1: new java.io.File
dup
aload 0
invokevirtual java.net.URL.toURI:()Ljava/net/URI;
invokespecial java.io.File.<init>:(Ljava/net/URI;)V
2: areturn
3: StackMap locals:
StackMap stack: java.net.URISyntaxException
pop
4: new java.io.File
dup
aload 0
invokevirtual java.net.URL.getPath:()Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 url Ljava/net/URL;
Exception table:
from to target type
1 2 3 Class java.net.URISyntaxException
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()
RuntimeInvisibleTypeAnnotations:
METHOD_RETURN
com.google.common.annotations.VisibleForTesting()
MethodParameters:
Name Flags
url
}
SourceFile: "ClassPath.java"
NestMembers:
com.google.common.reflect.ClassPath$1 com.google.common.reflect.ClassPath$ClassInfo com.google.common.reflect.ClassPath$DefaultScanner com.google.common.reflect.ClassPath$ResourceInfo com.google.common.reflect.ClassPath$Scanner
InnerClasses:
public Builder = com.google.common.collect.ImmutableSet$Builder of com.google.common.collect.ImmutableSet
com.google.common.reflect.ClassPath$1
public final ClassInfo = com.google.common.reflect.ClassPath$ClassInfo of com.google.common.reflect.ClassPath
final DefaultScanner = com.google.common.reflect.ClassPath$DefaultScanner of com.google.common.reflect.ClassPath
public ResourceInfo = com.google.common.reflect.ClassPath$ResourceInfo of com.google.common.reflect.ClassPath
abstract Scanner = com.google.common.reflect.ClassPath$Scanner of com.google.common.reflect.ClassPath
RuntimeInvisibleAnnotations:
com.google.common.annotations.Beta()