Package org.objectweb.asm

Examples of org.objectweb.asm.ClassWriter.visitField()


            }
        }

        // fields to hold Ruby and RubyClass references
        cw.visitField(ACC_STATIC | ACC_PRIVATE, "ruby", ci(Ruby.class), null, null);
        cw.visitField(ACC_STATIC | ACC_PRIVATE, "rubyClass", ci(RubyClass.class), null, null);

        // static initializing method
        SkinnyMethodAdapter m = new SkinnyMethodAdapter(cw, ACC_PUBLIC | ACC_STATIC, "clinit", sig(void.class, Ruby.class, RubyClass.class), null, null);
        m.start();
        m.aload(0);
View Full Code Here


        cw.visit(Opcodes.V1_3, Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL | Opcodes.ACC_SUPER,
                toInternalClassName(className), /*signature*/ null,
                toInternalClassName(superClass),
                interfaceNamesForProxyClass(interfaces));

        cw.visitField(Opcodes.ACC_PRIVATE, INVOCATION_HANDLER_FIELD_NAME,
                INVOCATION_HANDLER_TYPE.getDescriptor(), null, null).visitEnd();

        cw.visitField(Opcodes.ACC_PRIVATE | Opcodes.ACC_STATIC,
                PROXY_CLASS_FIELD_NAME, PROXY_CLASS_TYPE.getDescriptor(), null,
                null).visitEnd();
View Full Code Here

                interfaceNamesForProxyClass(interfaces));

        cw.visitField(Opcodes.ACC_PRIVATE, INVOCATION_HANDLER_FIELD_NAME,
                INVOCATION_HANDLER_TYPE.getDescriptor(), null, null).visitEnd();

        cw.visitField(Opcodes.ACC_PRIVATE | Opcodes.ACC_STATIC,
                PROXY_CLASS_FIELD_NAME, PROXY_CLASS_TYPE.getDescriptor(), null,
                null).visitEnd();

        return cw;
    }
View Full Code Here

                // this code uses a maximum of one stack element and one local variable
                mw.visitMaxs(1, 1);
                mw.visitEnd();
                // create fields of the appropriate type.
                for (ValInfo vi : valInfoList) {
                    cw.visitField(ACC_PUBLIC, vi.fieldName, vi.fieldDesc(), null, null);
                }
                classInfo= new ClassInfo(className, cw.toByteArray());
                stateClasses_.get().put(className, classInfo);
            }
        if (!classInfoList.contains(classInfo))
View Full Code Here

    if (this.staticContextBuilt) return;
    this.staticContextBuilt = true;

    final SectionCompiler root = engineCompiler().rootCompiler();
    final ClassWriter cw = root.cw();
    final FieldVisitor fv = cw.visitField( Opcodes.ACC_STATIC + Opcodes.ACC_FINAL, RUNTIME_CONTEXT_NAME,
        RUNTIME_CONTEXT_TYPE.getDescriptor(), null, null );
    fv.visitEnd();

    final GeneratorAdapter mv = root.initializer();
    final MathContext mc = numericType().mathContext();
View Full Code Here

    String result = this.constantPool.get( _value );
    if (result == null) {
      final ClassWriter cw = rootCompiler().cw();
      final GeneratorAdapter ci = rootCompiler().initializer();
      result = "C$" + Integer.toString( this.constantPool.size() );
      cw.visitField( Opcodes.ACC_STATIC + Opcodes.ACC_FINAL, result, B, null, null ).visitEnd();
      final BigDecimal bigValue = new BigDecimal( _value );
      if (bigValue.precision() <= MAX_LONG_PREC) {
        final long longValue = bigValue.unscaledValue().longValue();
        ci.push( longValue );
        ci.push( bigValue.scale() );
View Full Code Here

        // Class definition start
        cw.visit( JDK_VERSION, ACC_PUBLIC + ACC_SUPER, classSlash, null, baseClassSlash, null );

        // Composite reference
        {
            cw.visitField( ACC_PUBLIC, "_instance", "Lorg/qi4j/api/composite/CompositeInvoker;", null, null ).visitEnd();
        }

        // Static Method references
        boolean hasProxyMethods = false;
        {
View Full Code Here

            int idx = 1;
            for( Method method : baseClass.getMethods() )
            {
                if( isOverridden(method, baseClass) )
                {
                    cw.visitField( ACC_PRIVATE + ACC_STATIC, "m" + idx++, "Ljava/lang/reflect/Method;", null,
                                        null ).visitEnd();
                    hasProxyMethods = true;
                }
            }
        }
View Full Code Here

        // Class definition start
        cw.visit( JDK_VERSION, ACC_PUBLIC + ACC_SUPER, classSlash, null, baseClassSlash, null );

        // Composite reference
        {
            fv = cw.visitField( ACC_PUBLIC, "_instance", "Lorg/qi4j/api/composite/CompositeInvoker;", null, null );
            fv.visitEnd();
        }

        // Static Method references
        {
View Full Code Here

            int idx = 1;
            for( Method method : baseClass.getMethods() )
            {
                if( isOverloaded( method, baseClass ) )
                {
                    fv = cw.visitField( ACC_PRIVATE + ACC_STATIC, "m" + idx++, "Ljava/lang/reflect/Method;", null,
                                        null );
                    fv.visitEnd();
                }
            }
        }
View Full Code Here

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.