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

uk.co.mruoc.nac.entities.UserPageRequest Maven / Gradle / Ivy

The newest version!
package uk.co.mruoc.nac.entities;

import java.util.Collection;
import java.util.Collections;
import java.util.Optional;
import java.util.Set;
import lombok.Builder;
import lombok.Data;
import org.apache.commons.collections4.CollectionUtils;

@Builder(toBuilder = true)
@Data
public class UserPageRequest implements PageRequest {

  private final long limit;
  private final long offset;
  private final Collection sort;
  private final Collection groups;
  private final String searchTerm;

  @Override
  public Collection getSort() {
    return defaultIfEmpty(sort, Set.of(SortOrder.asc("username")));
  }

  public Collection getGroups() {
    return defaultIfEmpty(groups, Collections.emptySet());
  }

  public Optional getSearchTerm() {
    return Optional.ofNullable(searchTerm);
  }

  private  Collection defaultIfEmpty(Collection values, Collection defaults) {
    if (CollectionUtils.isEmpty(values)) {
      return defaults;
    }
    return values;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy