All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.nfwork.dbfound.model.bean.Execute Maven / Gradle / Ivy

There is a newer version: 4.3.2
Show newest version
package com.nfwork.dbfound.model.bean;

import java.sql.SQLException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

import org.dom4j.Element;

import com.nfwork.dbfound.core.Context;
import com.nfwork.dbfound.exception.DBFoundPackageException;
import com.nfwork.dbfound.model.ModelEngine;

public class Execute extends SqlEntity {

	private static final long serialVersionUID = 7670352852092590245L;

	private String name = "_default";// execute对象的名字
	private String modelName;
	private Sqls sqls; // execute对象对应的配置sql
	private Map params; // query对象对应参数
	private String currentPath;

	@Override
	public void init(Element element) {
		params = new HashMap();
		super.init(element);
	}

	@Override
	public void run() {
		if (getParent() instanceof Model) {
			Model model = (Model) getParent();
			model.putExecute(name, this);
		} else {
			super.run();
		}
	}

	public Execute cloneEntity() {
		Execute execute;
		try {
			execute = (Execute) this.clone();
		} catch (CloneNotSupportedException e) {
			throw new DBFoundPackageException(
					"Execute克隆异常:" + e.getMessage(), e);
		}
		HashMap params = new HashMap();
		for (Iterator iterator = this.params.entrySet().iterator(); iterator
				.hasNext();) {
			Map.Entry entry = (Map.Entry) iterator.next();
			Param param = (Param) entry.getValue();
			params.put(entry.getKey().toString(), (Param) param.cloneEntity());
		}
		execute.setParams(params);
		if (sqls != null)
			execute.setSqls(sqls.cloneEntity());
		return execute;
	}

	/**
	 * 执行对应的sql集合
	 * @param context
	 * @param provideName
	 */
	public void execute(Context context, String provideName){
		if (sqls != null) {
			for (int i = 0; i < sqls.sqlList.size(); i++) {
				SqlEntity sql = sqls.sqlList.get(i);
				sql.execute(context, params, provideName);
			}
		}
	}

	@Override
	public void execute(Context context, Map params,
			String provideName){
		String currentPath = context.getCurrentPath();
		if (modelName == null) {
			modelName = context.getCurrentModel();
		}
		ModelEngine.execute(context, modelName, name, currentPath);
	}

	/**
	 * 设定参数
	 * 
	 * @param name
	 * @param value
	 */
	public void setParam(String name, String value) {
		params.get(name).setValue(value);
	}

	/**
	 * 得到参数值
	 * 
	 * @param name
	 * @return
	 */
	public String getParam(String name) {
		return params.get(name).getStringValue();
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Map getParams() {
		return params;
	}

	public Sqls getSqls() {
		return sqls;
	}

	public void setSqls(Sqls sqls) {
		this.sqls = sqls;
	}

	public void setParams(Map params) {
		this.params = params;
	}

	public String getCurrentPath() {
		return currentPath;
	}

	public void setCurrentPath(String currentPath) {
		this.currentPath = currentPath;
	}

	public String getModelName() {
		return modelName;
	}

	public void setModelName(String modelName) {
		this.modelName = modelName;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy