com.bagri.core.model.Query类的使用及代码示例

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

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

Query介绍

[英]Represents cached compiled query
[中]表示缓存的编译查询

代码示例

代码示例来源:origin: dsukhoroslov/bagri

  1. /**
  2. * {@inheritDoc}
  3. */
  4. @Override
  5. public Query clone() {
  6. return new Query(query, readOnly, xdmQuery.clone());
  7. }

代码示例来源:origin: dsukhoroslov/bagri

  1. @Override
  2. public void write(ObjectDataOutput out, Query xQuery) throws IOException {
  3. out.writeUTF(xQuery.getQuery());
  4. out.writeBoolean(xQuery.isReadOnly());
  5. out.writeObject(xQuery.getXdmQuery());
  6. }

代码示例来源:origin: dsukhoroslov/bagri

  1. @Override
  2. public Collection<String> prepareQuery(String query) { //throws BagriException {
  3. logger.trace("prepareQuery.enter; query: {}", query);
  4. Collection<String> result = null;
  5. Query xq = xqCache.get(getQueryKey(query));
  6. if (xq != null) {
  7. result = xq.getXdmQuery().getParamNames();
  8. }
  9. logger.trace("prepareQuery.exit; returning: {}", result);
  10. return result;
  11. }

代码示例来源:origin: dsukhoroslov/bagri

  1. private boolean addQuery(Query query) {
  2. Integer qKey = getQueryKey(query.getQuery());
  3. //logger.trace("addQuery.enter; got code: {}; query cache size: {}", qCode, xQueries.size());
  4. //boolean result = xqCache.putIfAbsent(qCode, new XDMQuery(query, readOnly, xdmQuery)) == null;
  5. if (!xqCache.containsKey(qKey)) {
  6. // throws exception: Failed to serialize 'com.bagri.core.model.Query'
  7. try {
  8. xqCache.put(qKey, query);
  9. } catch (Exception ex) {
  10. logger.error("addQuery.error", ex);
  11. }
  12. return true;
  13. }
  14. return false;
  15. }

代码示例来源:origin: dsukhoroslov/bagri

  1. @Override
  2. public boolean isQueryReadOnly(String query, Properties props) throws BagriException {
  3. Integer qKey = getQueryKey(query);
  4. Query xQuery = xqCache.get(qKey);
  5. if (xQuery == null) {
  6. XQProcessor xqp;
  7. String clientId = props.getProperty(pn_client_id);
  8. if (clientId == null) {
  9. logger.warn("isQueryReadOnly; got no clientId");
  10. xqp = repo.getXQProcessor();
  11. } else {
  12. xqp = repo.getXQProcessor(clientId);
  13. }
  14. try {
  15. return xqp.isQueryReadOnly(query, props);
  16. } catch (XQException ex) {
  17. throw new BagriException(ex, BagriException.ecQuery);
  18. }
  19. }
  20. return xQuery.isReadOnly();
  21. }

代码示例来源:origin: dsukhoroslov/bagri

  1. private PathExpression getCachedPathExpression(Query query, int pathId) {
  2. for (ExpressionContainer ec: query.getXdmQuery().getContainers()) {
  3. for (Expression ex: ec.getBuilder().getExpressions()) {
  4. if (ex.isCached()) {
  5. QueriedPath qp = ((PathExpression) ex).getCachedPath();
  6. if (qp.getPathIds().contains(pathId)) {
  7. return (PathExpression) ex;
  8. }
  9. }
  10. }
  11. }
  12. return null;
  13. }

代码示例来源:origin: dsukhoroslov/bagri

  1. @Override
  2. public boolean addQuery(String query, boolean readOnly, QueryBuilder xdmQuery) {
  3. return addQuery(new Query(query, readOnly, xdmQuery));
  4. }

代码示例来源:origin: dsukhoroslov/bagri

  1. private boolean intersects(Query query, Collection<Integer> pathIds, boolean checkIndexed) {
  2. for (ExpressionContainer ec: query.getXdmQuery().getContainers()) {
  3. for (Expression ex: ec.getBuilder().getExpressions()) {
  4. if (ex.isCached()) {
  5. QueriedPath qp = ((PathExpression) ex).getCachedPath();
  6. if (!checkIndexed || qp.isIndexed()) {
  7. for (Integer pid: pathIds) {
  8. if (qp.getPathIds().contains(pid)) {
  9. return true;
  10. }
  11. }
  12. }
  13. }
  14. }
  15. }
  16. return false;
  17. }

代码示例来源:origin: dsukhoroslov/bagri

  1. @Override
  2. public Query getCurrentQuery(final String query) throws XQException {
  3. QueryBuilder qb = clnFinder.getQuery();
  4. if (qb == null) {
  5. // not 'collection' query?
  6. // yes, it is 'document' or updating query, there is no QueryBuilder for it anyway!
  7. return null;
  8. }
  9. return new Query(query, isQueryReadOnly(query), qb);
  10. }

代码示例来源:origin: dsukhoroslov/bagri

  1. xdmQuery = xQuery.getXdmQuery();

代码示例来源:origin: dsukhoroslov/bagri

  1. @Override
  2. public Query read(ObjectDataInput in) throws IOException {
  3. return new Query(in.readUTF(),
  4. in.readBoolean(),
  5. (QueryBuilder) in.readObject());
  6. }

相关文章