📄 saxcodeadapter.java
字号:
Integer.toString( min ) );
attrs.addAttribute( "",
"max",
"max",
"",
Integer.toString( max ) );
attrs.addAttribute( "",
"dflt",
"dflt",
"",
getLabel( dflt ) );
final String o = AbstractVisitor.OPCODES[Opcodes.TABLESWITCH];
addStart( o,
attrs );
for ( int i = 0; i < labels.length; i++ ) {
final AttributesImpl att2 = new AttributesImpl();
att2.addAttribute( "",
"name",
"name",
"",
getLabel( labels[i] ) );
addElement( "label",
att2 );
}
addEnd( o );
}
public final void visitLookupSwitchInsn(final Label dflt,
final int[] keys,
final Label[] labels) {
final AttributesImpl att = new AttributesImpl();
att.addAttribute( "",
"dflt",
"dflt",
"",
getLabel( dflt ) );
final String o = AbstractVisitor.OPCODES[Opcodes.LOOKUPSWITCH];
addStart( o,
att );
for ( int i = 0; i < labels.length; i++ ) {
final AttributesImpl att2 = new AttributesImpl();
att2.addAttribute( "",
"name",
"name",
"",
getLabel( labels[i] ) );
att2.addAttribute( "",
"key",
"key",
"",
Integer.toString( keys[i] ) );
addElement( "label",
att2 );
}
addEnd( o );
}
public final void visitMultiANewArrayInsn(final String desc,
final int dims) {
final AttributesImpl attrs = new AttributesImpl();
attrs.addAttribute( "",
"desc",
"desc",
"",
desc );
attrs.addAttribute( "",
"dims",
"dims",
"",
Integer.toString( dims ) );
addElement( AbstractVisitor.OPCODES[Opcodes.MULTIANEWARRAY],
attrs );
}
public final void visitTryCatchBlock(final Label start,
final Label end,
final Label handler,
final String type) {
final AttributesImpl attrs = new AttributesImpl();
attrs.addAttribute( "",
"start",
"start",
"",
getLabel( start ) );
attrs.addAttribute( "",
"end",
"end",
"",
getLabel( end ) );
attrs.addAttribute( "",
"handler",
"handler",
"",
getLabel( handler ) );
if ( type != null ) {
attrs.addAttribute( "",
"type",
"type",
"",
type );
}
addElement( "TryCatch",
attrs );
}
public final void visitMaxs(final int maxStack,
final int maxLocals) {
final AttributesImpl attrs = new AttributesImpl();
attrs.addAttribute( "",
"maxStack",
"maxStack",
"",
Integer.toString( maxStack ) );
attrs.addAttribute( "",
"maxLocals",
"maxLocals",
"",
Integer.toString( maxLocals ) );
addElement( "Max",
attrs );
addEnd( "code" );
}
public void visitLocalVariable(final String name,
final String desc,
final String signature,
final Label start,
final Label end,
final int index) {
final AttributesImpl attrs = new AttributesImpl();
attrs.addAttribute( "",
"name",
"name",
"",
name );
attrs.addAttribute( "",
"desc",
"desc",
"",
desc );
if ( signature != null ) {
attrs.addAttribute( "",
"signature",
"signature",
"",
SAXClassAdapter.encode( signature ) );
}
attrs.addAttribute( "",
"start",
"start",
"",
getLabel( start ) );
attrs.addAttribute( "",
"end",
"end",
"",
getLabel( end ) );
attrs.addAttribute( "",
"var",
"var",
"",
Integer.toString( index ) );
addElement( "LocalVar",
attrs );
}
public final void visitLineNumber(final int line,
final Label start) {
final AttributesImpl attrs = new AttributesImpl();
attrs.addAttribute( "",
"line",
"line",
"",
Integer.toString( line ) );
attrs.addAttribute( "",
"start",
"start",
"",
getLabel( start ) );
addElement( "LineNumber",
attrs );
}
public AnnotationVisitor visitAnnotationDefault() {
return new SAXAnnotationAdapter( getContentHandler(),
"annotationDefault",
0,
null,
null );
}
public AnnotationVisitor visitAnnotation(final String desc,
final boolean visible) {
return new SAXAnnotationAdapter( getContentHandler(),
"annotation",
visible ? 1 : -1,
null,
desc );
}
public AnnotationVisitor visitParameterAnnotation(final int parameter,
final String desc,
final boolean visible) {
return new SAXAnnotationAdapter( getContentHandler(),
"parameterAnnotation",
visible ? 1 : -1,
parameter,
desc );
}
public void visitEnd() {
addEnd( "method" );
}
public final void visitAttribute(final Attribute attr) {
// TODO Auto-generated SAXCodeAdapter.visitAttribute
}
private final String getLabel(final Label label) {
String name = (String) this.labelNames.get( label );
if ( name == null ) {
name = Integer.toString( this.labelNames.size() );
this.labelNames.put( label,
name );
}
return name;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -