Package org.objectweb.asm

Examples of org.objectweb.asm.ClassReader


       
    }
   
    private byte[] transformSubjectClass(String className, boolean embedProxy, PredicateSubjectAnalysisDataContainer predicateAnalysisDataContainer)
    {
        ClassReader cr = new ClassReader(predicateAnalysisDataContainer._predicateSubjectBytecode.get(className));
        ClassWriter cw = new ClassWriter(cr, ClassWriter.COMPUTE_MAXS
                | ClassWriter.COMPUTE_FRAMES);
        PredicateSubjectTransformer cv = new PredicateSubjectTransformer(cw,className,predicateAnalysisDataContainer, embedProxy);
        cr.accept(cv, ClassReader.EXPAND_FRAMES);
        return cw.toByteArray();
    }
View Full Code Here


    private boolean accessAnalize(byte[] predicateBytecode,
            Method predicateMethod,
            PredicateSubjectAnalysisDataContainer predicateAnalysisDataContainer)
    {
        ClassReader cr = new ClassReader(predicateBytecode);
        ClassWriter cw = new ClassWriter(cr, ClassWriter.COMPUTE_MAXS
                | ClassWriter.COMPUTE_FRAMES);
        PredicateAnalizer cv = predicateAnalysisDataContainer._predicateAnalizer = new PredicateAnalizer(cw,
                predicateMethod, predicateAnalysisDataContainer);
        cr.accept(cv, ClassReader.EXPAND_FRAMES);
        if (cv.isNotEligible()) {
            return false;
        }
        return analizePredicateSubjectAccessFields(predicateAnalysisDataContainer);
    }
View Full Code Here

   
    private void resolvePredicate(byte[] predicateBytecode, String predicateClassName,
            Method predicateMethod,
            PredicateSubjectAnalysisDataContainer predicateAnalysisDataContainer)
    {
        ClassReader cr = new ClassReader(predicateBytecode);
        ClassWriter cw = new ClassWriter(cr, ClassWriter.COMPUTE_MAXS
                | ClassWriter.COMPUTE_FRAMES);
        PredicateAnalizer cv = new PredicateAnalizer(cw,
                predicateMethod, predicateAnalysisDataContainer);//predicateAnalysisDataContainer._predicateAnalizer;
        cv.enableTransformation(true);
        cr.accept(cv, ClassReader.EXPAND_FRAMES);
        byte[] transformedPredicateBytecode = cw.toByteArray();
        defineClass(predicateClassName , transformedPredicateBytecode, 0, transformedPredicateBytecode.length);
        predicateAnalysisDataContainer._transformedQueryBytecode._predicateBytecode = transformedPredicateBytecode;
    }
View Full Code Here

        for (int i = 0; i < predicateHierarchy.length && totalMethodsVerified < predicateAnalysisDataContainer._referringMethods.size(); i++)
        {
            String nextClass = predicateHierarchy[i];
            byte[] bytecode = predicateAnalysisDataContainer._predicateSubjectBytecode
                    .get(nextClass);
            ClassReader cr = new ClassReader(bytecode);
            ClassWriter cw = new ClassWriter(cr, ClassWriter.COMPUTE_MAXS
                    | ClassWriter.COMPUTE_FRAMES);
            SubjectFieldAccessAnalizer predicateSubjectFieldAccessAnalizer = new SubjectFieldAccessAnalizer(cw, nextClass, predicateAnalysisDataContainer);
            cr.accept(predicateSubjectFieldAccessAnalizer,
                    ClassReader.EXPAND_FRAMES);
            if(predicateSubjectFieldAccessAnalizer._totalMethodsAnalized > 0){
                int currentHierarchyIndex = predicateAnalysisDataContainer._predicateSubjectClassDescriptor.getHierarchyTypeIndex(nextClass);
                predicateAnalysisDataContainer._lowestClassInHieratchyToModify = Math.min(predicateAnalysisDataContainer._lowestClassInHieratchyToModify, currentHierarchyIndex);
                predicateAnalysisDataContainer._classesForTransformation.put(nextClass, null);
View Full Code Here

*/
public class StackMapAdder {

  public static byte[] addStackMaps(World world, byte[] data) {
    try {
      ClassReader cr = new ClassReader(data);
      ClassWriter cw = new AspectJConnectClassWriter(world);
      cr.accept(cw, 0);
      return cw.toByteArray();
    } catch (Throwable t) {
      System.err.println("AspectJ Internal Error: unable to add stackmap attributes. " + t.getMessage());
      AsmDetector.isAsmAround = false;
      return data;
View Full Code Here

            while ((read = in.read(buf)) != -1) {
                baos.write(buf, 0, read);
            }
            buf = baos.toByteArray();
            JRubyClassLoader jcl = runtime.getJRubyClassLoader();
            ClassReader cr = new ClassReader(buf);
            String className = cr.getClassName().replace('/', '.');

            Class clazz = null;
            try {
                clazz = jcl.loadClass(className);
            } catch (ClassNotFoundException cnfe) {
View Full Code Here

    }
   
    public void dumpClass(PrintStream out) {
        PrintWriter pw = new PrintWriter(out);
        TraceClassVisitor tcv = new TraceClassVisitor(pw);
        new ClassReader(classWriter.toByteArray()).accept(tcv, 0);

        try {
            tcv.print(pw);
        } finally {
            pw.close();
View Full Code Here

        String filename = null;
        String path = null;
       
        // verify the class
        byte[] bytecode = writer.toByteArray();
        CheckClassAdapter.verify(new ClassReader(bytecode), false, new PrintWriter(System.err));
       
        if (fullname.lastIndexOf("/") == -1) {
            filename = fullname;
            path = "";
        } else {
View Full Code Here

        }

        @JRubyMethod(name = "inspect_bytecode")
        public static IRubyObject compiled_script_inspect_bytecode(IRubyObject recv) {
            StringWriter sw = new StringWriter();
            ClassReader cr = new ClassReader((byte[])org.jruby.javasupport.JavaUtil.convertRubyToJava(recv.getInstanceVariables().fastGetInstanceVariable("@code"),byte[].class));
            TraceClassVisitor cv = new TraceClassVisitor(new PrintWriter(sw));
            cr.accept(cv, ClassReader.SKIP_DEBUG);
            return recv.getRuntime().newString(sw.toString());
        }
View Full Code Here

    private static void file(File file, DependencyVisitor dependencyVisitor) {
        try {
            FileInputStream in = new FileInputStream(file);
            try {
                ClassReader classReader = new ClassReader(in);
                classReader.accept(dependencyVisitor, true);
            } finally {
                in.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
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.