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

coo.base.model.Params Maven / Gradle / Ivy

The newest version!
package coo.base.model;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import coo.base.constants.Chars;
import coo.base.util.CollectionUtils;
import coo.base.util.StringUtils;

/**
 * 参数对象,实现Map与分行的键值对之间的转换,便于存取参数型数据。
 */
@SuppressWarnings("serial")
public class Params extends LinkedHashMap {
	/**
	 * 获取指定键名的整型值。
	 * 
	 * @param name
	 *            键名
	 * @return 返回指定键名的整型值。
	 */
	public Integer getInteger(String name) {
		if (StringUtils.isNotBlank(get(name))) {
			return Integer.valueOf(get(name));
		} else {
			return null;
		}
	}

	/**
	 * 获取指定键名的布尔型值。
	 * 
	 * @param name
	 *            键名
	 * @return 返回指定键名的布尔型值。
	 */
	public Boolean getBoolean(String name) {
		if (StringUtils.isNotBlank(get(name))) {
			return Boolean.valueOf(get(name));
		} else {
			return null;
		}
	}

	/**
	 * 获取指定键名的列表型值。
	 * 
	 * @param name
	 *            键名
	 * @return 返回指定键名的列表型值。
	 */
	public List getList(String name) {
		List list = new ArrayList();
		if (StringUtils.isNotBlank(get(name))) {
			list = Arrays.asList(get(name).split(Chars.COMMA));
		}
		return list;
	}

	/**
	 * 放入列表。
	 * 
	 * @param name
	 *            键名
	 * @param list
	 *            列表
	 */
	public void putList(String name, List list) {
		String value = "";
		if (!CollectionUtils.isEmpty(list)) {
			value = StringUtils.join(list, Chars.COMMA);
		}
		put(name, value);
	}

	/**
	 * 获取指定键名的Map型值。
	 * 
	 * @param name
	 *            键名
	 * @return 返回指定键名的Map型值。
	 */
	public Map getMap(String name) {
		Map map = new LinkedHashMap();
		if (StringUtils.isNotBlank(get(name))) {
			for (String entry : get(name).split(Chars.COMMA)) {
				String key = StringUtils.substringBefore(entry, Chars.COLON);
				String value = StringUtils.substringAfter(entry, Chars.COLON);
				map.put(key, value);
			}
		}
		return map;
	}

	/**
	 * 放入Map。
	 * 
	 * @param name
	 *            键名
	 * @param map
	 *            Map
	 */
	public void putMap(String name, Map map) {
		List list = new ArrayList();
		for (Map.Entry entry : map.entrySet()) {
			list.add(entry.getKey() + Chars.COLON + entry.getValue());
		}
		putList(name, list);
	}

	/**
	 * 从固定格式的参数字符串加载参数。
	 * 
	 * @param paramsString
	 *            参数字符串
	 */
	public void fromString(String paramsString) {
		if (StringUtils.isNotBlank(paramsString)) {
			paramsString = paramsString.replaceAll(Chars.CR, "");
			for (String paramString : paramsString.split(Chars.LF)) {
				if (!StringUtils.isBlank(paramString)) {
					String paramName = StringUtils.substringBefore(paramString,
							Chars.EQUAL);
					String paramValue = StringUtils.substringAfter(paramString,
							Chars.EQUAL);
					put(paramName, paramValue);
				}
			}
		}
	}

	@Override
	public String toString() {
		List paramStrings = new ArrayList();
		for (String key : keySet()) {
			String paramString = key + Chars.EQUAL + get(key);
			paramStrings.add(paramString);
		}
		if (!paramStrings.isEmpty()) {
			return StringUtils.join(paramStrings, Chars.CR + Chars.LF);
		} else {
			return "";
		}
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy