Skip to content

Instantly share code, notes, and snippets.

@jpomykala
Last active December 21, 2018 12:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jpomykala/37a6db92f6350e6b6d6546b359d436ea to your computer and use it in GitHub Desktop.
Save jpomykala/37a6db92f6350e6b6d6546b359d436ea to your computer and use it in GitHub Desktop.
Filter params to JooQ Condition - Java 8+
public class OfferSearchConditionFactory {
public static Collection<Condition> create(OfferSearchFilter searchFilter) {
List<Condition> conditions = Lists.newArrayList();
Optional<OfferSearchFilter> filter = Optional.of(searchFilter);
filter
.map(OfferSearchFilter::getUserId)
.map(USER.USER_ID::eq)
.ifPresent(conditions::add);
filter
.map(OfferSearchFilter::getEndPrice)
.map(BigDecimal::valueOf)
.map(OFFER.PRICE::lessOrEqual)
.ifPresent(conditions::add);
filter
.map(OfferSearchFilter::getStartPrice)
.map(BigDecimal::valueOf)
.map(OFFER.PRICE::greaterOrEqual)
.ifPresent(conditions::add);
filter
.map(OfferSearchFilter::getMaxPerGroup)
.map(OFFER.MAX_PER_GROUP::lessOrEqual)
.ifPresent(conditions::add);
return conditions;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment