@Override
    public void processUpdates(FacesContext context) {

        if (context == null) {
            throw new NullPointerException();
        }
        if (!isRendered()) {
            return;
        }

        pushComponentToEL(context, this);
        preUpdate(context);
        iterate(context, PhaseId.UPDATE_MODEL_VALUES);
        popComponentFromEL(context);
        // This is not a EditableValueHolder, so no further processing is required

    }
<p>Override the default {@link UIComponentBase#processUpdates}
processing to perform the following steps.</p>
<ul>
<li>If the <code>rendered</code> property of this {@link UIComponent}
    is <code>false</code>, skip further processing.</li>
<li>Set the current <code>rowIndex</code> to -1.</li>
<li>Call the <code>processUpdates()</code> method of all facets
    of this {@link UIData}, in the order determined
    by a call to <code>getFacets().keySet().iterator()</code>.</li>
<li>Call the <code>processUpdates()</code> method of all facets
    of the {@link UIColumn} children of this {@link UIData}.</li>
<li>Iterate over the set of rows that were included when this
    component was rendered (i.e. those defined by the <code>first</code>
    and <code>rows</code> properties), performing the following
    processing for each row:
    <ul>
    <li>Set the current <code>rowIndex</code> to the appropriate
        value for this row.</li>
    <li>If <code>isRowAvailable()</code> returns <code>true</code>,
        iterate over the children components of each {@link UIColumn}
        child of this {@link UIData} component, calling the
        <code>processUpdates()</code> method for each such child.</li>
    </ul></li>
<li>Set the current <code>rowIndex</code> to -1.</li>
</ul>

@param context {@link FacesContext} for the current request

@throws NullPointerException if <code>context</code> is <code>null</code>
primefaces/src/main/java/org/primefaces/component/patch/UIDataPatch.java