public class org.jsoup.safety.Cleaner
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.jsoup.safety.Cleaner
super_class: java.lang.Object
{
private org.jsoup.safety.Whitelist whitelist;
descriptor: Lorg/jsoup/safety/Whitelist;
flags: (0x0002) ACC_PRIVATE
public void <init>(org.jsoup.safety.Whitelist);
descriptor: (Lorg/jsoup/safety/Whitelist;)V
flags: (0x0001) ACC_PUBLIC
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 1
invokestatic org.jsoup.helper.Validate.notNull:(Ljava/lang/Object;)V
2: aload 0
aload 1
putfield org.jsoup.safety.Cleaner.whitelist:Lorg/jsoup/safety/Whitelist;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/jsoup/safety/Cleaner;
0 4 1 whitelist Lorg/jsoup/safety/Whitelist;
MethodParameters:
Name Flags
whitelist
public org.jsoup.nodes.Document clean(org.jsoup.nodes.Document);
descriptor: (Lorg/jsoup/nodes/Document;)Lorg/jsoup/nodes/Document;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokestatic org.jsoup.helper.Validate.notNull:(Ljava/lang/Object;)V
1: aload 1
invokevirtual org.jsoup.nodes.Document.baseUri:()Ljava/lang/String;
invokestatic org.jsoup.nodes.Document.createShell:(Ljava/lang/String;)Lorg/jsoup/nodes/Document;
astore 2
start local 2 2: aload 1
invokevirtual org.jsoup.nodes.Document.body:()Lorg/jsoup/nodes/Element;
ifnull 4
3: aload 0
aload 1
invokevirtual org.jsoup.nodes.Document.body:()Lorg/jsoup/nodes/Element;
aload 2
invokevirtual org.jsoup.nodes.Document.body:()Lorg/jsoup/nodes/Element;
invokevirtual org.jsoup.safety.Cleaner.copySafeNodes:(Lorg/jsoup/nodes/Element;Lorg/jsoup/nodes/Element;)I
pop
4: StackMap locals: org.jsoup.nodes.Document
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/jsoup/safety/Cleaner;
0 5 1 dirtyDocument Lorg/jsoup/nodes/Document;
2 5 2 clean Lorg/jsoup/nodes/Document;
MethodParameters:
Name Flags
dirtyDocument
public boolean isValid(org.jsoup.nodes.Document);
descriptor: (Lorg/jsoup/nodes/Document;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokestatic org.jsoup.helper.Validate.notNull:(Ljava/lang/Object;)V
1: aload 1
invokevirtual org.jsoup.nodes.Document.baseUri:()Ljava/lang/String;
invokestatic org.jsoup.nodes.Document.createShell:(Ljava/lang/String;)Lorg/jsoup/nodes/Document;
astore 2
start local 2 2: aload 0
aload 1
invokevirtual org.jsoup.nodes.Document.body:()Lorg/jsoup/nodes/Element;
aload 2
invokevirtual org.jsoup.nodes.Document.body:()Lorg/jsoup/nodes/Element;
invokevirtual org.jsoup.safety.Cleaner.copySafeNodes:(Lorg/jsoup/nodes/Element;Lorg/jsoup/nodes/Element;)I
istore 3
start local 3 3: iload 3
ifne 6
4: aload 1
invokevirtual org.jsoup.nodes.Document.head:()Lorg/jsoup/nodes/Element;
invokevirtual org.jsoup.nodes.Element.childNodes:()Ljava/util/List;
invokeinterface java.util.List.isEmpty:()Z
ifeq 6
5: iconst_1
ireturn
StackMap locals: org.jsoup.nodes.Document int
StackMap stack:
6: iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/jsoup/safety/Cleaner;
0 7 1 dirtyDocument Lorg/jsoup/nodes/Document;
2 7 2 clean Lorg/jsoup/nodes/Document;
3 7 3 numDiscarded I
MethodParameters:
Name Flags
dirtyDocument
public boolean isValidBodyHtml(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: ldc ""
invokestatic org.jsoup.nodes.Document.createShell:(Ljava/lang/String;)Lorg/jsoup/nodes/Document;
astore 2
start local 2 1: ldc ""
invokestatic org.jsoup.nodes.Document.createShell:(Ljava/lang/String;)Lorg/jsoup/nodes/Document;
astore 3
start local 3 2: iconst_1
invokestatic org.jsoup.parser.ParseErrorList.tracking:(I)Lorg/jsoup/parser/ParseErrorList;
astore 4
start local 4 3: aload 1
aload 3
invokevirtual org.jsoup.nodes.Document.body:()Lorg/jsoup/nodes/Element;
ldc ""
aload 4
invokestatic org.jsoup.parser.Parser.parseFragment:(Ljava/lang/String;Lorg/jsoup/nodes/Element;Ljava/lang/String;Lorg/jsoup/parser/ParseErrorList;)Ljava/util/List;
astore 5
start local 5 4: aload 3
invokevirtual org.jsoup.nodes.Document.body:()Lorg/jsoup/nodes/Element;
iconst_0
aload 5
invokevirtual org.jsoup.nodes.Element.insertChildren:(ILjava/util/Collection;)Lorg/jsoup/nodes/Element;
pop
5: aload 0
aload 3
invokevirtual org.jsoup.nodes.Document.body:()Lorg/jsoup/nodes/Element;
aload 2
invokevirtual org.jsoup.nodes.Document.body:()Lorg/jsoup/nodes/Element;
invokevirtual org.jsoup.safety.Cleaner.copySafeNodes:(Lorg/jsoup/nodes/Element;Lorg/jsoup/nodes/Element;)I
istore 6
start local 6 6: iload 6
ifne 7
aload 4
invokevirtual org.jsoup.parser.ParseErrorList.isEmpty:()Z
ifeq 7
iconst_1
ireturn
StackMap locals: org.jsoup.safety.Cleaner java.lang.String org.jsoup.nodes.Document org.jsoup.nodes.Document org.jsoup.parser.ParseErrorList java.util.List int
StackMap stack:
7: iconst_0
ireturn
end local 6 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 8 0 this Lorg/jsoup/safety/Cleaner;
0 8 1 bodyHtml Ljava/lang/String;
1 8 2 clean Lorg/jsoup/nodes/Document;
2 8 3 dirty Lorg/jsoup/nodes/Document;
3 8 4 errorList Lorg/jsoup/parser/ParseErrorList;
4 8 5 nodes Ljava/util/List<Lorg/jsoup/nodes/Node;>;
6 8 6 numDiscarded I
MethodParameters:
Name Flags
bodyHtml
private int copySafeNodes(org.jsoup.nodes.Element, org.jsoup.nodes.Element);
descriptor: (Lorg/jsoup/nodes/Element;Lorg/jsoup/nodes/Element;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: new org.jsoup.safety.Cleaner$CleaningVisitor
dup
aload 0
aload 1
aload 2
invokespecial org.jsoup.safety.Cleaner$CleaningVisitor.<init>:(Lorg/jsoup/safety/Cleaner;Lorg/jsoup/nodes/Element;Lorg/jsoup/nodes/Element;)V
astore 3
start local 3 1: aload 3
aload 1
invokestatic org.jsoup.select.NodeTraversor.traverse:(Lorg/jsoup/select/NodeVisitor;Lorg/jsoup/nodes/Node;)V
2: aload 3
getfield org.jsoup.safety.Cleaner$CleaningVisitor.numDiscarded:I
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jsoup/safety/Cleaner;
0 3 1 source Lorg/jsoup/nodes/Element;
0 3 2 dest Lorg/jsoup/nodes/Element;
1 3 3 cleaningVisitor Lorg/jsoup/safety/Cleaner$CleaningVisitor;
MethodParameters:
Name Flags
source
dest
private org.jsoup.safety.Cleaner$ElementMeta createSafeElement(org.jsoup.nodes.Element);
descriptor: (Lorg/jsoup/nodes/Element;)Lorg/jsoup/safety/Cleaner$ElementMeta;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=9, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.jsoup.nodes.Element.tagName:()Ljava/lang/String;
astore 2
start local 2 1: new org.jsoup.nodes.Attributes
dup
invokespecial org.jsoup.nodes.Attributes.<init>:()V
astore 3
start local 3 2: new org.jsoup.nodes.Element
dup
aload 2
invokestatic org.jsoup.parser.Tag.valueOf:(Ljava/lang/String;)Lorg/jsoup/parser/Tag;
aload 1
invokevirtual org.jsoup.nodes.Element.baseUri:()Ljava/lang/String;
aload 3
invokespecial org.jsoup.nodes.Element.<init>:(Lorg/jsoup/parser/Tag;Ljava/lang/String;Lorg/jsoup/nodes/Attributes;)V
astore 4
start local 4 3: iconst_0
istore 5
start local 5 4: aload 1
invokevirtual org.jsoup.nodes.Element.attributes:()Lorg/jsoup/nodes/Attributes;
astore 6
start local 6 5: aload 6
invokevirtual org.jsoup.nodes.Attributes.iterator:()Ljava/util/Iterator;
astore 8
goto 10
StackMap locals: org.jsoup.safety.Cleaner org.jsoup.nodes.Element java.lang.String org.jsoup.nodes.Attributes org.jsoup.nodes.Element int org.jsoup.nodes.Attributes top java.util.Iterator
StackMap stack:
6: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.jsoup.nodes.Attribute
astore 7
start local 7 7: aload 0
getfield org.jsoup.safety.Cleaner.whitelist:Lorg/jsoup/safety/Whitelist;
aload 2
aload 1
aload 7
invokevirtual org.jsoup.safety.Whitelist.isSafeAttribute:(Ljava/lang/String;Lorg/jsoup/nodes/Element;Lorg/jsoup/nodes/Attribute;)Z
ifeq 9
8: aload 3
aload 7
invokevirtual org.jsoup.nodes.Attributes.put:(Lorg/jsoup/nodes/Attribute;)Lorg/jsoup/nodes/Attributes;
pop
goto 10
9: StackMap locals: org.jsoup.safety.Cleaner org.jsoup.nodes.Element java.lang.String org.jsoup.nodes.Attributes org.jsoup.nodes.Element int org.jsoup.nodes.Attributes org.jsoup.nodes.Attribute java.util.Iterator
StackMap stack:
iinc 5 1
end local 7 10: StackMap locals: org.jsoup.safety.Cleaner org.jsoup.nodes.Element java.lang.String org.jsoup.nodes.Attributes org.jsoup.nodes.Element int org.jsoup.nodes.Attributes top java.util.Iterator
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
11: aload 0
getfield org.jsoup.safety.Cleaner.whitelist:Lorg/jsoup/safety/Whitelist;
aload 2
invokevirtual org.jsoup.safety.Whitelist.getEnforcedAttributes:(Ljava/lang/String;)Lorg/jsoup/nodes/Attributes;
astore 7
start local 7 12: aload 3
aload 7
invokevirtual org.jsoup.nodes.Attributes.addAll:(Lorg/jsoup/nodes/Attributes;)V
13: new org.jsoup.safety.Cleaner$ElementMeta
dup
aload 4
iload 5
invokespecial org.jsoup.safety.Cleaner$ElementMeta.<init>:(Lorg/jsoup/nodes/Element;I)V
areturn
end local 7 end local 6 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 14 0 this Lorg/jsoup/safety/Cleaner;
0 14 1 sourceEl Lorg/jsoup/nodes/Element;
1 14 2 sourceTag Ljava/lang/String;
2 14 3 destAttrs Lorg/jsoup/nodes/Attributes;
3 14 4 dest Lorg/jsoup/nodes/Element;
4 14 5 numDiscarded I
5 14 6 sourceAttrs Lorg/jsoup/nodes/Attributes;
7 10 7 sourceAttr Lorg/jsoup/nodes/Attribute;
12 14 7 enforcedAttrs Lorg/jsoup/nodes/Attributes;
MethodParameters:
Name Flags
sourceEl
}
SourceFile: "Cleaner.java"
NestMembers:
org.jsoup.safety.Cleaner$CleaningVisitor org.jsoup.safety.Cleaner$ElementMeta
InnerClasses:
private final CleaningVisitor = org.jsoup.safety.Cleaner$CleaningVisitor of org.jsoup.safety.Cleaner
private ElementMeta = org.jsoup.safety.Cleaner$ElementMeta of org.jsoup.safety.Cleaner