/** * Դ�������ƣ�HisSheetHandler.java * �������Ȩ���������ӹɷ����޹�˾ ��Ȩ���� * ϵͳ���ƣ�ARES Studio * ģ�����ƣ�com.hundsun.ares.studio.core * ����˵����$desc * ����ĵ��� * ���ߣ�sundl */ package com.hundsun.ares.studio.core.excel; import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.apache.commons.lang.StringUtils; import org.apache.poi.ss.usermodel.Sheet; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EStructuralFeature; import com.hundsun.ares.studio.core.excel.handler.EMFSheetHandler; import com.hundsun.ares.studio.core.model.CoreFactory; import com.hundsun.ares.studio.core.model.CorePackage; import com.hundsun.ares.studio.core.model.JRESResourceInfo; import com.hundsun.ares.studio.core.model.RevisionHistory; import com.hundsun.ares.studio.core.model.extendable.ExtensibleModelUtil; /** * ר�����ڴ����汾ҳ�����޸ļ�¼ * @author sundl */ public class HisSheetHandler extends EMFSheetHandler { // ������ʽ��ͨ��ƥ�䡰�޸Ķ�����һ�е�ֵ���жϾ�����޸Ķ���� private static final Pattern PATTERN = Pattern.compile("\\w*\\d+"); JRESResourceInfo info; @Override public void startSheet(Sheet sheet) { super.startSheet(sheet); info = CoreFactory.eINSTANCE.createJRESResourceInfo(); } /* (non-Javadoc) * @see com.hundsun.ares.studio.core.excel.handler.EMFSheetHandler#getOwner() */ @Override protected EObject getOwner() { return info; } /* (non-Javadoc) * @see com.hundsun.ares.studio.core.excel.handler.EMFSheetHandler#getTableFeature() */ @Override protected EStructuralFeature getTableFeature() { return CorePackage.Literals.JRES_RESOURCE_INFO__HISTORIES; } /* (non-Javadoc) * @see com.hundsun.ares.studio.core.excel.handler.EMFSheetHandler#getEClass() */ @Override protected EClass getEClass() { if (parser.getCurrentBlockTag().equals("�޸İ汾")) { return CorePackage.Literals.REVISION_HISTORY; } return null; } @Override public void endBlock() { super.endBlock(); for (RevisionHistory his : info.getHistories()) { String objects = ExtensibleModelUtil.getUserExtendedProperty(his, "objects"); if (StringUtils.isEmpty(objects)) { log.error(String.format("�޸ļ�¼%s�޸Ķ���Ϊ��!", his.getVersion()), generateLocation()); continue; } Matcher matcher = PATTERN.matcher(objects); List<String> objlList = new ArrayList<String>(); while (matcher.find()) { objlList.add(matcher.group()); } if (objects.contains("-") || objects.contains("~") || objlList.isEmpty()) { parser.exlParser.histories.put("ȫ��", his); } else { for (String obj : objlList) { parser.exlParser.histories.put(obj, his); } } } } }