public SkeletonPiece tokenize()

in tools/template_based_query_generation/src/main/java/token/TokenProvider.java [42:85]


  public SkeletonPiece tokenize(String tokenExpression, Table tableChoice) {
    if (tokenExpression.contains("_")) {
      List<String> destructuredToken = new ArrayList<>(Arrays.asList(tokenExpression.split("_", -1)));
      String expressionType = destructuredToken.get(0);
      String dataTypeStringified = destructuredToken.get(1);
      DataType dataType;
      if (dataTypeStringified.equals("")) {
        dataType = DataType.getRandomDataType();
      } else {
        dataType = DataType.valueOf(dataTypeStringified);
      }

      if (expressionType.equals("expression")) {
        // generate value, function, and column with probability 1/6, 1/6, and 2/3
        this.currentTable = tableChoice;
        int randomExpression = Utils.getRandomInteger(5);
        if (randomExpression == 0) {
          return tokenize("value_" + dataTypeStringified, this.currentTable);
        } else if (randomExpression == 1) {
          return tokenize("function_" + dataTypeStringified, this.currentTable);
        } else {
          return tokenize("column_" + dataTypeStringified, this.currentTable);
        }
      } else if (expressionType.equals("value")) {
        return generateValueExpression(dataType);
      } else if (expressionType.equals("column")) {
        return generateColumnExpression(dataType, this.currentTable);
      } else if (expressionType.equals("function")) {
        return generateFunctionExpression(dataType, this.currentTable);
      } else if (expressionType.equals("condition")) {
        return generateConditionExpression(dataType, this.currentTable);
      }
    } else if (tokenExpression.equals("tableName")) {
      return generateTableNameExpression(this.currentTable);
    } else if (tokenExpression.equals("chosenTableName")) {
      return generateTableNameExpression(this.currentTable);
    } else if (tokenExpression.equals("numRows")) {
      return generateNumRowsExpression(this.currentTable);
    } else if (tokenExpression.equals("schemaValues")) {
      return generateSchemaValuesExpression(this.currentTable);
    }
    // else tokenExpression.equals("schemaData")
    return generateSchemaDataExpression(this.currentTable);
  }