package org.jactr.eclipse.runtime.session; /* * default logging */ import java.util.Date; import java.util.Set; import java.util.UUID; import java.util.concurrent.Executor; import org.jactr.eclipse.runtime.session.control.ISessionController; import org.jactr.eclipse.runtime.session.data.ISessionData; public interface ISession { public UUID getSessionId(); public ISessionController getController(); public Set<String> getKeys(Set<String> container); public ISessionData getData(String key); public void addData(String key, ISessionData sessionData); public void addListener(ISessionListener listener, Executor executor); public void removeListener(ISessionListener listener); public Set<String> getMetaDataKeys(Set<String> container); public Object getMetaData(String key); public Object setMetaData(String key, Object value); /** * return true if this session is either running or otherwise active. That is, * we can expect there to be data coming along the pipe * * @return */ public boolean isOpen(); /** * close the session, terminating the run if possible. */ public void close(); /** * release all resources and remove from the session manager */ public void destroy(); public boolean hasBeenDestroyed(); public Date getTimeOfExecution(); }