Package org.springmodules.prevayler

Source Code of org.springmodules.prevayler.SimpleSession

package org.springmodules.prevayler;

import org.apache.log4j.Logger;
import org.prevayler.Prevayler;
import org.springmodules.prevayler.callback.PrevaylerCallback;
import org.springmodules.prevayler.configuration.PrevaylerConfiguration;
import org.springmodules.prevayler.support.PrevaylerTransactionException;
import org.springmodules.prevayler.system.PrevalentSystem;
import org.springmodules.prevayler.system.callback.SystemCallback;
import org.springmodules.prevayler.transaction.TransactionCommand;

/**
* {@link SimplePersistenceManager} {@link Session} implementation.
* @author Sergio Bossa
*/
public class SimpleSession implements Session {
   
    private static final Logger logger = Logger.getLogger(SimpleSession.class);
   
    private PrevaylerConfiguration configuration;
   
    public SimpleSession(PrevaylerConfiguration configuration) {
        this.configuration = configuration;
    }
   
    public Object execute(PrevaylerCallback callback) {
        logger.debug("Executing callback into Prevayler.");
        try {
            Prevayler prevayler = this.configuration.getPrevaylerInstance();
            return prevayler.execute(new TransactionCommand(callback));
        } catch (Exception ex) {
            throw new PrevaylerTransactionException("Error while executing callback.", ex);
        }
    }
   
    public Object execute(SystemCallback callback) {
        logger.debug("Executing callback into prevalent system.");
        PrevalentSystem localSystem = (PrevalentSystem) this.configuration.getPrevaylerInstance().prevalentSystem();
        return localSystem.execute(callback);
    }
   
    public void flush(Prevayler prevayler) {
        // Do nothing: all operations are suddenly committed.
    }
}
TOP

Related Classes of org.springmodules.prevayler.SimpleSession

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.