/** * <p>Copyright: Copyright (c) 2012</p> * <p>Company: �������ӹɷ����޹�˾</p> */ package com.hundsun.ares.studio.jres.script.util.impl; import java.util.ArrayList; import java.util.List; import java.util.Map; import org.apache.commons.lang.StringUtils; import org.eclipse.core.resources.IFolder; import com.hundsun.ares.studio.core.ARESModelException; import com.hundsun.ares.studio.core.IARESElement; import com.hundsun.ares.studio.core.IARESModule; import com.hundsun.ares.studio.core.IARESModuleRoot; import com.hundsun.ares.studio.core.IARESProject; import com.hundsun.ares.studio.core.util.ARESElementUtil; import com.hundsun.ares.studio.jres.script.api.biz.IBizObjectWrap; import com.hundsun.ares.studio.jres.script.api.biz.IBizScriptWrap; import com.hundsun.ares.studio.jres.script.api.biz.IBizServiceWrap; import com.hundsun.ares.studio.jres.script.api.biz.IObjScriptWrap; import com.hundsun.ares.studio.jres.script.api.biz.cres.ILogicFunctionWrap; import com.hundsun.ares.studio.jres.script.api.biz.cres.ILogicServiceWrap; import com.hundsun.ares.studio.jres.script.api.biz.cres.IProcedureWrap; import com.hundsun.ares.studio.jres.script.api.database.IDatabaseUserScriptWrap; import com.hundsun.ares.studio.jres.script.api.database.ISequenceScriptWrap; import com.hundsun.ares.studio.jres.script.api.database.ITableScriptWrap; import com.hundsun.ares.studio.jres.script.api.database.ITableSpaceScriptWrap; import com.hundsun.ares.studio.jres.script.api.database.ITriggerScriptWrap; import com.hundsun.ares.studio.jres.script.api.database.IViewScriptWrap; import com.hundsun.ares.studio.jres.script.api.factory.IScriptPoxyFactory; import com.hundsun.ares.studio.jres.script.api.wrap.IARESModuleRootWrap; import com.hundsun.ares.studio.jres.script.api.wrap.IARESModuleWrap; import com.hundsun.ares.studio.jres.script.api.wrap.IARESProjectScriptWrap; import com.hundsun.ares.studio.jres.script.api.wrap.IBasicdataScriptWrap; import com.hundsun.ares.studio.jres.script.api.wrap.IBusinessResScriptWrap; import com.hundsun.ares.studio.jres.script.api.wrap.IBusinessScriptWrap; import com.hundsun.ares.studio.jres.script.api.wrap.IDatabaseResScriptWrap; import com.hundsun.ares.studio.jres.script.api.wrap.IDatabaseScriptWrap; import com.hundsun.ares.studio.jres.script.api.wrap.IGenCode4UFTScriptWrap; import com.hundsun.ares.studio.jres.script.api.wrap.IGenCodeScriptWrap; import com.hundsun.ares.studio.jres.script.api.wrap.ILogicScriptWrap; import com.hundsun.ares.studio.jres.script.api.wrap.IMasterSlaveLinkTableScriptWrap; import com.hundsun.ares.studio.jres.script.api.wrap.IMasterSlaveTableScriptWrap; import com.hundsun.ares.studio.jres.script.api.wrap.IMetadataResScriptWrap; import com.hundsun.ares.studio.jres.script.api.wrap.IMetadataScriptWrap; import com.hundsun.ares.studio.jres.script.api.wrap.IProcedureScriptWrap; import com.hundsun.ares.studio.jres.script.api.wrap.IScriptCallScriptWarp; import com.hundsun.ares.studio.jres.script.api.wrap.IScriptCmdBuilderWarp; import com.hundsun.ares.studio.jres.script.api.wrap.ISingleTableScriptWrap; import com.hundsun.ares.studio.jres.script.api.wrap.ITableRevHistoryScriptWrap; import com.hundsun.ares.studio.jres.script.util.IJRESScript; import com.hundsun.ares.studio.jres.script.wrap.ModelScriptWrapManager; /** * @author lvgao * */ public class ARESProjectScriptWrapImpl implements IARESProjectScriptWrap,IJRESScript{ IARESProject project; private IBizScriptWrap bizProxy; private IObjScriptWrap objProxy; private ILogicScriptWrap logicProxy; private IGenCodeScriptWrap genCodeProxy; private IScriptCallScriptWarp scriptCallScript; private IScriptCmdBuilderWarp scriptCmdBuilder; private IGenCode4UFTScriptWrap genCode4UFTScriptWrap; private IProcedureScriptWrap procedureProxy; public ARESProjectScriptWrapImpl(IARESProject project){ this.project = project; IScriptPoxyFactory factory = null; //�洢���� factory = ModelScriptWrapManager.getInstance().getScriptPoxyFactory("ares.procedure"); if(null != factory){ procedureProxy = (IProcedureScriptWrap)factory.createPoxy(project, null); } //�������� factory = ModelScriptWrapManager.getInstance().getScriptPoxyFactory("jres.basicdata"); if(null != factory){ basicdataPoxy = (IBasicdataScriptWrap)factory.createPoxy(project, null); } factory = ModelScriptWrapManager.getInstance().getScriptPoxyFactory("jres.database"); if(null != factory){ databasePoxy = (IDatabaseScriptWrap)factory.createPoxy(project, null); } factory = ModelScriptWrapManager.getInstance().getScriptPoxyFactory("jres.metadata"); if(null != factory){ metadataProxy = (IMetadataScriptWrap)factory.createPoxy(project, null); } factory = ModelScriptWrapManager.getInstance().getScriptPoxyFactory("jres.business"); if(null != factory){ businessProxy = (IBusinessScriptWrap)factory.createPoxy(project, null); } factory = ModelScriptWrapManager.getInstance().getScriptPoxyFactory("jres.obj"); if (factory != null) { objProxy = (IObjScriptWrap) factory.createPoxy(project, null); } factory = ModelScriptWrapManager.getInstance().getScriptPoxyFactory("jres.biz"); if (factory != null) { bizProxy = (IBizScriptWrap) factory.createPoxy(project, null); } factory = ModelScriptWrapManager.getInstance().getScriptPoxyFactory("cres.logic"); if (factory != null) { logicProxy = (ILogicScriptWrap) factory.createPoxy(project, null); } factory = ModelScriptWrapManager.getInstance().getScriptPoxyFactory("cres.gencode"); if (factory != null) { genCodeProxy = (IGenCodeScriptWrap) factory.createPoxy(project, null); } factory = ModelScriptWrapManager.getInstance().getScriptPoxyFactory("uft.gencode"); if (factory != null) { genCode4UFTScriptWrap = (IGenCode4UFTScriptWrap) factory.createPoxy(project, null); } } @Override public String getProjectPath() { return project.getProject().getLocation().toOSString()+"\\"; } public IARESProject getARESProject(){ return project; } public String[] getAllSubsys(){ List<String> strs = new ArrayList<String>(); try { IARESModuleRoot modultRoot = project.getModuleRoot("database"); if (modultRoot == null) { return strs.toArray(new String[0]); } for(IARESModule module : modultRoot.getModules()){ String moduleName = module.getElementName(); if (StringUtils.isNotBlank(moduleName) && StringUtils.indexOf(moduleName, ".") == -1) { strs.add(moduleName); } } } catch (ARESModelException e) { e.printStackTrace(); } return strs.toArray(new String[0]); } //////////////////////-----------------------------------------Ԫ���ݴ���--------------------------------------------------------//////// IMetadataScriptWrap metadataProxy; public IMetadataResScriptWrap getMetadataInfoByType(String type){ return metadataProxy.getMetadataInfoByType(type); } /* (non-Javadoc) * @see com.hundsun.ares.studio.jres.script.api.wrap.IMetadataScriptWrap#getMetadataInfoByType(java.lang.String, boolean) */ @Override public IMetadataResScriptWrap getMetadataInfoByType(String type, boolean includeRequridProjects) { return metadataProxy.getMetadataInfoByType(type, includeRequridProjects); } ////////////////////////////////////////////////////////�������ݴ���/////////////////////////////////////////////////////////////// IBasicdataScriptWrap basicdataPoxy; /** * @return * @see com.hundsun.ares.studio.jres.script.api.wrap.IBasicdataScriptWrap#getAllTableBasicData() */ public ISingleTableScriptWrap[] getAllTableBasicData() { return basicdataPoxy.getAllTableBasicData(); } /** * @param name * @return * @see com.hundsun.ares.studio.jres.script.api.wrap.IBasicdataScriptWrap#getTableBasicDataByName(java.lang.String) */ public ISingleTableScriptWrap getTableBasicDataByName(String name) { return basicdataPoxy.getTableBasicDataByName(name); } /** * @return * @see com.hundsun.ares.studio.jres.script.api.wrap.IBasicdataScriptWrap#getAllMetaDataBasicData() */ public ISingleTableScriptWrap[] getAllMetaDataBasicData() { return basicdataPoxy.getAllMetaDataBasicData(); } /** * @param name * @return * @see com.hundsun.ares.studio.jres.script.api.wrap.IBasicdataScriptWrap#getMetaDataBasicDataByName(java.lang.String) */ public ISingleTableScriptWrap getMetaDataBasicDataByName(String name) { return basicdataPoxy.getMetaDataBasicDataByName(name); } /** * @param subsysName * @return * @see com.hundsun.ares.studio.jres.script.api.wrap.IBasicdataScriptWrap#getTableBasicDataBySubsys(java.lang.String) */ public ISingleTableScriptWrap[] getTableBasicDataBySubsys(String subsysName) { return basicdataPoxy.getTableBasicDataBySubsys(subsysName); } public ISingleTableScriptWrap[] getTableBasicDataByModule(String moduleName){ return basicdataPoxy.getTableBasicDataByModule(moduleName); } @Override public IMasterSlaveTableScriptWrap[] getAllMasterSlaveTableBasicData() { return basicdataPoxy.getAllMasterSlaveTableBasicData(); } @Override public IMasterSlaveLinkTableScriptWrap[] getAllMasterSlaveLinkTableBasicData() { return basicdataPoxy.getAllMasterSlaveLinkTableBasicData(); } @Override public IMasterSlaveTableScriptWrap[] getMasterSlaveTableBasicDataBySubsys( String subsysName) { return basicdataPoxy.getMasterSlaveTableBasicDataBySubsys(subsysName); } @Override public IMasterSlaveTableScriptWrap[] getMasterSlaveTableBasicDataByModule( String moduleName) { return basicdataPoxy.getMasterSlaveTableBasicDataByModule(moduleName); } @Override public IMasterSlaveTableScriptWrap getMasterSlaveTableBasicDataByName( String name) { return basicdataPoxy.getMasterSlaveTableBasicDataByName(name); } @Override public IMasterSlaveLinkTableScriptWrap[] getMasterSlaveLinkTableBasicDataBySubsys( String subsysName) { return basicdataPoxy.getMasterSlaveLinkTableBasicDataBySubsys(subsysName); } @Override public IMasterSlaveLinkTableScriptWrap[] getMasterSlaveLinkTableBasicDataByModule( String subsysName) { return basicdataPoxy.getMasterSlaveLinkTableBasicDataByModule(subsysName); } @Override public IMasterSlaveLinkTableScriptWrap getMasterSlaveLinkTableBasicDataByName( String name) { return basicdataPoxy.getMasterSlaveLinkTableBasicDataByName(name); } //////////////////////-----------------------------------------�������ݴ���--------------------------------------------------------//////// ////////////////////////////////////////////////////////���ݿ����/////////////////////////////////////////////////////////////// IDatabaseScriptWrap databasePoxy; /** * @return * @see com.hundsun.ares.studio.jres.script.api.wrap.IDatabaseScriptWrap#getAllTable() */ public ITableScriptWrap[] getAllTable() { return databasePoxy.getAllTable(); } @Override public ISequenceScriptWrap[] getAllSequence() { return databasePoxy.getAllSequence(); } @Override public ITriggerScriptWrap[] getAllTrigger() { return databasePoxy.getAllTrigger(); } /** * @param name * @return * @see com.hundsun.ares.studio.jres.script.api.wrap.IDatabaseScriptWrap#getTableByName(java.lang.String) */ public ITableScriptWrap[] getTableByName(String name) { return databasePoxy.getTableByName(name); } @Override public IDatabaseResScriptWrap[] getAllDatabaseResources() { return databasePoxy.getAllDatabaseResources(); } public IDatabaseResScriptWrap[] getAllDatabaseResourcesBySubsys(String subsysName){ return databasePoxy.getAllDatabaseResourcesBySubsys(subsysName); } public IDatabaseResScriptWrap[] getAllDatabaseResourcesByModule(String moduleName){ return databasePoxy.getAllDatabaseResourcesByModule(moduleName); } @Override public String getAllHistoriesCommentBySubsys(String subsysName , String content) { return databasePoxy.getAllHistoriesCommentBySubsys(subsysName , content); } @Override public String getAllHistoriesCommentByModule(String subsysName , String content) { return databasePoxy.getAllHistoriesCommentByModule(subsysName , content); } @Override public ITableRevHistoryScriptWrap[] getAllHistoriesBySubsys(String subsysName) { return databasePoxy.getAllHistoriesBySubsys(subsysName); } @Override public ITableRevHistoryScriptWrap[] getAllHistoriesByModule(String subsysName) { return databasePoxy.getAllHistoriesByModule(subsysName); } @Override public IViewScriptWrap[] getAllView() { return databasePoxy.getAllView(); } @Override public IViewScriptWrap[] getViewByName(String name) { return databasePoxy.getViewByName(name); } @Override public ITableSpaceScriptWrap getTableSpace() { return databasePoxy.getTableSpace(); } @Override public IDatabaseUserScriptWrap getDBUser() { return databasePoxy.getDBUser(); } //////////////////////-----------------------------------------�洢���̴���--------------------------------------------------------//////// @Override public IProcedureWrap[] getProcedures(){ if(procedureProxy != null){ return procedureProxy.getProcedures(); } return new IProcedureWrap[0]; } @Override public IProcedureWrap getProcedureByCName(String name) { if(procedureProxy != null){ return procedureProxy.getProcedureByCName(name); } return null; } //////////////////////-----------------------------------------ҵ���߼�����--------------------------------------------------------//////// IBusinessScriptWrap businessProxy; public IBusinessResScriptWrap[] getAllService(){ return businessProxy.getAllService(); } @Override public IBizServiceWrap[] getServices() { if (bizProxy != null) { return bizProxy.getServices(); } return new IBizServiceWrap[0]; } @Override public IBizObjectWrap[] getObjects() { if (objProxy != null) { return objProxy.getObjects(); } return new IBizObjectWrap[0]; } @Override public IBizObjectWrap[] getObjectsBySubsys(String subsysName) { if (objProxy != null) { return objProxy.getObjectsBySubsys(subsysName); } return new IBizObjectWrap[0]; } @Override public IBizObjectWrap[] getObjectsByModule(String moduleName) { if (objProxy != null) { return objProxy.getObjectsByModule(moduleName); } return new IBizObjectWrap[0]; } @Override public IBizObjectWrap getObjectByName(String name) { if (objProxy != null) return objProxy.getObjectByName(name); return null; } @Override public IBizServiceWrap getServiceByName(String name) { if (bizProxy != null) return bizProxy.getServiceByName(name); return null; } @Override public IBizServiceWrap getServiceByCName(String name) { if (bizProxy != null) return bizProxy.getServiceByCName(name); return null; } @Override public IBizServiceWrap[] getServicesBySubsys(String subsysName) { if (bizProxy != null) return bizProxy.getServicesBySubsys(subsysName); return null; } @Override public IBizServiceWrap[] getServicesByModule(String moduleName) { if (bizProxy != null) return bizProxy.getServicesByModule(moduleName); return null; } @Override public IARESModuleWrap[] getSubSystems(String rootType) { IFolder folder = ARESElementUtil.getModuleRootFolder(project, rootType); IARESModuleRoot root = project.getModuleRoot(folder); List<IARESModuleWrap> subSystems = new ArrayList<IARESModuleWrap>(); try { for (IARESElement element : root.getChildren()) { if (element instanceof IARESModule) { IARESModule module = (IARESModule) element; String elementName = module.getElementName(); if (StringUtils.isEmpty(elementName)) continue; if (ARESElementUtil.isTopModule(module)) { subSystems.add(new ARESModuleWrap(module)); } } } } catch (ARESModelException e) { e.printStackTrace(); } return subSystems.toArray(new IARESModuleWrap[0]); } @Override public IARESModuleRootWrap getRoot(String type) { IFolder folder = ARESElementUtil.getModuleRootFolder(project, type); IARESModuleRoot root = project.getModuleRoot(folder); return new ARESModuleRootWrap(root); } @Override public ILogicServiceWrap[] getLogicServices() { if (logicProxy != null) return logicProxy.getLogicServices(); return null; } @Override public ILogicFunctionWrap[] getLogicFunctions() { if (logicProxy != null) return logicProxy.getLogicFunctions(); return null; } @Override public ILogicServiceWrap getLSByCName(String name) { if (logicProxy != null) return logicProxy.getLSByCName(name); return null; } @Override public ILogicFunctionWrap getLFByCName(String name) { if (logicProxy != null) return logicProxy.getLFByCName(name); return null; } /* (non-Javadoc) * @see com.hundsun.ares.studio.jres.script.api.wrap.IGenCodeScriptWrap#genModuleCode(int, int) */ @Override public void genModuleCode(int resType, int genType) { if (genCodeProxy != null) genCodeProxy.genModuleCode(resType, genType); } /* (non-Javadoc) * @see com.hundsun.ares.studio.jres.script.api.wrap.IScriptCallScriptWarp#runSrcipt(java.lang.String[][]) */ @Override public void runSrcipt(String[][] scripts) { scriptCallScript = new ScriptCallScriptWrap(project); scriptCallScript.runSrcipt(scripts); } /* (non-Javadoc) * @see com.hundsun.ares.studio.jres.script.api.wrap.IScriptCmdBuilderWarp#build(java.lang.String[][], java.util.Map) */ @Override public void build(String[][] scripts, Map<String, Object> parameters) { scriptCmdBuilder = new ScriptCmdBuilderWarp(project); scriptCmdBuilder.build(scripts, parameters); } /* (non-Javadoc) * @see com.hundsun.ares.studio.jres.script.api.wrap.IGenCode4UFTScriptWrap#gen4UFTCode(int, int) */ @Override public void gen4UFTCode(int resType, int genType) { if (genCode4UFTScriptWrap != null) genCode4UFTScriptWrap.gen4UFTCode(resType, genType); } }