@Override public Node alloc(final String label) { Callable<Node> getter = new Callable<Node>() { @Override public Node call() { return alloc(Bytes.string2bytes(label)); } }; Node n = cache.getOrFill(label, getter); return n; }
@Override public T getOrFill(Key key, Callable<T> callable) { return cache.getOrFill(key, callable) ; }
@Override public T getOrFill(Key key, Callable<T> callable) { return cache.getOrFill(key, callable) ; }
@Override public Graph getGraph(Node gn) { Node key = ( gn != null ) ? gn : Quad.defaultGraphNodeGenerated; return ngCache.getOrFill(key, ()->GraphViewSwitchable.createNamedGraph(this, key)); } }
private IRI resolveSilentCache(final String uriStr) { Callable<IRI> filler = () -> resolveSilentNoCache(uriStr); return resolvedIRIs.getOrFill(uriStr, filler); } }
@Override public IRI resolveSilent(final String uriStr) { if ( resolvedIRIs == null ) return iriFactory().create(uriStr); Callable<IRI> filler = () -> iriFactory().create(uriStr); IRI iri = resolvedIRIs.getOrFill(uriStr, filler); return iri; }
private ListMultimap<String,TextHit> query(Node property, String queryString, String lang, int limit, String highlight, ExecutionContext execCxt) { String graphURI = chooseGraphURI(execCxt); explainQuery(queryString, limit, execCxt, graphURI); if (textIndex.getDocDef().areQueriesCached()) { // Cache-key does not matter if lang or graphURI are null String cacheKey = limit + " " + property + " " + queryString + " " + lang + " " + graphURI ; Cache<String, ListMultimap<String, TextHit>> queryCache = prepareCache(execCxt); log.trace("Caching Text query: {} with key: >>{}<< in cache: {}", queryString, cacheKey, queryCache) ; return queryCache.getOrFill(cacheKey, ()->performQuery(property, queryString, graphURI, lang, limit, highlight)); } else { log.trace("Executing w/o cache Text query: {}", queryString) ; return performQuery(property, queryString, graphURI, lang, limit, highlight); } }
private ListMultimap<String,TextHit> query(Node property, String queryString, String lang, int limit, String highlight, ExecutionContext execCxt) { String graphURI = chooseGraphURI(execCxt); explainQuery(queryString, limit, execCxt, graphURI); if (textIndex.getDocDef().areQueriesCached()) { // Cache-key does not matter if lang or graphURI are null String cacheKey = limit + " " + property + " " + queryString + " " + lang + " " + graphURI ; Cache<String, ListMultimap<String, TextHit>> queryCache = prepareCache(execCxt); log.trace("Caching Text query: {} with key: >>{}<< in cache: {}", queryString, cacheKey, queryCache) ; return queryCache.getOrFill(cacheKey, ()->performQuery(property, queryString, graphURI, lang, limit, highlight)); } else { log.trace("Executing w/o cache Text query: {}", queryString) ; return performQuery(property, queryString, graphURI, lang, limit, highlight); } }
private ListMultimap<String,TextHit> query(String uri, Node property, String queryString, String lang, int limit, String highlight, ExecutionContext execCxt) { String graphURI = chooseGraphURI(execCxt); explainQuery(queryString, limit, execCxt, graphURI); if (textIndex.getDocDef().areQueriesCached()) { // Cache-key does not matter if lang or graphURI are null String cacheKey = uri + " " + limit + " " + property + " " + queryString + " " + lang + " " + graphURI ; Cache<String, ListMultimap<String, TextHit>> queryCache = prepareCache(execCxt); log.trace("Caching Text query: {} with key: >>{}<< in cache: {}", queryString, cacheKey, queryCache) ; return queryCache.getOrFill(cacheKey, ()->performQuery(uri, property, queryString, graphURI, lang, limit, highlight)); } else { log.trace("Executing w/o cache Text query: {}", queryString) ; return performQuery(uri, property, queryString, graphURI, lang, limit, highlight); } }
private ListMultimap<String,TextHit> query(String uri, Node property, String queryString, String lang, int limit, String highlight, ExecutionContext execCxt) { String graphURI = chooseGraphURI(execCxt); explainQuery(queryString, limit, execCxt, graphURI); if (textIndex.getDocDef().areQueriesCached()) { // Cache-key does not matter if lang or graphURI are null String cacheKey = uri + " " + limit + " " + property + " " + queryString + " " + lang + " " + graphURI ; Cache<String, ListMultimap<String, TextHit>> queryCache = prepareCache(execCxt); log.trace("Caching Text query: {} with key: >>{}<< in cache: {}", queryString, cacheKey, queryCache) ; return queryCache.getOrFill(cacheKey, ()->performQuery(uri, property, queryString, graphURI, lang, limit, highlight)); } else { log.trace("Executing w/o cache Text query: {}", queryString) ; return performQuery(uri, property, queryString, graphURI, lang, limit, highlight); } }
@Test public void cacheGetter_2() { Cache<Integer, String> cache = CacheFactory.createCache(2) ; String str1 = cache.getOrFill(1, getter(1)) ; String str2 = cache.getOrFill(2, getter(2)) ; String str3 = cache.getOrFill(3, getter(3)) ; assertEquals("1", str1) ; assertEquals("2", str2) ; assertEquals("3", str3) ; cache.put(1, "10") ; str1 = cache.getIfPresent(1) ; assertEquals("10", str1) ; }
if ( fnNode.isURI() ) { String functionIRI = fnNode.getURI(); Function function = cache1.getOrFill(functionIRI, ()->buildFunction(functionIRI)); if ( function == null ) throw new ExprEvalException("fn:apply: Unknown function: <"+functionId+">");
@Test public void cacheGetter_1() { Cache<Integer, String> cache = CacheFactory.createCache(2) ; String str = cache.getOrFill(1, getter(1)) ; assertEquals("1", str) ; }