/** * <p>Copyright: Copyright (c) 2013</p> * <p>Company: �������ӹɷ����޹�˾</p> */ package com.hundsun.ares.studio.logic.compiler.tokens; import java.util.List; import org.apache.commons.lang.StringUtils; import com.hundsun.ares.studio.engin.token.IParamDefineHelper; import com.hundsun.ares.studio.logic.LogicFunction; import com.hundsun.ares.studio.logic.compiler.util.LogicCompilerUtil; /** * @author qinyuan * */ public class LogicFunctionVariableDefineToken extends LogicServiceVariableDefineToken { /** * */ protected String getCommonParamsDefineCodeStr(List<String> popVarList,IParamDefineHelper defineHelper) { StringBuffer code = new StringBuffer(); String error_info_length = this.getStandardFieldParameterInfo("error_info").get("length"); String error_pathinfo_length = this.getStandardFieldParameterInfo("error_pathinfo").get("length"); code.append("int iReturnCode = 0;\r\n"); if(!LogicCompilerUtil.isParameterINLogicParameterByName(ls, "error_no",project)&& !popVarList.contains("error_no")&& defineHelper.canInit(IParamDefineHelper.STD, "error_no")){ code.append("int @error_no = 0;\r\n"); popVarList.add("error_no"); defineHelper.addInit(IParamDefineHelper.STD, "error_no"); } if(!LogicCompilerUtil.isParameterINLogicParameterByName(ls, "error_info",project)&& !popVarList.contains("error_info") && defineHelper.canInit(IParamDefineHelper.STD, "error_info")){ code.append("char @error_info["+(Integer.parseInt(error_info_length)+1)+"] = {0};\r\n");//��ʼ��Ҫ��1 defineHelper.addInit(IParamDefineHelper.STD, "error_info"); popVarList.add("error_info"); } if(!LogicCompilerUtil.isParameterINLogicParameterByName(ls, "error_pathinfo",project)&& !popVarList.contains("error_pathinfo")&& defineHelper.canInit(IParamDefineHelper.STD, "error_pathinfo")){ code.append("char @error_pathinfo["+(Integer.parseInt(error_pathinfo_length)+1)+"] = {0};\r\n");//��ʼ��Ҫ��1 code.append("hs_strncpy(@error_pathinfo,conversion((char *)lpInUnPacker->GetStr(\"error_pathinfo\")),"+error_pathinfo_length+");\r\n"); if(ls instanceof LogicFunction){ code.append("hs_strcat(v_error_pathinfo, "+"\"->"+ (StringUtils.isBlank(ls.getObjectId())?ls.getName():"F"+ls.getObjectId()) +"()\");\r\n"); }else{ code.append("hs_strcat(v_error_pathinfo, "+"\"F"+ (StringUtils.isBlank(ls.getObjectId())?ls.getName():ls.getObjectId()) +"()\");\r\n"); } defineHelper.addInit(IParamDefineHelper.STD, "error_pathinfo"); popVarList.add("error_pathinfo"); } if(!LogicCompilerUtil.isParameterINLogicParameterByName(ls, "branch_no",project)&& !popVarList.contains("branch_no") && defineHelper.canInit(IParamDefineHelper.STD, "branch_no")){ code.append("int @branch_no = lpInUnPacker->GetInt(\"branch_no\");\r\n"); popVarList.add("branch_no"); defineHelper.addInit(IParamDefineHelper.STD, "branch_no"); } if(!LogicCompilerUtil.isParameterINLogicParameterByName(ls, "sysnode_id",project)&& !popVarList.contains("sysnode_id")&& defineHelper.canInit(IParamDefineHelper.STD, "sysnode_id")){ code.append("int @sysnode_id = 0;\r\n"); popVarList.add("sysnode_id"); defineHelper.addInit(IParamDefineHelper.STD, "sysnode_id"); } if(!LogicCompilerUtil.isParameterINLogicParameterByName(ls, "subsys_id",project)&& !popVarList.contains("subsys_id")&& defineHelper.canInit(IParamDefineHelper.STD, "subsys_id")){ code.append("int @subsys_id = 0;\r\n"); popVarList.add("subsys_id"); defineHelper.addInit(IParamDefineHelper.STD, "subsys_id"); } if(!LogicCompilerUtil.isParameterINLogicParameterByName(ls, "timeout",project)&& !popVarList.contains("timeout")&& defineHelper.canInit(IParamDefineHelper.STD, "timeout")){ code.append("int @timeout = 0;\r\n"); popVarList.add("timeout"); defineHelper.addInit(IParamDefineHelper.STD, "timeout"); } if (!LogicCompilerUtil.isParameterINLogicParameterByName(ls, "error_id",project) && ls.getInterfaceFlag() != null && ls.getInterfaceFlag().toLowerCase().indexOf("g") != -1 && !popVarList.contains("error_id")&& defineHelper.canInit(IParamDefineHelper.STD, "error_id")){ code.append("int @error_id = 0;\r\n"); popVarList.add("error_id"); defineHelper.addInit(IParamDefineHelper.STD, "error_id"); } if(!LogicCompilerUtil.isParameterINLogicParameterByName(ls, "audit_action",project)&& !popVarList.contains("audit_action")&& defineHelper.canInit(IParamDefineHelper.STD, "audit_action")){ code.append("char p_audit_action = lpInUnPacker->GetChar(\"audit_action\");\r\n"); popVarList.add("audit_action"); defineHelper.addInit(IParamDefineHelper.STD, "audit_action"); } code.append("IF2PackSvr * lpPackService = lpContext->GetF2PackSvr();\r\n"); if(ls instanceof LogicFunction && ((LogicFunction)ls).isIsTransFunc()){ code.append("IAS2TM * lpTransMonitor = NULL; // ���������\r\n"); code.append("lpContext->QueryInterface(SID_TM,(IKnown **) &lpTransMonitor);\r\n"); code.append("char ls_cancel_serialno[65] = {0};\r\n"); } return code.toString(); } }