/**
 * 
 */
package org.ajax4jsf.component;

import javax.faces.component.UIComponent;
import javax.faces.event.PhaseEvent;

import org.richfaces.event.RenderPhaseComponentVisitor;

public class RenderPhaseUIDataAdaptorVisitor implements
		RenderPhaseComponentVisitor {

	/* (non-Javadoc)
	 * @see org.richfaces.event.ComponentPhaseEventHandler#beforePhaseBegin(javax.faces.event.PhaseEvent)
	 */
	public Object beforeRoot(PhaseEvent event) {
		return null;
	}

	/* (non-Javadoc)
	 * @see org.richfaces.event.ComponentPhaseEventHandler#componentBegin(javax.faces.component.UIComponent, javax.faces.event.PhaseEvent, java.lang.Object)
	 */
	public void beforeComponent(UIComponent component, PhaseEvent event,
			Object state) {
		if (component instanceof UIDataAdaptor) {
			((UIDataAdaptor) component).beforeRenderResponse(event.getFacesContext());
			
		}
	}

	/* (non-Javadoc)
	 * @see org.richfaces.event.ComponentPhaseEventHandler#bcomponentEnd(javax.faces.component.UIComponent, javax.faces.event.PhaseEvent, java.lang.Object)
	 */
	public void afterComponent(UIComponent component, PhaseEvent event,
			Object state) {}
	
	/* (non-Javadoc)
	 * @see org.richfaces.event.ComponentPhaseEventHandler#beforePhaseEnd(javax.faces.event.PhaseEvent, java.lang.Object)
	 */
	public void afterRoot(PhaseEvent event, Object state) {}
}
