TransactionTokenRenderer.java
package org.andromda.cartridges.jsf.renderkit;
import java.io.IOException;
import java.util.UUID;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.render.Renderer;
import org.andromda.cartridges.jsf.component.TransactionToken;
/**
* The transaction token renderer (just adds the transaction token value
* as an attribute of the parent component so we can skip multi-submits of the same action).
*
* @author Chad Brandon
*/
public class TransactionTokenRenderer
extends Renderer
{
/**
* @see javax.faces.render.Renderer#encodeBegin(javax.faces.context.FacesContext, javax.faces.component.UIComponent)
*/
@SuppressWarnings("unchecked")
public void encodeBegin(
FacesContext context,
UIComponent component)
throws IOException
{
if (component.getParent() != null)
{
component.getParent().getAttributes().put(TransactionToken.TRANSACTION_TOKEN, UUID.randomUUID().toString());
}
}
}