/** * <p>Copyright: Copyright (c) 2013</p> * <p>Company: �������ӹɷ����޹�˾</p> */ package com.hundsun.ares.studio.procedure.compiler.oracle.token; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.util.Map; import javax.script.Invocable; import javax.script.ScriptContext; import javax.script.ScriptEngine; import javax.script.ScriptException; import org.apache.commons.io.IOUtils; import org.apache.commons.lang.StringUtils; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.CoreException; import org.eclipse.emf.common.util.EList; import com.hundsun.ares.studio.core.ARESCore; import com.hundsun.ares.studio.core.ARESModelException; import com.hundsun.ares.studio.core.IARESProject; import com.hundsun.ares.studio.core.IARESResource; import com.hundsun.ares.studio.core.model.JRESResourceInfo; import com.hundsun.ares.studio.core.scripting.AresScriptEngineManager; import com.hundsun.ares.studio.engin.token.ICodeToken; import com.hundsun.ares.studio.jres.basicdata.constant.IBasicDataRestypes; import com.hundsun.ares.studio.jres.basicdata.core.basicdata.BasicDataBaseModel; import com.hundsun.ares.studio.jres.basicdata.ui.editor.BasicDataGenCodeUtils; import com.hundsun.ares.studio.jres.model.metadata.Operation; import com.hundsun.ares.studio.jres.model.metadata.util.MetadataScriptUtil; import com.hundsun.ares.studio.jres.script.engin.ScriptUtils; import com.hundsun.ares.studio.jres.script.util.impl.ScriptInUtilImpl; import com.hundsun.ares.studio.model.reference.ReferenceInfo; import com.hundsun.ares.studio.procdure.Procedure; import com.hundsun.ares.studio.procdure.RelatedInfo; import com.hundsun.ares.studio.procedure.compiler.oracle.constant.IProcedureEngineContextConstantOracle; import com.hundsun.ares.studio.reference.ReferenceManager; /** * ���ɹ��̹����������� * @author qinyuan * */ public class ProcedureRelatedBasicDataInfoCodeToken implements ICodeToken { /* (non-Javadoc) * @see com.hundsun.ares.studio.engin.token.ICodeToken#getContent() */ @Override public String getContent() { // TODO Auto-generated method stub return null; } /* (non-Javadoc) * @see com.hundsun.ares.studio.engin.token.ICodeToken#getType() */ @Override public int getType() { return CODE_TEXT; } /* (non-Javadoc) * @see com.hundsun.ares.studio.engin.token.ICodeToken#genCode(java.util.Map) */ @Override public String genCode(Map<Object, Object> context) throws Exception { StringBuffer result = new StringBuffer(); Procedure procedure = (Procedure)context.get(IProcedureEngineContextConstantOracle.ResourceModel); IARESProject project = (IARESProject)context.get(IProcedureEngineContextConstantOracle.Aresproject); //������ EList<RelatedInfo> relatedTables = procedure.getRelatedBasicDataInfo(); if(relatedTables.size() <= 0) { return StringUtils.EMPTY; } result.append(NEWLINE); result.append(begin_code_desc_begin); for (RelatedInfo relatedInfo : relatedTables) { result.append(genRelatedBasicDataCode(project, relatedInfo)); } result.append(NEWLINE); result.append(begin_code_desc_end); result.append(NEWLINE); return result.toString(); } private String genRelatedBasicDataCode(IARESProject project,RelatedInfo relatedInfo) { StringBuffer ret = new StringBuffer(); String tableName = relatedInfo.getId(); ReferenceInfo referneceInfo = ReferenceManager.getInstance().getFirstReferenceInfo(project, IBasicDataRestypes.singleTable, tableName, true); if(referneceInfo != null) { IARESResource resource = referneceInfo.getResource(); Object obj = referneceInfo.getObject(); if(obj instanceof BasicDataBaseModel){ BasicDataBaseModel eObj = (BasicDataBaseModel)obj; //��װģʽ ret.append(BasicDataGenCodeUtils.genBasicDataFullCode(resource, eObj)); //����ģʽ ret.append(BasicDataGenCodeUtils.genBasicDataPatchCode(resource, eObj)); } } return ret.toString(); } private final static String begin_code_desc_begin = "/*****************************************************/\r\n" + "/* ���������������ɴ��� --��ʼ */\r\n" + "/*****************************************************/\r\n"; private final static String begin_code_desc_end = "/*****************************************************/\r\n" + "/* ���������������ɴ��� --���� */\r\n" + "/*****************************************************/\r\n"; }