⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 saxcodeadapter.java

📁 jboss规则引擎
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                            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 + -