code: void validate() {
          validateCassandraParams();
  
          if (pageSize <= 0) {
              throw new IllegalArgumentException("pageSize cannot be zero");
          }
  
          
  
          validateConsistencyLevels();
  
          TableMetadata tableMetadata = fetchTableMetadata();
  
          validateTableMetadata(tableMetadata);
          validateAdditionalFilters(tableMetadata);
  
          if (!(this.isBisectModeSet && this.isSplitModeSet)) {
              if (this.isBisectModeSet) {
                  if (this.bisectFactor != Constants.DEFAULT_BISECT_FACTOR
                          && !this.checkIsPowerOfTwo(this.bisectFactor)) {
                      throw new IllegalArgumentException(
                              "Bisect factor should be greater than zero and a power of 2");
                  }
              } else if (this.isSplitModeSet) {
                  if (this.splitSize <= 0) {
                      throw new IllegalArgumentException(
                              "The split size must be a positve integer");
                  }
              } else {
                  throw new IllegalArgumentException(
                          "One split mode must be defined, please choose between Split or Bisect");
              }
          } else {
              throw new IllegalArgumentException(
                      "Only one split mode can be defined, please choose between Split or Bisect");
          }
      }
docs: Validates if any of the mandatory fields have been configured or not. Throws an {@link IllegalArgumentException}
  if any of the mandatory properties have not been configured.