/** * */ package com.hundsun.ares.studio.usermacro.compiler.handlers; import java.util.Map; import org.apache.commons.lang.StringUtils; import com.hundsun.ares.studio.jres.metadata.constant.IMetadataRefType; import com.hundsun.ares.studio.jres.model.metadata.ErrorNoItem; import com.hundsun.ares.studio.model.reference.ReferenceInfo; import com.hundsun.ares.studio.reference.ReferenceManager; /** * E��Ǵ���E��ǵ���ϢΪ����ŵij������壩����E����滻�ɴ���� * * @author yanwj06282 * */ public class FlagEHelper implements IUserMacroFlagHelper { @Override public String genFlag(UserMacroToken token ,Map<Object, Object> context ,String content) { //ȡ�î��������±�λ�����磺<E>%1$s������Ҫȡ������ġ�1������ʾ��ǰ�ı����ǵ�һλ int index = Integer.parseInt(StringUtils.substring(content, StringUtils.indexOfIgnoreCase(content, "<E>")+4, StringUtils.indexOfIgnoreCase(content, "<E>")+5)); if(index<=token.getUmParams().length){ String errorName = token.getUmParams()[index-1]; ReferenceInfo info = ReferenceManager.getInstance().getFirstReferenceInfo(token.getProject(), IMetadataRefType.ErrNo, errorName, true); if (info != null && info.getObject() != null) { ErrorNoItem noItem = (ErrorNoItem) info.getObject(); if (noItem != null) { errorName = noItem.getNo(); } } if (!StringUtils.equals(token.getUmParams()[index-1], errorName)) { token.getUmParams()[index-1] = errorName; } }else{ throw new RuntimeException("�Զ���꣺["+token.getItem().getName()+"] ,������Ϣ��ƥ��!"); } content = content.substring(0, StringUtils.indexOfIgnoreCase(content, "<E>")) + content.substring(StringUtils.indexOfIgnoreCase(content, "<E>")+3, content.length()); return content; } }