package com.ycsoft.business.commons.abstracts; import com.ycsoft.beans.system.SOptr; import com.ycsoft.business.commons.pojo.BusiParameter; import com.ycsoft.business.commons.pojo.IParameter; import com.ycsoft.business.commons.pojo.Parameter; import com.ycsoft.business.component.core.DoneCodeComponent; import com.ycsoft.business.dto.config.ExtAttrFormDto; import com.ycsoft.commons.exception.ErrorCode; import com.ycsoft.commons.exception.ServicesException; /** * * <b>Service 基类定义</b> * <ul> * <li>提供系统通用的功能</li> * <li>用于以后更容易扩展。</li> * <ul> * @author hh * @date Dec 30, 2009 10:10:56 AM */ abstract public class BaseService implements IBaseService { private static ThreadLocal<Parameter> param = new ThreadLocal<Parameter>(); @Override public void finalize() { param.remove(); } protected DoneCodeComponent doneCodeComponent; public static SOptr getOptr() throws ServicesException{ Parameter parameter = param.get(); if (parameter==null) throw new ServicesException(ErrorCode.SystemNoOptr); return parameter.getOptr(); } public void setParam( IParameter p){ param.set((Parameter)p); } /** * 获取参数对象,将该参数强制转换为<code>BusiParameter</code> * 一般单个业务应当使用此函数 * @see BusiParameter */ protected BusiParameter getBusiParam(){ if(null == param) return null; return (BusiParameter)param.get(); } /** * 设置扩展表必要的信息 * @param extTable * @param pkColumn * @param pkValue */ protected void setExtAttrInfo(String extTable , String pkColumn ,String pkValue){ ExtAttrFormDto dto = getBusiParam().getExtAttrForm(); if( dto == null) dto = new ExtAttrFormDto(); dto.setExtendTable(extTable); dto.setPkColumn(pkColumn); dto.setPkValue(pkValue); getBusiParam().setExtAttrForm(dto); } public IParameter getParam() { return param.get(); } public void setDoneCodeComponent(DoneCodeComponent doneCodeComponent) { this.doneCodeComponent = doneCodeComponent; } }