localserviceimpl.java

来自「一个应用服务类」· Java 代码 · 共 167 行

JAVA
167
字号
package cn.com.chhd.fw.svc;

import java.util.HashMap;

import org.apache.log4j.Logger;

import cn.com.chhd.fw.open.IService;
import cn.com.chhd.fw.open.ServiceException;
import cn.com.chhd.fw.open.ServiceSession;

/**
 * 应用服务接口实现.
 * <p>
 * Copyright: Copyright (c)2006 ShHTL
 * </p>
 * 
 * @author Hemingrui
 * @version 1.0 $History: $
 * 
 */
public class LocalServiceImpl implements IService {

    private ServiceContext context = null;

    /**
     * 操作会话认证
     * 
     * @param session
     */
    public boolean authentication(ServiceSession session) throws Exception {
        context = new ServiceContext();
        context.setSession(session);
        return context.isPassed;
    }

    private void checkSession() throws Exception {
        if (null == context || !context.isPassed) {
            throw new ServiceException("100102");
        }
    }

    /**
     * 查询应用
     * 
     * @param id
     * @param obj
     * @return
     * @throws Exception
     */
    public Object load(String id) throws Exception {
        checkSession();

        LocalService infoSvc = ServicesHolder.findSvc(id);
        infoSvc.proTreat(context);
        return infoSvc.query();
    }

    /**
     * 查询应用
     * 
     * @param id
     * @param obj
     * @return
     * @throws Exception
     */
    public Object load(String id, Object obj) throws Exception {
        checkSession();

        LocalService infoSvc = ServicesHolder.findSvc(id);
        infoSvc.proTreat(context);
        return infoSvc.query(obj);
    }

    /**
     * 新添应用
     * 
     * @param id
     * @param obj
     * @throws Exception
     */
    public void add(String id, Object obj) throws Exception {
        checkSession();

        LocalService infoSvc = ServicesHolder.findSvc(id);
        infoSvc.proTreat(context);
        infoSvc.insert(obj);
    }

    /**
     * 修改应用
     * 
     * @param id
     * @param obj
     * @throws Exception
     */
    public void modify(String id, Object obj) throws Exception {
        checkSession();

        LocalService infoSvc = ServicesHolder.findSvc(id);
        infoSvc.proTreat(context);
        infoSvc.update(obj);
    }

    /**
     * 删除应用
     * 
     * @param id
     * @param obj
     * @throws Exception
     */
    public void remove(String id, Object obj) throws Exception {
        checkSession();

        LocalService infoSvc = ServicesHolder.findSvc(id);
        infoSvc.proTreat(context);
        infoSvc.delete(obj);
    }

    /**
     * 执行指定操作.
     * 
     * @param id
     * @param obj
     * @return
     * @throws Exception
     */
    public Object execute(String id, Object obj) throws Exception {
        checkSession();

        LocalService infoSvc = ServicesHolder.findSvc(id);
        infoSvc.proTreat(context);
        return infoSvc.execute(obj);
    }
}

/**
 * 
 * @author hemingrui
 *
 */
class ServicesHolder{
    public static HashMap<String, LocalService> _svcDicts = new HashMap<String, LocalService>();
    static Logger logger = Logger.getLogger(ServicesHolder.class);
    
    /**
     * 查询服务.
     * @param id
     * @return
     * @throws ServiceException
     */
    public static LocalService findSvc(String id) throws ServiceException{
        if(_svcDicts.containsKey(id)){
            return (LocalService)_svcDicts.get(id);
        }else{
            try{
                LocalService svc = (LocalService) Class.forName(id).newInstance();
                _svcDicts.put(id, svc);
                return svc;
            }catch(Exception ex){
                logger.error("没有找到服务类:" + id);
                throw new ServiceException("100104");
            }
        }
    }
    
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?