code: protected boolean validateRequired(final FacesContext context, final Object newValue) {
          // If our value is valid, enforce the required property if present
          if (isValid() && isRequired() && isEmpty(newValue)) {
              final String requiredMessageStr = getRequiredMessage();
              FacesMessage message;
              if (null != requiredMessageStr) {
                  message = new FacesMessage(FacesMessage.SEVERITY_ERROR,
                              requiredMessageStr,
                              requiredMessageStr);
              }
              else {
                  message = new FacesMessage(FacesMessage.SEVERITY_ERROR,
                              MESSAGE_REQUIRED,
                              MESSAGE_REQUIRED);
              }
              context.addMessage(getClientId(context), message);
              final Sheet sheet = getSheet();
              if (sheet != null) {
                  sheet.getInvalidUpdates().add(
                              new SheetInvalidUpdate(sheet.getRowKeyValue(context), sheet.getColumns().indexOf(this), this, newValue,
                                          message.getDetail()));
              }
              setValid(false);
              return false;
          }
          return true;
      }
docs: Validates the value against the required flags on this column.
  
  @param context the FacesContext
  @param newValue the new value for this column
  @return true if passes validation, otherwise valse