/** * <p>Copyright: Copyright (c) 2012</p> * <p>Company: �������ӹɷ����޹�˾</p> */ package com.hundsun.ares.studio.jres.basicdata.ui.scriptwrap; import java.util.ArrayList; import java.util.List; import org.eclipse.emf.ecore.EAttribute; import org.eclipse.emf.ecore.EClass; import com.hundsun.ares.studio.core.IARESResource; import com.hundsun.ares.studio.core.model.JRESResourceInfo; import com.hundsun.ares.studio.core.service.DataServiceManager; import com.hundsun.ares.studio.jres.basicdata.constant.IBasicDataEpacakgeConstant; import com.hundsun.ares.studio.jres.basicdata.core.basicdata.BasicDataBaseModel; import com.hundsun.ares.studio.jres.basicdata.core.basicdata.MasterSlaveLinkTable; import com.hundsun.ares.studio.jres.basicdata.core.basicdata.MasterSlaveTable; import com.hundsun.ares.studio.jres.basicdata.core.basicdata.SingleTable; import com.hundsun.ares.studio.jres.basicdata.logic.epackage.BasicDataEpackageFactory; import com.hundsun.ares.studio.jres.basicdata.logic.util.BasicDataEpackageUtil; import com.hundsun.ares.studio.jres.metadata.service.IMetadataService; import com.hundsun.ares.studio.jres.script.api.metadata.IStandardFieldScriptWrap; import com.hundsun.ares.studio.jres.script.api.wrap.ISingleTableScriptWrap; import com.hundsun.ares.studio.jres.script.base.ResourceWrapBase; import com.hundsun.ares.studio.jres.script.tool.HistoryCommentHelper; /** * @author lvgao * */ public class SingleTableScriptWrapImpl extends ResourceWrapBase<BasicDataBaseModel> implements ISingleTableScriptWrap{ public SingleTableScriptWrapImpl(IARESResource resource){ super(resource); } @Override public IStandardFieldScriptWrap[] getMasterStandardFields() { List<IStandardFieldScriptWrap> tlist = new ArrayList<IStandardFieldScriptWrap>(); try { IMetadataService service = DataServiceManager.getInstance().getService(resource.getARESProject(), IMetadataService.class); EClass eClass = (EClass) getOriginalInfo().eClass().getEPackage().getEClassifier(IBasicDataEpacakgeConstant.MasterItem); for(EAttribute attr:BasicDataEpackageUtil.filterAttr(eClass)){ tlist.add(new BasicDataFieldScriptWrapImpl(service,attr ,resource )); } } catch (Exception e) { e.printStackTrace(); } return tlist.toArray(new IStandardFieldScriptWrap[0]); } @Override public String getMasterTableName() { try { Object define = (Object) BasicDataEpackageFactory.eINSTANCE.getDefine(resource); if (define instanceof SingleTable) { return ((SingleTable) define).getMaster(); }else if (define instanceof MasterSlaveTable) { return ((MasterSlaveTable) define).getMaster(); }else if (define instanceof MasterSlaveLinkTable) { return ((MasterSlaveLinkTable) define).getMaster(); } } catch (Exception e) { e.printStackTrace(); } return null; } /* (non-Javadoc) * @see com.hundsun.ares.studio.jres.basicdata.ui.scriptwrap.ISingleTableScriptWrap#getMasterAttrs() */ @Override public String[] getMasterAttrs() { try { EClass eClass = (EClass) getOriginalInfo().eClass().getEPackage().getEClassifier(IBasicDataEpacakgeConstant.MasterItem); List<String> tlist = new ArrayList<String>(); for(EAttribute attr:BasicDataEpackageUtil.filterAttr(eClass)){ tlist.add(attr.getName()); } return tlist.toArray(new String[0]); } catch (Exception e) { } return null; } @Override public String getModifyHistory(String commentMark) { try { return HistoryCommentHelper.getHistoryCommentForMetadata(resource.getInfo(JRESResourceInfo.class),commentMark); } catch (Exception e) { console.warn(String.format("������Դ[%s]�޸ļ�¼ע��ʧ��,��ϸ��Ϣ:%s", resource.getPath().toOSString(),e.getMessage())); } return ""; } @Override public Class getInfoClass() { return BasicDataBaseModel.class; } public String getFileName(){ return getOriginalInfo().getFile(); } }