[jboss-cvs] jboss-seam/src/main/org/jboss/seam/pages ...
Shane Bryzak
sbryzak at redhat.com
Mon Mar 5 06:25:13 EST 2007
User: sbryzak2
Date: 07/03/05 06:25:12
Added: src/main/org/jboss/seam/pages
ConversationIdParameter.java
ELConversationIdParameter.java
SyntheticConversationIdParameter.java
Log:
Revision Changes Path
1.1 date: 2007/03/05 11:25:12; author: sbryzak2; state: Exp;jboss-seam/src/main/org/jboss/seam/pages/ConversationIdParameter.java
Index: ConversationIdParameter.java
===================================================================
package org.jboss.seam.pages;
public interface ConversationIdParameter
{
String getParameterName();
String getParameterValue();
String getInitialConversationId();
}
1.1 date: 2007/03/05 11:25:12; author: sbryzak2; state: Exp;jboss-seam/src/main/org/jboss/seam/pages/ELConversationIdParameter.java
Index: ELConversationIdParameter.java
===================================================================
package org.jboss.seam.pages;
import javax.faces.context.FacesContext;
import org.jboss.seam.core.Expressions;
import org.jboss.seam.core.Manager;
import org.jboss.seam.core.Expressions.ValueBinding;
import org.jboss.seam.util.Id;
/**
* Represents a conversation parameter that can be used to create a "natural"
* conversation ID, by defining a <conversation/> entry in pages.xml.
*
* @author Shane Bryzak
*/
public class ELConversationIdParameter implements ConversationIdParameter
{
private String name;
private String paramName;
private ValueBinding vb;
public ELConversationIdParameter(String name, String paramName, String expression)
{
this.name = name;
this.paramName = paramName;
this.vb = expression != null ? Expressions.instance().createValueBinding(expression) : null;
}
public String getName()
{
return name;
}
public String getParameterName()
{
String conversationId = Manager.instance().getCurrentConversationId();
int idx = conversationId.indexOf(':');
if (idx != -1)
{
return paramName;
}
else
{
return Manager.instance().getConversationIdParameter();
}
}
public String getInitialConversationId()
{
FacesContext ctx = FacesContext.getCurrentInstance();
String value = (String) ctx.getExternalContext().getRequestParameterMap().get(paramName);
if (value == null)
{
// TODO - redirect to no-conversation-view-id ?
return Id.nextId();
}
else
{
return String.format("%s:%s", name, value);
}
}
public String getParameterValue()
{
Object value = vb.getValue();
if (value != null)
{
return vb.getValue().toString();
}
else
{
String conversationId = Manager.instance().getCurrentConversationId();
int idx = conversationId.indexOf(':');
if (idx != -1)
{
return conversationId.substring(idx + 1);
}
else
{
return conversationId;
}
}
}
}
1.1 date: 2007/03/05 11:25:12; author: sbryzak2; state: Exp;jboss-seam/src/main/org/jboss/seam/pages/SyntheticConversationIdParameter.java
Index: SyntheticConversationIdParameter.java
===================================================================
package org.jboss.seam.pages;
import org.jboss.seam.core.Manager;
import org.jboss.seam.util.Id;
public class SyntheticConversationIdParameter implements ConversationIdParameter
{
public String getParameterName()
{
return Manager.instance().getConversationIdParameter();
}
public String getParameterValue()
{
return Manager.instance().getCurrentConversationId();
}
public String getInitialConversationId()
{
return Id.nextId();
}
}
More information about the jboss-cvs-commits
mailing list