/** * <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.service.DataServiceManager; import com.hundsun.ares.studio.jres.basicdata.constant.IBasicDataEpacakgeConstant; import com.hundsun.ares.studio.jres.basicdata.core.basicdata.MasterSlaveLinkTable; import com.hundsun.ares.studio.jres.basicdata.core.basicdata.PackageDefine; 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.core.script.impl.StandardFieldScriptWrapImpl; import com.hundsun.ares.studio.jres.metadata.service.IMetadataService; import com.hundsun.ares.studio.jres.metadata.service.IStandardField; import com.hundsun.ares.studio.jres.script.api.metadata.IStandardFieldScriptWrap; import com.hundsun.ares.studio.jres.script.api.wrap.IMasterSlaveLinkTableScriptWrap; /** * @author lvgao * */ public class MasterSlaveLinkTableScriptWrapImpl extends MasterSlaveTableScriptWrapImpl implements IMasterSlaveLinkTableScriptWrap{ public MasterSlaveLinkTableScriptWrapImpl(IARESResource resource) { super(resource); } @Override public IStandardFieldScriptWrap[] getLinkStandardFields() { List<IStandardFieldScriptWrap> tlist = new ArrayList<IStandardFieldScriptWrap>(); try { IMetadataService service = DataServiceManager.getInstance().getService(resource.getARESProject(), IMetadataService.class); EClass eClass = (EClass) getOriginalInfo().eClass().getEPackage().getEClassifier(IBasicDataEpacakgeConstant.InfoItem); for(EAttribute attr:BasicDataEpackageUtil.filterAttr(eClass)){ IStandardField item = service.getStandardField(attr.getName()); if(null == item){ console.info(String.format("��Դ%s�����ı�׼�ֶ�%sû�ҵ���", resource.getName(),attr.getName())); }else{ tlist.add(new StandardFieldScriptWrapImpl(item ,resource)); } } } catch (Exception e) { e.printStackTrace(); } return tlist.toArray(new IStandardFieldScriptWrap[0]); } @Override public String[] getLinkAttrs() { try { EClass eClass = (EClass) getOriginalInfo().eClass().getEPackage().getEClassifier(IBasicDataEpacakgeConstant.InfoItem); 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 getLinkTableName() { try { PackageDefine define = BasicDataEpackageFactory.eINSTANCE.getDefine(resource); if (define instanceof MasterSlaveLinkTable) { return ((MasterSlaveLinkTable) define).getLink(); } } catch (Exception e) { e.printStackTrace(); } return null; } }