io.yawp.repository.query.QueryBuilder.getCursor()方法的使用及代码示例

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

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

QueryBuilder.getCursor介绍

暂无

代码示例

代码示例来源:origin: feroult/yawp

public String getCursor() {
  return query.getCursor();
}

代码示例来源:origin: feroult/yawp

private String offset() {
  if (builder.getCursor() == null) {
    return "";
  }
  return String.format(" offset %s", builder.getCursor());
}

代码示例来源:origin: feroult/yawp

private void setCursor(List<Entity> entities) {
  if (entities.isEmpty()) {
    return;
  }
  long previousCursor = builder.getCursor() != null ? Long.valueOf(builder.getCursor()) : 0;
  builder.setCursor(String.valueOf(previousCursor + entities.size()));
}

代码示例来源:origin: feroult/yawp

private void fanout(List<Work> result) {
  if (result.size() >= BATCH_SIZE) {
    enqueueNextBatch(worksQuery().getCursor());
  }
}

代码示例来源:origin: feroult/yawp

private void refluxSourcesFromSink() {
  QueryBuilder<SinkMarker> q = prepareQuery();
  List<SinkMarker> sinkMarkers = q.list();
  if (sinkMarkers.size() == BATCH_SIZE) {
    enqueueNextBatch(q.getCursor());
  }
  refluxSources(sinkMarkers);
}

代码示例来源:origin: feroult/yawp

private FetchOptions configureFetchOptions(QueryBuilder<?> builder) {
  FetchOptions fetchOptions = FetchOptions.Builder.withDefaults();
  if (builder.getLimit() != null) {
    fetchOptions.limit(builder.getLimit());
  }
  if (builder.getCursor() != null) {
    fetchOptions.startCursor(Cursor.fromWebSafeString(builder.getCursor()));
  }
  return fetchOptions;
}

代码示例来源:origin: feroult/yawp

private List<T> executeQueryAt(int batchSize, int queryIndex) {
  QueryBuilder<?> q = getQueryAt(queryIndex);
  configureQuery(batchSize, q);
  List<T> list = executeQueryAt(queryIndex);
  cursor = q.getCursor();
  return list;
}

代码示例来源:origin: feroult/yawp

private <T> void updateCursor(QueryBuilder<?> builder, List<T> result) {
  if (result.size() == 0) {
    return;
  }
  T cursorObject = result.get(result.size() - 1);
  if (builder.getCursor() == null) {
    builder.setCursor(MockStore.createCursor(cursorObject));
  } else {
    MockStore.updateCursor(builder.getCursor(), cursorObject);
  }
}

代码示例来源:origin: feroult/yawp

private List<? extends IdRef<?>> sinkIds() {
    QueryBuilder<?> q = r.query(sinkClazz).order("id").limit(BATCH_SIZE);
    if (cursor != null) {
      q.cursor(cursor);
    }
    List<? extends IdRef<?>> ids = q.ids();
    if (ids.size() < BATCH_SIZE) {
      cursor = null;
    } else {
      cursor = q.getCursor();
    }
    return ids;
  }
}

代码示例来源:origin: feroult/yawp

private List<? extends IdRef<?>> sourceIds() {
    QueryBuilder<?> q = r.query(sourceClazz).order("id").limit(BATCH_SIZE);
    if (cursor != null) {
      q.cursor(cursor);
    }
    List<? extends IdRef<?>> ids = q.ids();
    if (ids.size() < BATCH_SIZE) {
      cursor = null;
    } else {
      cursor = q.getCursor();
    }
    return ids;
  }
}

代码示例来源:origin: feroult/yawp

@Override
public Object action() {
  QueryBuilder<?> query = query();
  if (id != null) {
    query.from(id);
  }
  boolean returnCursor = false;
  if (params.containsKey(QUERY_OPTIONS)) {
    QueryOptions options = QueryOptions.parse(params.get(QUERY_OPTIONS));
    query.options(options);
    returnCursor = options.returnCursor();
  }
  if (hasShieldCondition()) {
    query.and(shield.getWhere());
  }
  List<?> objects = list(query);
  if (returnCursor) {
    Map<String, Object> result = new HashMap<>();
    result.put("results", objects);
    result.put("cursor", query.getCursor());
    return result;
  }
  
  return objects;
}

代码示例来源:origin: feroult/yawp

private List<? extends IdRef<?>> sinkMarkerIds() {
    QueryBuilder<?> q = r.query(SinkMarker.class).from(sinkId).order("id").limit(BATCH_SIZE);
    if (cursor != null) {
      q.cursor(cursor);
    }
    List<? extends IdRef<?>> ids = q.ids();
    if (ids.size() < BATCH_SIZE) {
      cursor = null;
    } else {
      cursor = q.getCursor();
    }
    return ids;
  }
}

代码示例来源:origin: feroult/yawp

@SuppressWarnings("unchecked")
private <T> List<T> applyCursor(QueryBuilder<?> builder, List<Object> objects) {
  if (builder.getCursor() == null) {
    return (List<T>) objects;
  }
  List<T> result = new ArrayList<T>();
  IdRef<?> cursorId = MockStore.getCursor(builder.getCursor());
  boolean startAdd = false;
  for (Object object : objects) {
    if (startAdd) {
      result.add((T) object);
      continue;
    }
    ObjectHolder objectHolder = new ObjectHolder(object);
    if (cursorId.equals(objectHolder.getId())) {
      startAdd = true;
    }
  }
  return result;
}

代码示例来源:origin: feroult/yawp

@Test
public void testCursor() {
  saveManyBasicObjects(3);
  QueryBuilder<BasicObject> q = yawp(BasicObject.class).order("intValue", "desc").limit(1);
  List<BasicObject> objects1 = q.list();
  assertEquals(3, objects1.get(0).getIntValue());
  List<BasicObject> objects2 = q.list();
  assertEquals(2, objects2.get(0).getIntValue());
  List<BasicObject> objects3 = yawp(BasicObject.class).cursor(q.getCursor()).order("intValue", "desc").limit(1).list();
  assertEquals(1, objects3.get(0).getIntValue());
}

相关文章