All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.redis.om.spring.metamodel.indexed.NumericField Maven / Gradle / Ivy

package com.redis.om.spring.metamodel.indexed;

import java.lang.reflect.Field;
import java.util.Arrays;
import java.util.function.Consumer;

import com.redis.om.spring.metamodel.MetamodelField;
import com.redis.om.spring.search.stream.actions.NumIncrByAction;
import com.redis.om.spring.search.stream.predicates.numeric.BetweenPredicate;
import com.redis.om.spring.search.stream.predicates.numeric.EqualPredicate;
import com.redis.om.spring.search.stream.predicates.numeric.GreaterThanOrEqualPredicate;
import com.redis.om.spring.search.stream.predicates.numeric.GreaterThanPredicate;
import com.redis.om.spring.search.stream.predicates.numeric.InPredicate;
import com.redis.om.spring.search.stream.predicates.numeric.LessThanOrEqualPredicate;
import com.redis.om.spring.search.stream.predicates.numeric.LessThanPredicate;
import com.redis.om.spring.search.stream.predicates.numeric.NotEqualPredicate;

public class NumericField extends MetamodelField {

  public NumericField(Field field, boolean indexed) {
    super(field, indexed);
  }
  
  public EqualPredicate eq(T value) {
    return new EqualPredicate<>(field,value);
  }
  
  public NotEqualPredicate notEq(T value) {
    return new NotEqualPredicate<>(field,value);
  }
  
  public GreaterThanPredicate gt(T value) {
    return new GreaterThanPredicate<>(field,value);
  }
  
  public GreaterThanOrEqualPredicate ge(T value) {
    return new GreaterThanOrEqualPredicate<>(field,value);
  }
  
  public LessThanPredicate lt(T value) {
    return new LessThanPredicate<>(field,value);
  }
  
  public LessThanOrEqualPredicate le(T value) {
    return new LessThanOrEqualPredicate<>(field,value);
  }
  
  public BetweenPredicate between(T min, T max) {
    return new BetweenPredicate<>(field,min,max);
  }
  
  @SuppressWarnings("unchecked")
  public InPredicate in(T... values) {
    return new InPredicate<>(field, Arrays.asList(values));
  }

  public Consumer incrBy(Long value) {
    return new NumIncrByAction<>(field, value);
  }
  
  public Consumer decrBy(Long value) {
    return new NumIncrByAction<>(field, -value);
  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy