code: @Override
  	public void decode(FacesContext context, UIComponent component) {
  		SelectBooleanCheckbox selectBooleanCheckbox = (SelectBooleanCheckbox) component;
  
  		if (selectBooleanCheckbox.isDisabled() || selectBooleanCheckbox.isReadonly()) {
  			return;
  		}
  
  		decodeBehaviors(context, selectBooleanCheckbox); // moved to
  															// AJAXRenderer
  
  		String clientId = selectBooleanCheckbox.getClientId(context);
  		String submittedValue = context.getExternalContext().getRequestParameterMap().get(clientId);
  
  		if (submittedValue != null) {
  			selectBooleanCheckbox.setSubmittedValue("on".equals(submittedValue));
  		} else if (context.getExternalContext().getRequestParameterMap().containsKey(clientId + "_helper")) {
  			selectBooleanCheckbox.setSubmittedValue(false);
  		}
  		if (Boolean.FALSE.equals(selectBooleanCheckbox.getSubmittedValue()) && selectBooleanCheckbox.isRequired()) {
  			String userDefinedMessage = selectBooleanCheckbox.getRequiredMessage();
  			if (null != userDefinedMessage) {
  				FacesMessages.error(clientId, userDefinedMessage, userDefinedMessage);
  			} else {
  				String label = selectBooleanCheckbox.getLabel();
  				if (label == null || label.isEmpty()) {
  					label = selectBooleanCheckbox.getCaption();
  					if (label == null || label.isEmpty()) {
  						label = clientId;
  					}
  				}
  				FacesMessages.createErrorMessageFromResourceBundle(clientId, "javax.faces.component.UIInput.REQUIRED", label);
  			}
  			selectBooleanCheckbox.setValid(false);
  		} else {
  			new AJAXRenderer().decode(context, component, "input_" + clientId);
  		}
  	}
docs: This methods receives and processes input made by the user. More
  specifically, it ckecks whether the user has interacted with the current
  b:selectBooleanCheckbox. The default implementation simply stores the
  input value in the list of submitted values. If the validation checks are
  passed, the values in the <code>submittedValues</code> list are store in
  the backend bean.
  
  @param context
  the FacesContext.
  @param component
  the current b:selectBooleanCheckbox.