Package org.objectweb.asm

Examples of org.objectweb.asm.ClassReader


        .dottedClassName(), bytes);
    return instanceClass;
  }

  private void printBytecode(byte[] bytes) {
    ClassReader cr = new ClassReader(bytes);
    cr.accept(new TraceClassVisitor(new PrintWriter(System.out)), 0);
  }
View Full Code Here


        log.debug("Processing " + annotatedClass.getName());
        try {
            // get the class file for ASM
            final String pathToClassFile = annotatedClass.getName().replace('.', '/') + ".class";
            final InputStream input = project.getClassLoader().getResourceAsStream(pathToClassFile);
            final ClassReader classReader;
            try {
                classReader = new ClassReader(input);
            } finally {
                input.close();
            }
            final ClassNode classNode = new ClassNode();
            classReader.accept(classNode, SKIP_CODE | SKIP_DEBUG | SKIP_FRAMES);

            // create descriptions
            final List<ScannedAnnotation> annotations = extractAnnotation(classNode, annotatedClass);
            if (annotations.size() > 0) {
                // process annotations and create descriptions
View Full Code Here

    throws SCRDescriptorException {
        // now do byte code manipulation
        final String fileName = outputDirectory + File.separatorChar +  className.replace('.', File.separatorChar) + ".class";
        final ClassNode cn = new ClassNode();
        try {
            final ClassReader reader = new ClassReader(new FileInputStream(fileName));
            reader.accept(cn, 0);

            // For target Java7 and above use: ClassWriter.COMPUTE_MAXS  | ClassWriter.COMPUTE_FRAMES
            final int mask = (cn.version > 50 ? ClassWriter.COMPUTE_MAXS  | ClassWriter.COMPUTE_FRAMES : 0);
            final ClassWriter writer = new ClassWriter(mask) {
View Full Code Here

abstract public class JarTransformer implements JarProcessor
{
    public boolean process(EntryStruct struct) throws IOException {
        if (struct.name.endsWith(".class")) {
            ClassReader reader;
            try {
                reader = new ClassReader(struct.data);
            } catch (Exception e) {
                return true; // TODO?
            }
            GetNameClassWriter w = new GetNameClassWriter(ClassWriter.COMPUTE_MAXS);
            reader.accept(transform(w), ClassReader.EXPAND_FRAMES);
            struct.data = w.toByteArray();
            struct.name = pathFromName(w.getClassName());
        }
        return true;
    }
View Full Code Here

    return classBytes;
  }

  private ClassInfo parseClass(InputStream classBytes) {
    try {
      ClassReader classReader = new ClassReader(classBytes);
      ClassInfoBuilderVisitor visitor = new ClassInfoBuilderVisitor(this);
      classReader.accept(visitor, 0);
      return visitor.getClassInfo();
    } catch (IOException e) {
      throw new RuntimeException(e);
    }
  }
View Full Code Here

  @Ensures("result != null")
  public byte[] transformWithContracts(byte[] bytecode, byte[] contractBytecode)
      throws IllegalClassFormatException {
    try {
      ContractAnalyzer contracts =
          extractContracts(new ClassReader(contractBytecode));
      return instrumentWithContracts(bytecode, contracts);
    } catch (Throwable t) {
      /* If the class file contains errors, ASM will just crash. */
      IllegalClassFormatException e = new IllegalClassFormatException();
      e.initCause(t);
View Full Code Here

        JavaUtils.getContractClassInputStream(loader, className);
    if (contractStream == null) {
      return null;
    }

    return extractContracts(new ClassReader(contractStream));
  }
View Full Code Here

    "contracts != null"
  })
  @Ensures("result != null")
  protected byte[] instrumentWithContracts(byte[] bytecode,
                                           ContractAnalyzer contracts) {
    ClassReader reader = new ClassReader(bytecode);
    ClassWriter writer =
        new NonLoadingClassWriter(reader,
                                  ClassWriter.COMPUTE_FRAMES |
                                  ClassWriter.COMPUTE_MAXS);

    SpecificationClassAdapter adapter =
        new SpecificationClassAdapter(writer, contracts);
    reader.accept(adapter, ClassReader.EXPAND_FRAMES);

    return writer.toByteArray();
  }
View Full Code Here

   * information extraction from annotations.
   */
  @Requires("bytecode != null")
  @Ensures("result != null")
  private byte[] instrumentWithDebug(byte[] bytecode) {
    ClassReader reader = new ClassReader(bytecode);
    ClassWriter writer = new NonLoadingClassWriter(reader, 0);
    reader.accept(new HelperClassAdapter(writer), ClassReader.EXPAND_FRAMES);
    return writer.toByteArray();
  }
View Full Code Here

    private void findSuperInfoFromClassFile(String className) {
      try {
        InputStream stream = JavaUtils.getClassInputStream(loader, className);
        if (stream == null)
          throw new NullPointerException();
        ClassReader reader = new ClassReader(stream);
        reader.accept(this, 0);
      } catch (Exception e) {
        addDefaultAssignable(className);
      }
    }
View Full Code Here

TOP

Related Classes of org.objectweb.asm.ClassReader

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.