/** * Adds a key-value which will be logged to the access log for this query (by doing toString() on the value * Multiple values may be set to the same key. A value cannot be removed once set. */ public void logValue(String key,Object value) { owner.getModel().getExecution().trace().logValue(key, value.toString()); }
/** Returns the execution trace this delegates to */ public Execution.Trace getTrace() { return owner.getModel().getExecution().trace(); }
/** Returns a short string description of this (includes the first few messages only, and no newlines) */ @Override public String toString() { return owner.getModel().getExecution().trace().toString(); }
/** Returns the values to be written to the access log for this */ public Iterator<Execution.Trace.LogValue> logValueIterator() { return owner.getModel().getExecution().trace().logValueIterator(); }
/** * Returns a property set anywhere in this context. * Note that even though this call is itself "thread robust", the object values returned * may in some scenarios not be written behind a synchronization barrier, so when accessing * objects which are not inherently thread safe, synchronization should be considered. * <p> * Note that this method have a time complexity which is proportional to * the number of cloned/created queries times the average number of properties in each. */ public Object getProperty(String name) { return owner.getModel().getExecution().trace().getProperty(name); }
/** Adds a context message to this context */ public void trace(String message, int traceLevel) { owner.getModel().getExecution().trace().trace(message,traceLevel); }
/** * Adds a property key-value to this context. * If the same name is set multiple times, the behavior is thus: * <ul> * <li>Within a single context (thread/query clone), the last value set is used</li> * <li>Across multiple traces, the <i>last</i> value from the <i>last</i> deepest nested thread/clone is used. * In the case of multiple threads writing the value concurrently to their clone, it is of course undefined * which one will be used.</li> * </ul> * * @param name the name of the property * @param value the value of the property, or null to set this property to null */ public void setProperty(String name,Object value) { owner.getModel().getExecution().trace().setProperty(name,value); }
public static ListenableFuture<Boolean> waitableRender(Result result, Query query, Renderer<Result> renderer, OutputStream stream) throws IOException { SearchResponse.trimHits(result); SearchResponse.removeEmptySummaryFeatureFields(result); return renderer.render(stream, result, query.getModel().getExecution(), query); }
@SuppressWarnings("UnusedParameters") public void queryContext(XMLWriter writer, QueryContext queryContext, Query owner) throws IOException { if (owner.getTraceLevel()!=0) { XMLWriter xmlWriter=XMLWriter.from(writer); xmlWriter.openTag("meta").attribute("type", QueryContext.ID); TraceNode traceRoot = owner.getModel().getExecution().trace().traceNode().root(); traceRoot.accept(new RenderingVisitor(xmlWriter, owner.getStartTime())); xmlWriter.closeTag(); } }
private void queryContext(XMLWriter writer, Query owner) { if (owner.getTraceLevel()!=0) { XMLWriter xmlWriter=XMLWriter.from(writer); xmlWriter.openTag("meta").attribute("type", QueryContext.ID); TraceNode traceRoot = owner.getModel().getExecution().trace().traceNode().root(); traceRoot.accept(new XmlRenderer.RenderingVisitor(xmlWriter, owner.getStartTime())); xmlWriter.closeTag(); } }
public boolean render(Writer writer) throws java.io.IOException { if (owner.getTraceLevel()!=0) { XMLWriter xmlWriter=XMLWriter.from(writer); xmlWriter.openTag("meta").attribute("type",ID); TraceNode traceRoot=owner.getModel().getExecution().trace().traceNode().root(); traceRoot.accept(new XmlRenderer.RenderingVisitor(xmlWriter, owner.getStartTime())); xmlWriter.closeTag(); } return true; }
public void queryContext(XMLWriter writer, QueryContext queryContext, Query owner) throws IOException { try { if (owner.getTraceLevel()!=0) { XMLWriter xmlWriter=XMLWriter.from(writer); xmlWriter.openTag("meta").attribute("type", QueryContext.ID); TraceNode traceRoot = owner.getModel().getExecution().trace().traceNode().root(); traceRoot.accept(new RenderingVisitor(xmlWriter, owner.getStartTime())); xmlWriter.closeTag(); } } catch (Exception e) { handleException(e); } }
/** * Convert String to query tree * * @param stringToParse The string to be converted to a * query tree * @param query Query object from searcher * @return Item The resulting query tree */ static Item convertStringToQTree(Query query, String stringToParse) { RewriterUtils.log(logger, query, "Converting string [" + stringToParse + "] to query tree"); if(stringToParse==null) { return new NullItem(); } Model model = query.getModel(); CustomParser parser = (CustomParser) ParserFactory.newInstance(model.getType(), ParserEnvironment.fromExecutionContext(query.getModel().getExecution().context())); IndexFacts indexFacts = new IndexFacts(); Item item = parser.parse(stringToParse, null, model.getParsingLanguage(), indexFacts.newSession(model.getSources(), model.getRestrict()), model.getDefaultIndex()); RewriterUtils.log(logger, query, "Converted string: [" + item.toString() + "]"); return item; }