com.psddev.dari.db.Query.getSorters()方法的使用及代码示例

x33g5p2x  于2022-01-28 转载在 其他  
字(6.3k)|赞(0)|评价(0)|浏览(120)

本文整理了Java中com.psddev.dari.db.Query.getSorters方法的一些代码示例,展示了Query.getSorters的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Query.getSorters方法的具体详情如下:
包路径:com.psddev.dari.db.Query
类名称:Query
方法名:getSorters

Query.getSorters介绍

[英]Returns the list of sorters applied to the result.
[中]返回应用于结果的分类器列表。

代码示例

代码示例来源:origin: perfectsense/dari

/** Adds the given {@code sorter}. */
public Query<E> sort(Sorter sorter) {
  getSorters().add(sorter);
  return this;
}

代码示例来源:origin: perfectsense/dari

@Override
  public Iterator<T> iterator() {
    return query.getSorters().isEmpty()
        ? new ByIdIterator<T>(query, fetchSize)
        : new PaginatedIterator<T>(query, fetchSize);
  }
}

代码示例来源:origin: perfectsense/dari

public ByIdIterator(Query<T> query, int fetchSize) {
  if (!query.getSorters().isEmpty()) {
    throw new IllegalArgumentException("Can't iterate over a query that has sorters!");
  }
  this.query = query.clone().timeout(0.0).sortAscending("_type").sortAscending("_id");
  this.fetchSize = fetchSize > 0 ? fetchSize : 200;
}

代码示例来源:origin: perfectsense/dari

@Override
public <T> Iterable<T> readIterable(Query<T> query, int fetchSize) {
  if (query.getSorters().isEmpty()) {
    if (!ObjectUtils.to(boolean.class, query.getOptions().get(DISABLE_BY_ID_ITERATOR_OPTION))) {
      return ByIdIterator.iterable(query, fetchSize);
    }
  }
  return selectIterable(buildSelectStatement(query), fetchSize, query);
}

代码示例来源:origin: perfectsense/brightspot-cms

public Query<?> toPreviousQuery(State state) {
  String sortFieldName = getSortFieldName();
  Query<?> query = toQuery().and(sortFieldName + " <= ? and _id != ?", state.get(sortFieldName), state.getId());
  for (ListIterator<Sorter> i = query.getSorters().listIterator(); i.hasNext();) {
    Sorter sorter = i.next();
    if (Sorter.ASCENDING_OPERATOR.equals(sorter.getOperator())) {
      List<Object> options = sorter.getOptions();
      if (options != null
          && options.size() > 0
          && sortFieldName.equals(options.get(0))) {
        i.set(new Sorter(Sorter.DESCENDING_OPERATOR, options));
      }
    }
  }
  return query;
}

代码示例来源:origin: perfectsense/dari

/**
 * Maps all keys used in this query to the fields of the types in the
 * given {@code environment}. This is a helper method for database
 * implementations and isn't meant for general consumption.
 *
 * @see #mapEmbeddedKey
 */
public Map<String, MappedKey> mapEmbeddedKeys(DatabaseEnvironment environment) {
  Map<String, MappedKey> mappedKeys = new HashMap<String, MappedKey>();
  addMappedPredicate(mappedKeys, environment, getPredicate());
  for (Sorter sorter : getSorters()) {
    Object first = sorter.getOptions().get(0);
    if (first instanceof String) {
      addMappedKey(mappedKeys, environment, (String) first);
    }
  }
  return mappedKeys;
}

代码示例来源:origin: perfectsense/dari

for (Sorter sorter : getSorters()) {
  codeBuilder.append(".sort(\"");
  codeBuilder.append(sorter.getOperator());

代码示例来源:origin: perfectsense/dari

/**
 * Returns a list of values to be matched against the ID if and only if
 * the query contains a single predicate in the form of {@code _id = ?}.
 *
 * @return {@code null} if the query matches against anything other than ID.
 */
public List<Object> findIdOnlyQueryValues() {
  if (getSorters().isEmpty()) {
    Predicate predicate = getPredicate();
    if (predicate instanceof ComparisonPredicate) {
      ComparisonPredicate comparison = (ComparisonPredicate) predicate;
      if (ID_KEY.equals(comparison.getKey())
          && PredicateParser.EQUALS_ANY_OPERATOR.equals(comparison.getOperator())
          && comparison.findValueQuery() == null) {
        return comparison.getValues();
      }
    }
  }
  return null;
}

代码示例来源:origin: perfectsense/dari

for (Sorter sorter : query.getSorters()) {
  addOrderByClause(orderByBuilder, sorter, false, true);

代码示例来源:origin: perfectsense/dari

/** Builds MongoDB query based on the given {@code query}. */
public DBObject buildMongoSort(Query<?> query) {
  List<Sorter> sorters = query.getSorters();
  if (sorters.isEmpty()) {
    return new BasicDBObject();
  }
  BasicDBObject mongoSorter = new BasicDBObject();
  for (Sorter sorter : sorters) {
    String operator = sorter.getOperator();
    if (Sorter.ASCENDING_OPERATOR.equals(operator)) {
      String indexKey = query.mapEmbeddedKey(getEnvironment(), (String) sorter.getOptions().get(0)).getIndexKey(null);
      mongoSorter.append(indexKey, 1);
    } else if (Sorter.DESCENDING_OPERATOR.equals(operator)) {
      String indexKey = query.mapEmbeddedKey(getEnvironment(), (String) sorter.getOptions().get(0)).getIndexKey(null);
      mongoSorter.append(indexKey, -1);
    } else {
      throw new UnsupportedSorterException(this, sorter);
    }
  }
  return mongoSorter;
}

代码示例来源:origin: perfectsense/dari

for (Sorter sorter : query.getSorters()) {
  String op = sorter.getOperator();

代码示例来源:origin: perfectsense/dari

for (Sorter sorter : query.getSorters()) {
  addOrderByClause(orderByBuilder, sorter, false, true);

代码示例来源:origin: perfectsense/dari

for (Sorter sorter : query.getSorters()) {
  codeBuilder.append(".sort(\"");
  codeBuilder.append(sorter.getOperator());

代码示例来源:origin: perfectsense/dari

@Override
public <T> T readFirst(Query<T> query) {
  if (query.getSorters().isEmpty()) {

代码示例来源:origin: perfectsense/dari

@Override
public <T> T readFirst(Query<T> query) {
  if (query.getSorters().isEmpty()) {

代码示例来源:origin: perfectsense/dari

for (Sorter sorter : query.getSorters()) {
  String operator = sorter.getOperator();
  boolean isAscending = Sorter.ASCENDING_OPERATOR.equals(operator);

代码示例来源:origin: perfectsense/dari

@Override
public boolean equals(Object other) {
  if (this == other) {
    return true;
  } else if (other instanceof Query) {
    Query<?> otherQuery = (Query<?>) other;
    return ObjectUtils.equals(group, otherQuery.group)
        && ObjectUtils.equals(objectClass, otherQuery.objectClass)
        && ObjectUtils.equals(predicate, otherQuery.predicate)
        && ObjectUtils.equals(getSorters(), otherQuery.getSorters())
        && ObjectUtils.equals(getDatabase(), otherQuery.getDatabase())
        && ObjectUtils.equals(getFields(), otherQuery.getFields())
        && ObjectUtils.equals(getOptions(), otherQuery.getOptions())
        && isResolveToReferenceOnly == otherQuery.isResolveToReferenceOnly
        && ObjectUtils.equals(timeout, otherQuery.timeout);
  } else {
    return false;
  }
}

代码示例来源:origin: perfectsense/dari

@Override
public int hashCode() {
  return ObjectUtils.hashCode(
      getGroup(),
      getObjectClass(),
      getPredicate(),
      getSorters(),
      getDatabase(),
      getFields(),
      getOptions(),
      isResolveToReferenceOnly(),
      getTimeout());
}

代码示例来源:origin: perfectsense/dari

for (Sorter sorter : query.getSorters()) {
  SortField<?> sortField = database.sort(sorter, new SqlSortOptions(recordTableAlias));

代码示例来源:origin: perfectsense/dari

for (Sorter sorter : query.getSorters()) {
  String op = sorter.getOperator();

相关文章