package com.jqmobile.core.server.service;
import java.sql.Connection;
import java.util.Hashtable;
/**
* Manager层辅助工具类
* @author MODI
*
* @project com.jiuqi.mobile.core
* @date 2013年11月15日
*/
public abstract class ServiceUtil {
protected static final Hashtable<Long, ServiceUtil> utils = new Hashtable<Long, ServiceUtil>();
public final static ServiceUtil getInstance(){
return utils.get(Thread.currentThread().getId());
}
//
private IServiceUtilAction preAction,finishAction,succeedAction;
private IServiceUtilExceptionAction exceptionAction;
/**
* 获得当前数据库连接对象
* @return
*/
public abstract Connection getConnection();
/**
* 在方法执行前添加回调(方法之前)
* void
*/
public void setOnPreAction(IServiceUtilAction action){
this.preAction = action;
}
/**
* 在方法执行完成后添加回调(无论是否异常,都执行回调)
* void
*/
public void setOnFinishAction(IServiceUtilAction action){
this.finishAction = action;
}
/**
* 在方法异常时添加回调(出现异常时回调)
* void
*/
public void setOnExceptionAction(IServiceUtilExceptionAction action){
this.exceptionAction = action;
}
/**
* 在方法执行成功后回调(如果出现异常,不执行此方法)
* void
*/
public void setOnSucceedAction(IServiceUtilAction action){
this.succeedAction = action;
}
protected IServiceUtilExceptionAction getExceptionAction() {
return exceptionAction;
}
protected IServiceUtilAction getFinishAction() {
return finishAction;
}
protected IServiceUtilAction getPreAction() {
return preAction;
}
protected IServiceUtilAction getSucceedAction() {
return succeedAction;
}
//
/**
* <p>service基础回调action</p>
*
* <p>Copyright: 版权所有 (c) 2002 - 2015<br>
* Company: 久其</p>
*
* @author modi
* @version 2014年3月18日
*/
public interface IServiceUtilAction{
void action();
}
/**
* <p>service异常回调action</p>
*
* <p>Copyright: 版权所有 (c) 2002 - 2015<br>
* Company: 久其</p>
*
* @author modi
* @version 2014年3月18日
*/
public interface IServiceUtilExceptionAction{
void action(Throwable e);
}
}