/**
* <p>Copyright: Copyright (c) 2013</p>
* <p>Company: �������ӹɷ�����˾</p>
*/
package com.hundsun.ares.studio.logic.ui.util;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.emf.common.util.EList;
import com.hundsun.ares.studio.atom.AtomFunction;
import com.hundsun.ares.studio.atom.AtomService;
import com.hundsun.ares.studio.atom.constants.IAtomResType;
import com.hundsun.ares.studio.core.IARESModule;
import com.hundsun.ares.studio.core.IARESResource;
import com.hundsun.ares.studio.core.model.RevisionHistory;
import com.hundsun.ares.studio.cres.extend.ui.module.gencode.util.ModuleGeneratorHelper;
import com.hundsun.ares.studio.logic.LogicFunction;
import com.hundsun.ares.studio.logic.LogicService;
import com.hundsun.ares.studio.logic.constants.ILogicResType;
/**
* @author qinyuan
*
*/
public class LogicModuleGeneratorHelper extends ModuleGeneratorHelper{
/**
* ��ȡ��ģ����������¼
* @param module
* @param project
* @return
* @throws Exception
*/
public static String getLogicModuleLastVersion(IARESModule module) throws Exception{
List<RevisionHistory> hiss = getLogicModuleHistorys(module);
if(hiss.size() > 0) {
return hiss.get(0).getVersion();
}
return module.getARESProject().getProjectProperty().getVersion();
}
/**
* ��ȡ��ģ���������ļ�¼
* �����������ļ�¼���������ļ�¼��ģ���ļ�¼
* @param module
* @return
* @throws Exception
*/
public static List<RevisionHistory> getLogicModuleHistorys(IARESModule module) throws Exception{
List<RevisionHistory> hiss = new ArrayList<RevisionHistory>();//ģ�������е��ļ�¼
IARESResource[] lss = module.getARESResources(ILogicResType.LOGIC_SERVICE);
for (IARESResource ls : lss) {
EList<RevisionHistory> his = ls.getInfo(LogicService.class).getHistories();//�������ļ�¼
hiss.addAll(his);
}
IARESResource[] lfs = module.getARESResources(ILogicResType.LOGIC_FUNCTION);
for (IARESResource lf : lfs) {
EList<RevisionHistory> his = lf.getInfo(LogicFunction.class).getHistories();//�������ļ�¼
hiss.addAll(his);
}
hiss.addAll(getModuleHistorys(module));//ģ���ļ�¼
sortHistoryByVersion(hiss);//����
return hiss;
}
}