package com.hundsun.ares.studio.logic.excel; import java.util.HashMap; import java.util.Map; import org.apache.commons.lang.StringUtils; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.ss.usermodel.Sheet; import org.eclipse.emf.ecore.EStructuralFeature; import com.hundsun.ares.studio.atom.AtomPackage; import com.hundsun.ares.studio.biz.excel.handlers.InterfaceSheetHandler; import com.hundsun.ares.studio.core.excel.Module; import com.hundsun.ares.studio.core.excel.handler.IPropertyHandler; public abstract class LogicSheetHandler extends InterfaceSheetHandler{ /** �������Դ����Ӧ�б� */ public static Map<String, IPropertyHandler> VAR_PROPERTY_HANDLERS = new HashMap<String, IPropertyHandler>(); public static Map<String, IPropertyHandler> LOGIC_CODE_PROPERTY_HANDLERS = new HashMap<String, IPropertyHandler>(); /** �ƶ�����Ӧ��PropertyHandlerFactory�� --> LogicPropertyHandlerFactory, VarPropertyHandlerFactory static { LOGIC_PROPERTY_HANDLERS.putAll(INTERFACE_PROPERTY_HANDLERS); LOGIC_PROPERTY_HANDLERS.put("�������ݿ�", NullPropertyHandler.INSTANCE); LOGIC_PROPERTY_HANDLERS.put("������", NullPropertyHandler.INSTANCE); LOGIC_PROPERTY_HANDLERS.put("�Ƿ񸴺�", NullPropertyHandler.INSTANCE); LOGIC_PROPERTY_HANDLERS.put("��������", NullPropertyHandler.INSTANCE); LOGIC_PROPERTY_HANDLERS.put("���˼���", NullPropertyHandler.INSTANCE); // �ڲ����� VAR_PROPERTY_HANDLERS.put("����", new EMFPropertyHandler(BizPackage.Literals.PARAMETER__FLAGS)); VAR_PROPERTY_HANDLERS.put("������", new EMFPropertyHandler(BizPackage.Literals.PARAMETER__ID)); VAR_PROPERTY_HANDLERS.put("����", new EMFPropertyHandler(BizPackage.Literals.PARAMETER__TYPE)); VAR_PROPERTY_HANDLERS.put("˵��", new EMFPropertyHandler(BizPackage.Literals.PARAMETER__NAME)); VAR_PROPERTY_HANDLERS.put("ȱʡֵ", NullPropertyHandler.INSTANCE); VAR_PROPERTY_HANDLERS.put("����", NullPropertyHandler.INSTANCE); LOGIC_CODE_PROPERTY_HANDLERS.put("ҵ��������", new EMFPropertyHandler(AtomPackage.Literals.ATOM_FUNCTION__PSEUDO_CODE)); LOGIC_CODE_PROPERTY_HANDLERS.put("����˵��", NullPropertyHandler.INSTANCE); } /* (non-Javadoc) * @see com.hundsun.ares.studio.biz.excel.handlers.AbstractSheetHandler#startSheet(org.apache.poi.hssf.usermodel.HSSFSheet) */ @Override public void startSheet(Sheet sheet) { super.startSheet(sheet); module = new Module(); //���ķָ�����Ҳ֧�� String sheetName = StringUtils.replace(sheet.getSheetName(), "��", "-"); String cName = StringUtils.removeStart(sheetName, "�߼�����-"); cName = StringUtils.removeStart(cName, "�߼�����-"); module.cName = cName; } /* (non-Javadoc) * @see com.hundsun.ares.studio.biz.excel.handlers.AbstractSheetHandler#endSheet() */ @Override public void endSheet() { super.endSheet(); } @Override protected EStructuralFeature getTableFeature() { if (isVarBlock()) { return AtomPackage.Literals.ATOM_FUNCTION__INTERNAL_VARIABLES; } return super.getTableFeature(); } protected boolean isVarBlock() { return StringUtils.equals(parser.getCurrentBlockTag(), "����"); } protected boolean isTextBlock() { return StringUtils.equals(parser.getCurrentBlockTag(), "ҵ��������"); } }