/**
* <p>Copyright: Copyright (c) 2013</p>
* <p>Company: �������ӹɷ�����˾</p>
*/
package com.hundsun.ares.studio.atom.compiler.token.service;
import java.util.Map;
import java.util.Set;
import org.apache.commons.lang.StringUtils;
import com.hundsun.ares.studio.atom.AtomService;
import com.hundsun.ares.studio.atom.compiler.constant.IAtomEngineContextConstant;
import com.hundsun.ares.studio.atom.compiler.token.function.FunctionEndToken;
import com.hundsun.ares.studio.engin.skeleton.ISkeletonAttributeHelper;
import com.hundsun.ares.studio.engin.token.ICodeToken;
/**
* @author zhuyf
*
*/
public class ServiceEndToken implements ICodeToken {
/* (non-Javadoc)
* @see com.hundsun.ares.studio.engin.token.ICodeToken#getContent()
*/
@Override
public String getContent() {
// TODO Auto-generated method stub
return null;
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.engin.token.ICodeToken#getType()
*/
@Override
public int getType() {
// TODO Auto-generated method stub
return 0;
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.engin.token.ICodeToken#genCode(java.util.Map)
*/
@Override
public String genCode(Map<Object, Object> context) throws Exception {
/*
* goto svr_end;
svr_end:
if (iReturnCode == OK_SUCCESS || iReturnCode == ERR_SYSWARNING)
{
lpOutPacker->AddField("init_date");
lpOutPacker->AddField("log_serial_no");
lpOutPacker->AddInt(p_init_date); //init_date
lpOutPacker->AddInt(p_log_serial_no); //log_serial_no
}
else
{
GetErrorInfo(lpContext, v_error_no, v_error_info);
SystemErrorPacker(lpOutPacker,v_error_pathinfo,v_error_no,v_error_info);
WriteSystemLog(lpContext,v_error_pathinfo,v_error_no,v_error_info,v_error_id,v_error_sysinfo);
}
[lpFuncInPacker�ͷ�]
[lpOut�ͷ�]
[lpSP�ͷ�]
[pack�����ͷ�]
if (lpConn)//��ʹ�õ����ݿ�������б��к����������0ʱ�����ͷ�
lpConn->toFree();//��ʹ�õ����ݿ�������б��к����������0ʱ�����ͷ�
return iReturnCode;
}
*/
Object obj = context.get(IAtomEngineContextConstant.ResourceModel);
if(obj != null && obj instanceof AtomService){
ISkeletonAttributeHelper helper = (ISkeletonAttributeHelper)context.get(IAtomEngineContextConstant.SKELETON_ATTRIBUTE_HELPER);
Set<String> dbConns =helper.getAttribute(IAtomEngineContextConstant.ATTR_DATABASE_CONN_VARIABLE_LIST);
if(dbConns.size()>0){
return FunctionEndToken.genEndCodes(context,FREE_CONN_SERVICE);
}else{
return FunctionEndToken.genEndCodes(context,"");
}
}
return StringUtils.EMPTY;
}
private final static String FREE_CONN_SERVICE = "if (lpConn)\r\n"
+"lpConn->toFree();\r\n";
}