/**
   * Check invalid operator's
   *
   * @param column
   * @throws QueryExecutionException
   */
  private void checkInValid(String tableName, Column column) throws QueryExecutionException {

    Operator[] unAvailableQueryOperators =
        getUnAvailableQueryOperators(column.getAvailableQueryOperators());

    for (Operator operator : unAvailableQueryOperators) {

      StringBuffer query = new StringBuffer();
      query.append("SELECT ").append(tableName).append(".*");
      query.append(" FROM ").append(tableName);
      query.append(" WHERE ");
      query.append(tableName).append(".").append(column.getName());
      switch (operator) {
        case EQUAL_TO:
          query.append("= 1");
          break;
        case GREATER_THAN:
          query.append("> 1");
          break;
        case GREATER_THAN_OR_EQUAL_TO:
          query.append(">= 1");
          break;
        case LESS_THAN:
          query.append("< 1");
          break;
        case LESS_THAN_OR_EQUAL_TO:
          query.append("<= 1");
          break;
        case LIKE:
          query.append(" LIKE 'mooo' ");
          break;
        case NOT_EQUAL_TO:
          query.append(" <> 1");
          break;
        default:
          fail("unknown operator " + operator);
          break;
      }
      try {
        org.xcmis.spi.query.Query cmisQuery = new org.xcmis.spi.query.Query(query.toString(), true);
        storageA.query(cmisQuery);
        fail(
            "InvalidArgumentException should be thrown for invalid operator "
                + operator
                + " for columnt ='"
                + column.getName()
                + "'");
      } catch (InvalidArgumentException e) {
        // ok
      }
    }
  }
  /**
   * Check valid operator's
   *
   * @param column
   * @throws InvalidQueryException
   * @throws QueryExecutionException
   */
  private void checkValid(String tableName, Column column)
      throws QueryExecutionException, InvalidQueryException {

    for (Operator operator : column.getAvailableQueryOperators()) {

      StringBuffer query = new StringBuffer();
      query.append("SELECT ").append(tableName).append(".*");
      query.append(" FROM ").append(tableName);
      query.append(" WHERE ");
      query.append(tableName).append(".").append(column.getName());
      switch (operator) {
        case EQUAL_TO:
          query.append("= 1");
          break;
        case GREATER_THAN:
          query.append("> 1");
          break;
        case GREATER_THAN_OR_EQUAL_TO:
          query.append(">= 1");
          break;
        case LESS_THAN:
          query.append("< 1");
          break;
        case LESS_THAN_OR_EQUAL_TO:
          query.append("<= 1");
          break;
        case LIKE:
          query.append(" LIKE 'mooo' ");
          break;
        case NOT_EQUAL_TO:
          query.append(" <> 1");
          break;
        default:
          fail("unknown operator " + operator);
          break;
      }
      org.xcmis.spi.query.Query cmisQuery = new org.xcmis.spi.query.Query(query.toString(), true);
      storageA.query(cmisQuery);
    }
  }