/**
* <p>Copyright: Copyright (c) 2013</p>
* <p>Company: �������ӹɷ�����˾</p>
*/
package com.hundsun.ares.studio.logic.compiler.util;
import java.util.Stack;
import org.apache.commons.lang.StringUtils;
import com.hundsun.ares.studio.core.IARESModule;
import com.hundsun.ares.studio.core.IARESResource;
import com.hundsun.ares.studio.core.model.ModuleProperty;
import com.hundsun.ares.studio.cres.extend.core.constants.ICresExtendConstants;
import com.hundsun.ares.studio.cres.extend.cresextend.CresMoudleExtendProperty;
/**
* @author liaogc
*
*/
public class ModulePropertyHelper {
/**
* ��ȡģ������
* @param module
* @return
* @throws Exception
*/
public static ModuleProperty getModuleProperty(IARESModule module) throws Exception{
IARESResource res = module.getARESResource(IARESModule.MODULE_PROPERTY_FILE);
return res.getInfo(ModuleProperty.class);
}
/**
* ��ȡģ���е�CRES����ҳ��SubSysID
* ������������ݿ⣬���׳��쳣
*
* @param resName
* @param type
* @return
*/
public static String getCRESModuleSubSysId(IARESModule aresModule) {
if (aresModule != null) {
try {
Stack<IARESModule> stack = new Stack<IARESModule>();
stack.push(aresModule);
while (!stack.isEmpty()) {
IARESModule module = stack.pop();
IARESResource mr = module.getARESResource(IARESModule.MODULE_PROPERTY_FILE);
ModuleProperty mp = mr.getInfo(ModuleProperty.class);
Object mProperty = mp.getMap().get(ICresExtendConstants.CRES_EXTEND_MOUDLE_PROPERTY);
if (mProperty instanceof CresMoudleExtendProperty && StringUtils.isNotBlank(((CresMoudleExtendProperty) mProperty).getSubSysID())) {
return ((CresMoudleExtendProperty) mProperty).getSubSysID();
} else if (module.getParentModule() instanceof IARESModule) {
stack.push((IARESModule) module.getParentModule());
}
//break;
}
} catch (Exception e) {
e.printStackTrace();
}
}
return StringUtils.EMPTY;
}
}