Package org.objectweb.asm.tree

Examples of org.objectweb.asm.tree.ClassNode


    else
    {
      names = new String[]{"saveHandler","worldInfo","provider","theProfiler","worldLogAgent"};
    }
    name = name.replace('.', '/');
    ClassNode cn = new ClassNode(Opcodes.ASM4);
    cr.accept(cn, ClassReader.EXPAND_FRAMES);
   
    ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_FRAMES | ClassWriter.COMPUTE_MAXS);
    cn.accept(cw);
    /* new World constructor
     * World(ISaveHandler saveHandler, String worldName,
            WorldProvider provider, WorldSettings worldSettings,
            Profiler theProfiler, ILogAgent worldLogAgent)
     **/
 
View Full Code Here


    else
    {
      names = new String[]{"mcServer","theEntityTracker","thePlayerManager","field_85177_Q"};
    }
    name = name.replace('.', '/');
    ClassNode cn = new ClassNode(Opcodes.ASM4);
    cr.accept(cn, ClassReader.EXPAND_FRAMES);

    for(MethodNode m : cn.methods)
    {
      if("<init>".equals(m.name) && "(Lnet/minecraft/server/MinecraftServer;Lnet/minecraft/world/storage/ISaveHandler;Ljava/lang/String;Lnet/minecraft/world/WorldProvider;Lnet/minecraft/world/WorldSettings;Lnet/minecraft/profiler/Profiler;Lnet/minecraft/logging/ILogAgent;)V".equals(m.desc))
      {
        return bytes;
      }
    }
   
    ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_FRAMES | ClassWriter.COMPUTE_MAXS);
    cn.accept(cw);
    /* new WorldServer constructor
     * WorldServer(MinecraftServer minecraftServer,
            ISaveHandler saveHandler, String worldName,
            WorldProvider provider, WorldSettings worldSettings,
            Profiler theProfiler, ILogAgent worldLogAgent)
View Full Code Here

    }


    public static ClassNode node() {
        ClassNode node = new ClassNode();
        node.name = "my/Component";
        return node;
    }
View Full Code Here

        assertNotNull(root);
        assertEquals("create", root.getAttribute("factory-method"));
    }

    private ClassNode clazz() {
        ClassNode node = new ClassNode();
        node.name = "my/Component";
        return node;
    }
View Full Code Here

        verify(reporter).error(anyString(), anyVararg());
    }

    private static ClassNode type() {
        ClassNode node = new ClassNode();
        node.name = "my/Component";
        return node;
    }
View Full Code Here

    private MethodNode methodNode() {
        return new MethodNode(0, "method", "(java/lang/String)V", null, null);
    }

    private ClassNode classNode() {
        ClassNode node = new ClassNode();
        node.visit(0, 0, "my/Component", null, "java/lang/Object", null);
        return node;
    }
View Full Code Here

         * the Suspendable annotation. If they do then those
         * classes need to have their bytecodes transformed for
         * Continuation support.
        */               
        ClassReader classReader = new ClassReader(bytes);
        ClassNode classNode = new ClassNode();
        classReader.accept(classNode, true);      
        List<AnnotationNode> annotationNodes = classNode.visibleAnnotations;
       
        for( AnnotationNode annotationNode : annotationNodes )
        {           
View Full Code Here

    this.packedComponents = packedComponents;
  }

  @Override @SuppressWarnings("unchecked")
  public ClassNode transform(ClassReader cr) {
    ClassNode cn = new ClassNode(ASM4);
    cr.accept(cn,  ClassReader.EXPAND_FRAMES);
   
    ExternalFieldMethodTransformer methodTransformer = new ExternalFieldMethodTransformer(null, cn.name, packedComponents);
   
    List<MethodNode> methods = cn.methods;
View Full Code Here

    for (Clazz clazz : clazzMap.values()) {
      byte[] bytes;
      FileInputStream fis = new FileInputStream(clazz.classfile);
      try {
        ClassReader cr2 = new ClassReader(fis);
        ClassNode cn = new ClassNode();
        cr2.accept(cn, flags);

        //Now content of ClassNode can be modified and then serialized back into bytecode:
        new TryCatchBlockHandler().instrument(cn);

        ClassWriter cw2 = new ClassWriter(0);
        cn.accept(cw2);
        bytes = cw2.toByteArray();
       
        if (logger.isTraceEnabled()) {
          StringWriter sw = new StringWriter();
          new ClassReader(bytes).accept(new TraceClassVisitor(new PrintWriter(sw)), 0);
View Full Code Here

    public PlasticClassHandleShim createShimInstance()
    {
        String shimClassName = String.format("%s$Shim_%s", classNode.name, PlasticUtils.nextUID());

        ClassNode shimClassNode = new ClassNode();

        shimClassNode.visit(V1_5, ACC_PUBLIC | ACC_FINAL, shimClassName, null, HANDLE_SHIM_BASE_CLASS_INTERNAL_NAME,
                null);

        implementConstructor(shimClassNode);

        if (!shimFields.isEmpty())
View Full Code Here

TOP

Related Classes of org.objectweb.asm.tree.ClassNode

Copyright © 2018 www.massapicom. 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.