package com.hundsun.ares.studio.jres.service.ui.wizard;
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 com.hundsun.ares.studio.biz.BizPackage;
import com.hundsun.ares.studio.biz.constants.IBizResType;
import com.hundsun.ares.studio.biz.excel.handlers.InterfaceSheetHandler;
import com.hundsun.ares.studio.core.excel.Module;
import com.hundsun.ares.studio.core.excel.Resource;
import com.hundsun.ares.studio.jres.model.metadata.MetadataPackage;
import com.hundsun.ares.studio.jres.service.Service;
import com.hundsun.ares.studio.jres.service.ServiceFactory;
import com.hundsun.ares.studio.jres.service.ServicePackage;
public class ServiceSheetHandler extends InterfaceSheetHandler{
/** ת�Ƶ���Ӧ��PropertyHandlerFactory�� ---> ServiceHandlerFactory
static{
SERVICE_PROPERTY_HANDLERS.putAll(INTERFACE_PROPERTY_HANDLERS);
SERVICE_PROPERTY_HANDLERS.put("���ܺ�", new EMFPropertyHandler(CorePackage.Literals.BASIC_RESOURCE_INFO__OBJECT_ID));
SERVICE_PROPERTY_HANDLERS.put("������", EMFPropertyHandler.NAME_PROPERTY_HANDLER);
//2014-01-28 modified by zhuyf ���Ӣ�������������ӿڣ�ʱ�ĵ����д˸�ʽ��Ϣ��
SERVICE_PROPERTY_HANDLERS.put("Ӣ����", EMFPropertyHandler.NAME_PROPERTY_HANDLER);
SERVICE_PROPERTY_HANDLERS.put("����������", new EMFPropertyHandler(CorePackage.Literals.BASIC_RESOURCE_INFO__CHINESE_NAME));
SERVICE_PROPERTY_HANDLERS.put("��������", new EMFPropertyHandler(CorePackage.Literals.BASIC_RESOURCE_INFO__CHINESE_NAME));
//�����ڷ���ӿ� ����Ϊ������������
SERVICE_PROPERTY_HANDLERS.put("��������", new InOutCollectionPropertyHandler(BizPackage.Literals.BIZ_INTERFACE__INPUT_COLLECTION));
SERVICE_PROPERTY_HANDLERS.put("��������", new InOutCollectionPropertyHandler(BizPackage.Literals.BIZ_INTERFACE__OUTPUT_COLLECTION));
SERVICE_PROPERTY_HANDLERS.put("���������", new InOutCollectionPropertyHandler(BizPackage.Literals.BIZ_INTERFACE__OUTPUT_COLLECTION));
//�����Կ��� ��ɾ��ԭ��������
SERVICE_PROPERTY_HANDLERS.put("�����Ƿ�����", new InOutCollectionPropertyHandler(BizPackage.Literals.BIZ_INTERFACE__INPUT_COLLECTION));
SERVICE_PROPERTY_HANDLERS.put("����Ƿ�����", new InOutCollectionPropertyHandler(BizPackage.Literals.BIZ_INTERFACE__OUTPUT_COLLECTION));
SERVICE_PROPERTY_HANDLERS.put("�Ƿ�", NullPropertyHandler.INSTANCE);
SERVICE_PROPERTY_HANDLERS.put("�Ƿ�", NullPropertyHandler.INSTANCE);
SERVICE_PROPERTY_HANDLERS.put("��������", NullPropertyHandler.INSTANCE);
SERVICE_PROPERTY_HANDLERS.put("���˼���", NullPropertyHandler.INSTANCE);
SERVICE_PROPERTY_HANDLERS.put("ҵ��������", NullPropertyHandler.INSTANCE);
SERVICE_PARAM_PROPERTY_HANDLERS.putAll(PARAM_PROPERTY_HANDLERS);
SERVICE_PARAM_PROPERTY_HANDLERS.put("xml��ǩ", NullPropertyHandler.INSTANCE);
SERVICE_PARAM_PROPERTY_HANDLERS.put("XML��ǩ", NullPropertyHandler.INSTANCE);
}*/
private Service service;
@Override
public void startSheet(Sheet sheet) {
super.startSheet(sheet);
module = new Module();
String cName = null;
//���ķָ�����Ҳ֧��
String sheetName = StringUtils.replace(sheet.getSheetName(), "��", "-");
if (StringUtils.startsWith(sheetName, "����-")) {
cName = StringUtils.removeStart(sheetName, "����-");
} else if (StringUtils.startsWith(sheetName, "���ܽӿڶ���-")) {
cName = StringUtils.removeStart(sheetName, "���ܽӿڶ���-");
} else {
cName = sheetName;
}
module.cName = cName;
}
@Override
public void startArea(String startTag) {
super.startArea(startTag);
if (StringUtils.equals(startTag, "�����") || StringUtils.equals(startTag, "���ܺ�"))
service = ServiceFactory.eINSTANCE.createService();
}
@Override
protected EObject getOwner() {
if (isInterfacePropertyes() || isErrorInfoBlock()) {
return service.getInterface();
}
return service;
}
protected EClass getEClass() {
if (isInterfacePropertyes()) {
return BizPackage.Literals.PARAMETER;
} else if (isErrorInfoBlock()) {
return BizPackage.Literals.ERROR_INFO;
}
return ServicePackage.Literals.SERVICE;
}
protected boolean isInterfacePropertyes() {
boolean isInputOuputCollection = StringUtils.equals(parser.getCurrentBlockTag(), "��������")
|| StringUtils.equals(parser.getCurrentBlockTag(), "��������")
|| StringUtils.equals(parser.getCurrentBlockTag(), "�����Ƿ�����")
|| StringUtils.equals(parser.getCurrentBlockTag(), "����Ƿ�����");
return isInputOuputCollection || isInputParmaBlock() || isOutputParmaBlock();
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.biz.excel.ISheetHandler#endArea()
*/
public void endArea() {
super.endArea();
if (service != null) {
Resource resource = new Resource();
resource.info = service;
resource.name = service.getName();
resource.type = IBizResType.Service;
resourceFound(resource);
}
}
}