org.jboss.seam.core
Class ConversationEntry

java.lang.Object
  extended by org.jboss.seam.core.ConversationEntry
All Implemented Interfaces:
Serializable, Comparable<ConversationEntry>

public final class ConversationEntry
extends Object
implements Serializable, Comparable<ConversationEntry>

Metadata about an active conversation. Also used by the conversation list and breadcrumbs.

Author:
Gavin King
See Also:
Serialized Form

Constructor Summary
ConversationEntry(String id, List<String> stack, ConversationEntries entries)
           
 
Method Summary
 int compareTo(ConversationEntry entry)
           
 void destroy()
           
 void end()
           
 String findPositionInConversationStack(Component component)
          Determines which conversation in the stack is holding the instance of this component.
 Integer getConcurrentRequestTimeout()
           
 List<String> getConversationIdStack()
           
 String getDescription()
           
 String getId()
           
 Date getLastDatetime()
           
 long getLastRequestTime()
           
 Date getStartDatetime()
           
 int getTimeout()
           
 String getViewId()
           
 boolean isCurrent()
           
 boolean isDisplayable()
           
 boolean isEnded()
           
 boolean isLockedByCurrentThread()
           
 boolean isNested()
           
 boolean isRemoveAfterRedirect()
           
 boolean lock()
           
 boolean lockNoWait()
           
 boolean redirect()
           
 void select()
           
 void setRemoveAfterRedirect(boolean removeAfterRedirect)
           
 String toString()
           
 void unlock()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ConversationEntry

public ConversationEntry(String id,
                         List<String> stack,
                         ConversationEntries entries)
Method Detail

getDescription

public String getDescription()

getLastRequestTime

public long getLastRequestTime()

getId

public String getId()

getStartDatetime

public Date getStartDatetime()

destroy

public void destroy()

select

public void select()

redirect

public boolean redirect()

getViewId

public String getViewId()

getLastDatetime

public Date getLastDatetime()

getConversationIdStack

public List<String> getConversationIdStack()

isDisplayable

public boolean isDisplayable()

isCurrent

public boolean isCurrent()

compareTo

public int compareTo(ConversationEntry entry)
Specified by:
compareTo in interface Comparable<ConversationEntry>

getTimeout

public int getTimeout()

getConcurrentRequestTimeout

public Integer getConcurrentRequestTimeout()

isRemoveAfterRedirect

public boolean isRemoveAfterRedirect()

setRemoveAfterRedirect

public void setRemoveAfterRedirect(boolean removeAfterRedirect)

lockNoWait

public boolean lockNoWait()

lock

public boolean lock()

unlock

public void unlock()

isLockedByCurrentThread

public boolean isLockedByCurrentThread()

end

public void end()

isEnded

public boolean isEnded()

isNested

public boolean isNested()

findPositionInConversationStack

public String findPositionInConversationStack(Component component)
Determines which conversation in the stack is holding the instance of this component. A nested conversation can see context variables in all ancestor conversations. In this case, we are interesting in knowing where that instance was found. We are assuming that if the reference is not in an ancestor conversation, then it must be in the current conversation. The goal here is not to locate the instance, but rather to determine which conversation is contributing the instance that we already know exists. The low-level interaction with the session context should be refactored out. The problem is that it is defined in private areas of ServerConversationContext and cannot be reused. Actually, what we really need is a general purpose utility for analyzing the contents of each conversation in the stack (at least the keys).


toString

public String toString()
Overrides:
toString in class Object