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

com.crabshue.commons.xproc.XprocResult Maven / Gradle / Ivy

package com.crabshue.commons.xproc;

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

import com.crabshue.commons.exceptions.ApplicationException;
import com.crabshue.commons.xproc.exceptions.XProcErrorType;

public class XprocResult {
	Map> map;

	public XprocResult() {
		map = new HashMap<>();
	}

	public void add(String port, T handled) {
		if (!map.containsKey(port)) {
			map.put(port, new ArrayList<>());
		}
		map.get(port).add(handled);
	}

	public T getFirstOrDefault(String port, T defaultValue) {
		return map.getOrDefault(port, new ArrayList<>()).stream().findFirst().orElse(defaultValue);
	}

	public T getPortFirst(String port) {
		List portList = getPort(port);		
		return portList.get(0);
	}

	public List getPort(String port) {
		if (!map.containsKey(port))
			throw new ApplicationException(XProcErrorType.PORT_NOT_FOUND, "port not found").addContextValue("port",
					port);
		return map.get(port);
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy