final class com.google.common.reflect.ClassPath$DefaultScanner extends com.google.common.reflect.ClassPath$Scanner
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.google.common.reflect.ClassPath$DefaultScanner
super_class: com.google.common.reflect.ClassPath$Scanner
{
private final com.google.common.collect.SetMultimap<java.lang.ClassLoader, java.lang.String> resources;
descriptor: Lcom/google/common/collect/SetMultimap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lcom/google/common/collect/SetMultimap<Ljava/lang/ClassLoader;Ljava/lang/String;>;
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial com.google.common.reflect.ClassPath$Scanner.<init>:()V
1: aload 0
2: invokestatic com.google.common.collect.MultimapBuilder.hashKeys:()Lcom/google/common/collect/MultimapBuilder$MultimapBuilderWithKeys;
invokevirtual com.google.common.collect.MultimapBuilder$MultimapBuilderWithKeys.linkedHashSetValues:()Lcom/google/common/collect/MultimapBuilder$SetMultimapBuilder;
invokevirtual com.google.common.collect.MultimapBuilder$SetMultimapBuilder.build:()Lcom/google/common/collect/SetMultimap;
putfield com.google.common.reflect.ClassPath$DefaultScanner.resources:Lcom/google/common/collect/SetMultimap;
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/google/common/reflect/ClassPath$DefaultScanner;
com.google.common.collect.ImmutableSet<com.google.common.reflect.ClassPath$ResourceInfo> getResources();
descriptor: ()Lcom/google/common/collect/ImmutableSet;
flags: (0x0000)
Code:
stack=3, locals=4, args_size=1
start local 0 0: invokestatic com.google.common.collect.ImmutableSet.builder:()Lcom/google/common/collect/ImmutableSet$Builder;
astore 1
start local 1 1: aload 0
getfield com.google.common.reflect.ClassPath$DefaultScanner.resources:Lcom/google/common/collect/SetMultimap;
invokeinterface com.google.common.collect.SetMultimap.entries:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
goto 4
StackMap locals: com.google.common.reflect.ClassPath$DefaultScanner com.google.common.collect.ImmutableSet$Builder top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 2
start local 2 3: aload 1
aload 2
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.lang.String
aload 2
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.ClassLoader
invokestatic com.google.common.reflect.ClassPath$ResourceInfo.of:(Ljava/lang/String;Ljava/lang/ClassLoader;)Lcom/google/common/reflect/ClassPath$ResourceInfo;
invokevirtual com.google.common.collect.ImmutableSet$Builder.add:(Ljava/lang/Object;)Lcom/google/common/collect/ImmutableSet$Builder;
pop
end local 2 4: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: aload 1
invokevirtual com.google.common.collect.ImmutableSet$Builder.build:()Lcom/google/common/collect/ImmutableSet;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/google/common/reflect/ClassPath$DefaultScanner;
1 6 1 builder Lcom/google/common/collect/ImmutableSet$Builder<Lcom/google/common/reflect/ClassPath$ResourceInfo;>;
3 4 2 entry Ljava/util/Map$Entry<Ljava/lang/ClassLoader;Ljava/lang/String;>;
Signature: ()Lcom/google/common/collect/ImmutableSet<Lcom/google/common/reflect/ClassPath$ResourceInfo;>;
protected void scanJarFile(java.lang.ClassLoader, java.util.jar.JarFile);
descriptor: (Ljava/lang/ClassLoader;Ljava/util/jar/JarFile;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual java.util.jar.JarFile.entries:()Ljava/util/Enumeration;
astore 3
start local 3 1: goto 6
2: StackMap locals: java.util.Enumeration
StackMap stack:
aload 3
invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
checkcast java.util.jar.JarEntry
astore 4
start local 4 3: aload 4
invokevirtual java.util.jar.JarEntry.isDirectory:()Z
ifne 6
aload 4
invokevirtual java.util.jar.JarEntry.getName:()Ljava/lang/String;
ldc "META-INF/MANIFEST.MF"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 5
4: goto 6
5: StackMap locals: java.util.jar.JarEntry
StackMap stack:
aload 0
getfield com.google.common.reflect.ClassPath$DefaultScanner.resources:Lcom/google/common/collect/SetMultimap;
aload 1
invokeinterface com.google.common.collect.SetMultimap.get:(Ljava/lang/Object;)Ljava/util/Set;
aload 4
invokevirtual java.util.jar.JarEntry.getName:()Ljava/lang/String;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 4 6: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Enumeration.hasMoreElements:()Z
ifne 2
7: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/google/common/reflect/ClassPath$DefaultScanner;
0 8 1 classloader Ljava/lang/ClassLoader;
0 8 2 file Ljava/util/jar/JarFile;
1 8 3 entries Ljava/util/Enumeration<Ljava/util/jar/JarEntry;>;
3 6 4 entry Ljava/util/jar/JarEntry;
MethodParameters:
Name Flags
classloader
file
protected void scanDirectory(java.lang.ClassLoader, java.io.File);
descriptor: (Ljava/lang/ClassLoader;Ljava/io/File;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 3
start local 3 1: aload 3
aload 2
invokevirtual java.io.File.getCanonicalFile:()Ljava/io/File;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
2: aload 0
aload 2
aload 1
ldc ""
aload 3
invokevirtual com.google.common.reflect.ClassPath$DefaultScanner.scanDirectory:(Ljava/io/File;Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/util/Set;)V
3: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/google/common/reflect/ClassPath$DefaultScanner;
0 4 1 classloader Ljava/lang/ClassLoader;
0 4 2 directory Ljava/io/File;
1 4 3 currentPath Ljava/util/Set<Ljava/io/File;>;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
classloader
directory
private void scanDirectory(java.io.File, java.lang.ClassLoader, java.lang.String, java.util.Set<java.io.File>);
descriptor: (Ljava/io/File;Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/util/Set;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=12, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 1
invokevirtual java.io.File.listFiles:()[Ljava/io/File;
astore 5
start local 5 1: aload 5
ifnonnull 4
2: getstatic com.google.common.reflect.ClassPath.logger:Ljava/util/logging/Logger;
new java.lang.StringBuilder
dup
ldc "Cannot read directory "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.logging.Logger.warning:(Ljava/lang/String;)V
3: return
4: StackMap locals: java.io.File[]
StackMap stack:
aload 5
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 17
StackMap locals: com.google.common.reflect.ClassPath$DefaultScanner java.io.File java.lang.ClassLoader java.lang.String java.util.Set java.io.File[] top int int java.io.File[]
StackMap stack:
5: aload 9
iload 7
aaload
astore 6
start local 6 6: aload 6
invokevirtual java.io.File.getName:()Ljava/lang/String;
astore 10
start local 10 7: aload 6
invokevirtual java.io.File.isDirectory:()Z
ifeq 13
8: aload 6
invokevirtual java.io.File.getCanonicalFile:()Ljava/io/File;
astore 11
start local 11 9: aload 4
aload 11
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
ifeq 16
10: aload 0
aload 11
aload 2
new java.lang.StringBuilder
dup
aload 3
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 10
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "/"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 4
invokevirtual com.google.common.reflect.ClassPath$DefaultScanner.scanDirectory:(Ljava/io/File;Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/util/Set;)V
11: aload 4
aload 11
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
end local 11 12: goto 16
13: StackMap locals: com.google.common.reflect.ClassPath$DefaultScanner java.io.File java.lang.ClassLoader java.lang.String java.util.Set java.io.File[] java.io.File int int java.io.File[] java.lang.String
StackMap stack:
new java.lang.StringBuilder
dup
aload 3
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 10
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 11
start local 11 14: aload 11
ldc "META-INF/MANIFEST.MF"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 16
15: aload 0
getfield com.google.common.reflect.ClassPath$DefaultScanner.resources:Lcom/google/common/collect/SetMultimap;
aload 2
invokeinterface com.google.common.collect.SetMultimap.get:(Ljava/lang/Object;)Ljava/util/Set;
aload 11
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 11 end local 10 end local 6 16: StackMap locals: com.google.common.reflect.ClassPath$DefaultScanner java.io.File java.lang.ClassLoader java.lang.String java.util.Set java.io.File[] top int int java.io.File[]
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
17: iload 7
iload 8
if_icmplt 5
18: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lcom/google/common/reflect/ClassPath$DefaultScanner;
0 19 1 directory Ljava/io/File;
0 19 2 classloader Ljava/lang/ClassLoader;
0 19 3 packagePrefix Ljava/lang/String;
0 19 4 currentPath Ljava/util/Set<Ljava/io/File;>;
1 19 5 files [Ljava/io/File;
6 16 6 f Ljava/io/File;
7 16 10 name Ljava/lang/String;
9 12 11 deref Ljava/io/File;
14 16 11 resourceName Ljava/lang/String;
Exceptions:
throws java.io.IOException
Signature: (Ljava/io/File;Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/util/Set<Ljava/io/File;>;)V
MethodParameters:
Name Flags
directory
classloader
packagePrefix
currentPath
}
SourceFile: "ClassPath.java"
NestHost: com.google.common.reflect.ClassPath
InnerClasses:
public Builder = com.google.common.collect.ImmutableSet$Builder of com.google.common.collect.ImmutableSet
public abstract MultimapBuilderWithKeys = com.google.common.collect.MultimapBuilder$MultimapBuilderWithKeys of com.google.common.collect.MultimapBuilder
public abstract SetMultimapBuilder = com.google.common.collect.MultimapBuilder$SetMultimapBuilder of com.google.common.collect.MultimapBuilder
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
public abstract Entry = java.util.Map$Entry of java.util.Map
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()