@Override
    public void processValidators(FacesContext context) {
        if (!isRendered()) {
            return;
        }

        if (shouldSkipChildren(context)) {
            return;
        }

        pushComponentToEL(context, null);

        Application app = context.getApplication();
        app.publishEvent(context, PreValidateEvent.class, this);

        if (isRepeating()) {
            process(context, PhaseId.PROCESS_VALIDATIONS);
        }
        else {
            if (isDynamic()) {
                for (int i = 0; i < getChildCount(); i++) {
                    UIComponent child = getChildren().get(i);
                    if (child instanceof Tab) {
                        Tab tab = (Tab) child;
                        if (tab.isLoaded()) {
                            tab.processValidators(context);
                        }
                    }
                }
            }
            else {
                ComponentUtils.processValidatorsOfFacetsAndChilds(this, context);
            }
        }

        // check if an validation error forces the render response for our data
        if (context.getRenderResponse()) {
            _isValidChilds = false;
        }

        app.publishEvent(context, PostValidateEvent.class, this);
        popComponentFromEL(context);
    }
Calculates the count value for the given index.

@param index

@return
primefaces/src/main/java/org/primefaces/component/api/UITabPanel.java