Package org.objectweb.speedo.generation.enhancer.pc.jdo

Source Code of org.objectweb.speedo.generation.enhancer.pc.jdo.JDOPersistentClassEnhancer

/**
* Copyright (C) 2001-2005 France Telecom R&D
*/
package org.objectweb.speedo.generation.enhancer.pc.jdo;

import org.objectweb.asm.ClassVisitor;
import org.objectweb.asm.ClassWriter;
import org.objectweb.speedo.generation.enhancer.pc.PersistentClassEnhancer;
import org.objectweb.speedo.lib.Personality;
import org.objectweb.speedo.metadata.SpeedoClass;
import org.objectweb.util.monolog.api.Logger;

import java.util.Map;

public class JDOPersistentClassEnhancer extends PersistentClassEnhancer {

  public JDOPersistentClassEnhancer() {
    super(Personality.JDO);
  }
 
    protected ClassVisitor getFirstVisitors(ClassWriter cw,
            Logger log,
            String classToWrite,
            Map ctx) {
        ClassVisitor current = super.getFirstVisitors(cw, log, classToWrite, ctx);
        final JDOImplRegistrationAdder regAdder = new JDOImplRegistrationAdder(current, classToWrite, log);
        regAdder.setGenerationAllowed(false);
        current = regAdder;
        ctx.put("regAdder", regAdder);
        return current;
    }
   
    protected ClassVisitor getParentVisitors(ClassVisitor current,
            Logger log,
            String classToWrite,
            SpeedoClass sc,
            Map ctx) {
        return super.getParentVisitors(
                new JDOPersistenceCapableAdder(current, log, sc, scp, Personality.JDO),
                log, classToWrite, sc, ctx);
    }
    protected ClassVisitor getVisitors(ClassVisitor current,
            Logger log,
            String classToWrite,
            SpeedoClass sc,
            Map ctx) {
        current = super.getVisitors(current, log, classToWrite, sc, ctx);
        ((JDOImplRegistrationAdder) ctx.get("regAdder")).setGenerationAllowed(true);
        return current;
    }   

}
TOP

Related Classes of org.objectweb.speedo.generation.enhancer.pc.jdo.JDOPersistentClassEnhancer

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.