/** * <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.MasterSlaveTable; 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.service.IMetadataService; import com.hundsun.ares.studio.jres.script.api.metadata.IStandardFieldScriptWrap; import com.hundsun.ares.studio.jres.script.api.wrap.IMasterSlaveTableScriptWrap; /** * @author lvgao * */ public class MasterSlaveTableScriptWrapImpl extends SingleTableScriptWrapImpl implements IMasterSlaveTableScriptWrap{ public MasterSlaveTableScriptWrapImpl(IARESResource resource) { super(resource); } @Override public IStandardFieldScriptWrap[] getSlaveStandardFields() { List<IStandardFieldScriptWrap> tlist = new ArrayList<IStandardFieldScriptWrap>(); try { IMetadataService service = DataServiceManager.getInstance().getService(resource.getARESProject(), IMetadataService.class); EClass eClass = (EClass) getOriginalInfo().eClass().getEPackage().getEClassifier(IBasicDataEpacakgeConstant.SlaveItem); 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[] getSlaveAttrs() { try { EClass eClass = (EClass) getOriginalInfo().eClass().getEPackage().getEClassifier(IBasicDataEpacakgeConstant.SlaveItem); 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 getSlaveTableName() { try { PackageDefine define = BasicDataEpackageFactory.eINSTANCE.getDefine(resource); if (define instanceof MasterSlaveTable) { return ((MasterSlaveTable) define).getSlave(); }else if (define instanceof MasterSlaveLinkTable) { return ((MasterSlaveLinkTable) define).getSlave(); } } catch (Exception e) { e.printStackTrace(); } return null; } }