package com.sequenceiq.cloudbreak.repository;
import java.util.Date;
import org.springframework.data.jpa.domain.Specification;
import com.sequenceiq.cloudbreak.domain.CloudbreakUsage;
public class CloudbreakUsageSpecifications {
private CloudbreakUsageSpecifications() {
}
public static Specification<CloudbreakUsage> usagesSince(final Long since) {
return (cloudbreakUsageRoot, query, cb) -> (since == null) ? cb.and() : cb.greaterThanOrEqualTo(cloudbreakUsageRoot.get("day"), new Date(since));
}
public static Specification<CloudbreakUsage> usagesWithStringFields(final String field, final String value) {
return (cloudbreakUsageRoot, query, cb) -> (value == null) ? cb.and() : cb.equal(cloudbreakUsageRoot.get(field), value);
}
public static Specification<CloudbreakUsage> usagesBefore(final Long date) {
return (cloudbreakUsageRoot, query, cb) -> (date == null) ? cb.and() : cb.lessThan(cloudbreakUsageRoot.get("day"), new Date(date));
}
}