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

org.unique.support.upload.MultiState Maven / Gradle / Ivy

The newest version!
package org.unique.support.upload;

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

/**
 * 多状态集合状态 其包含了多个状态的集合, 其本身自己也是一个状态
 * @author:biezhi
 * @version:1.0
 */
public class MultiState implements State {

	private boolean state = false;
	private String info = null;
	private Map intMap = new HashMap();
	private Map infoMap = new HashMap();
	private List stateList = new ArrayList();
	private Map formParamMap = new HashMap();

	public MultiState(boolean state) {
		this.state = state;
	}

	public MultiState(boolean state, String info) {
		this.state = state;
		this.info = info;
	}

	public MultiState(boolean state, int infoKey) {
		this.state = state;
		this.info = StateInfo.getStateInfo(infoKey);
	}

	@Override
	public boolean isSuccess() {
		return this.state;
	}

	public void addState(State state) {
		stateList.add(state.toJSONString());
	}

	/**
	 * 该方法调用无效果
	 */
	@Override
	public void putInfo(String name, String val) {
		this.infoMap.put(name, val);
	}

	@Override
	public String toJSONString() {

		String stateVal = this.isSuccess() ? StateInfo
				.getStateInfo(StateInfo.SUCCESS) : this.info;

		StringBuilder builder = new StringBuilder();

		builder.append("{\"state\": \"" + stateVal + "\"");

		// 数字转换
		Iterator iterator = this.intMap.keySet().iterator();
		while (iterator.hasNext()) {
			stateVal = iterator.next();
			builder.append(",\"" + stateVal + "\": "
					+ this.intMap.get(stateVal));
		}
		iterator = this.infoMap.keySet().iterator();
		while (iterator.hasNext()) {
			stateVal = iterator.next();
			builder.append(",\"" + stateVal + "\": \""
					+ this.infoMap.get(stateVal) + "\"");
		}
		builder.append(", list: [");
		iterator = this.stateList.iterator();
		while (iterator.hasNext()) {
			builder.append(iterator.next() + ",");
		}
		if (this.stateList.size() > 0) {
			builder.deleteCharAt(builder.length() - 1);
		}
		builder.append(" ]}");
		try {
			return URLEncoder.encode(builder.toString(), "utf-8");
		} catch (UnsupportedEncodingException e) {
		}
		return builder.toString();
	}

	@Override
	public void putInfo(String name, long val) {
		this.intMap.put(name, val);
	}

	@Override
	public Map getFormParams() {
		return this.formParamMap;
	}
	
	@Override
	public void putFormParams(Map formParams) {
		this.formParamMap = formParams;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy