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

cn.coder.jdbc.support.MulitResult Maven / Gradle / Ivy

There is a newer version: 0.0.9
Show newest version
package cn.coder.jdbc.support;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Objects;

import cn.coder.jdbc.util.ObjectUtils;

public final class MulitResult {
	private final List sqlArray;
	private final List> targetArray;
	private final List dataArray;
	private final HashMap> resultMap;

	public MulitResult() {
		sqlArray = new ArrayList<>();
		targetArray = new ArrayList<>();
		dataArray = new ArrayList<>();
		resultMap = new HashMap<>();
	}

	public  MulitResult add(Class target, String sql, Object... array) {
		this.targetArray.add(target);
		this.sqlArray.add(sql);
		this.dataArray.add(array);
		return this;
	}

	public String getSql() {
		StringBuilder script = new StringBuilder();
		for (String sql : sqlArray) {
			script.append(sql).append(";");
		}
		return script.toString();
	}

	public Object[] getData() {
		Object[] temp = new Object[0];
		for (Object[] data : dataArray) {
			temp = ObjectUtils.mergeArray(temp, data);
		}
		return temp;
	}

	public Class getTarget(int index) {
		return targetArray.get(index);
	}

	public String getSql(int index) {
		return sqlArray.get(index);
	}

	public int getHash(int index) {
		return Objects.hash(getSql(index), getTarget(index));
	}

	public void putResult(int index, Object obj) {
		if (resultMap.containsKey(index)) {
			resultMap.get(index).add(obj);
		} else {
			ArrayList temp = new ArrayList<>();
			temp.add(obj);
			resultMap.put(index, temp);
		}
	}

	public Object getResult(int index) {
		return resultMap.get(index).get(0);
	}

	public List getResultList(int index) {
		return resultMap.get(index);
	}
}