package eu.dnetlib.common.interfaces.nh;

import java.util.List;
import java.util.Map;

import eu.dnetlib.common.profile.blackboard.Parameter;

public interface IBlackboardMessage {
// TODO documentation
	public enum Action {CREATE, DELETE, UPDATE, 
		MANAGE, RELEASE, CANCEL, INIT, HALT, 
		FEED, STORE, TRANSFORM, 
		LISTRECORDS, GETRECORD, LISTSETS, LISTMETADATAFORMATS, IDENTIFY, LISTIDENTIFIERS};

	public enum ActionStatus {DONE, ONGOING, 
		FAILED, WAITING, ASSIGNED};

	public Action getAction();
	public void setAction(Action action);
	public ActionStatus getActionStatus();
	public void setActionStatus(ActionStatus status);
	public String getId();
	public void setId(String msgId);
	public List<Parameter> getParamList();
	public Map<String, Parameter> getParamMap();
	public void setParamList(List<Parameter> paramList);
	public void setParameters(Map<String, String> parameters);
	public void overwriteParameter(Parameter param);
	public String getParameter(String name);
	public boolean containsParameter(String name);
	public String getDate();
	public void setDate(String date);

}
