private List getSearchConditionFields()

in src/main/java/com/epam/digital/data/platform/generator/factory/impl/SearchConditionScopeFactory.java [80:147]


  private List<Field> getSearchConditionFields(Table table) {
    var searchConditions = searchConditionProvider.findFor(getCutTableName(table));

    var columnToSearchTypeMap = searchConditions.getColumnToSearchType();
    List<Field> fields = new ArrayList<>();
    fields.addAll(
        getColumnsOfSearchType(columnToSearchTypeMap, SearchType.EQUAL)
            .map(
                sc -> mapColumnConditionToField(table, sc, getPropertyName(sc), this::typeToString))
            .collect(toList()));
    fields.addAll(
        getColumnsOfSearchType(columnToSearchTypeMap, SearchType.NOT_EQUAL)
            .map(
                sc -> mapColumnConditionToField(table, sc, getPropertyName(sc), this::typeToString))
            .collect(toList()));
    fields.addAll(
        getColumnsOfSearchType(columnToSearchTypeMap, SearchType.CONTAINS)
            .map(
                sc -> mapColumnConditionToField(table, sc, getPropertyName(sc), this::typeToString))
            .collect(toList()));
    fields.addAll(
        getColumnsOfSearchType(columnToSearchTypeMap, SearchType.STARTS_WITH)
            .map(
                sc -> mapColumnConditionToField(table, sc, getPropertyName(sc), this::typeToString))
            .collect(toList()));
    fields.addAll(
        getColumnsOfSearchType(columnToSearchTypeMap, SearchType.STARTS_WITH_ARRAY)
            .map(
                sc -> mapColumnConditionToField(table, sc, getPropertyName(sc), this::typeToString))
            .collect(toList()));
    fields.addAll(
        getColumnsOfSearchType(columnToSearchTypeMap, SearchType.IN)
            .map(
                sc ->
                    mapColumnConditionToField(
                        table, sc, getPropertyName(sc), this::getFieldTypeForIn))
            .collect(toList()));
    fields.addAll(
        getColumnsOfSearchType(columnToSearchTypeMap, SearchType.NOT_IN)
            .map(
                sc ->
                    mapColumnConditionToField(
                        table, sc, getPropertyName(sc), this::getFieldTypeForIn))
            .collect(toList()));
    fields.addAll(
        getColumnsOfSearchType(columnToSearchTypeMap, SearchType.BETWEEN)
            .flatMap(
                sc ->
                    Stream.of(
                        mapColumnConditionToField(
                            table, sc, getPropertyName(sc) + "From", this::typeToString),
                        mapColumnConditionToField(
                            table, sc, getPropertyName(sc) + "To", this::typeToString)))
            .collect(toList()));
    if (SearchConditionPaginationType.isTypeOffset(searchConditions.getPagination())) {
      fields.addAll(
          of(
              getAuxiliaryField("limit", Integer.class),
              getAuxiliaryField("offset", Integer.class)));
    } else if (SearchConditionPaginationType.isTypePage(searchConditions.getPagination())) {
      fields.addAll(
          of(
              getAuxiliaryField("pageSize", Integer.class),
              getAuxiliaryField("pageNo", Integer.class)));
    }

    return fields;
  }