public ResultObjectProvider executeQuery(StoreQuery q, Object[] params, Range range) { QueryCacheStoreQuery cq = (QueryCacheStoreQuery) q; QueryKey key = QueryKey.newInstance(cq.getContext(), _ex.isPacking(q), params, _candidate, _subs, range.start, range.end); List cached = cq.checkCache(key); if (cached != null) return new ListResultObjectProvider(cached); ResultObjectProvider rop = _ex.executeQuery(cq.getDelegate(), params, range); return cq.wrapResult(rop, key); }
/** * Wrap the result object provider returned by our delegate in a * caching provider. */ private ResultObjectProvider wrapResult(ResultObjectProvider rop, QueryKey key) { if (key == null) return rop; return new CachingResultObjectProvider(rop, getContext(). getProjectionAliases().length > 0, key); }
private static StoreQuery unwrap(StoreQuery q) { return ((QueryCacheStoreQuery) q).getDelegate(); } }
/** * Clear the cached queries associated with the access path * classes in the query. This is done when bulk operations * (such as deletes or updates) are performed so that the * cache remains up-to-date. */ private void clearAccessPath(StoreQuery q) { if (q == null) return; ClassMetaData[] cmd = getAccessPathMetaDatas(q); if (cmd == null || cmd.length == 0) return; List classes = new ArrayList(cmd.length); for (int i = 0; i < cmd.length; i++) classes.add(cmd[i].getDescribedType()); // evict from the query cache QueryCacheStoreQuery cq = (QueryCacheStoreQuery) q; cq.getCache().onTypesChanged(new TypesChangedEvent (q.getContext(), classes)); // evict from the data cache for (int i = 0; i < cmd.length; i++) { if (cmd[i].getDataCache() != null) cmd[i].getDataCache().removeAll( cmd[i].getDescribedType(), true); } }
default: if (obj instanceof CachedObjectId) return fromObjectId(((CachedObjectId) obj).oid, ctx); Object oid = ctx.getObjectId(obj); if (oid != null)
public StoreQuery newQuery(String language) { StoreQuery q = super.newQuery(language); // if the query can't be parsed or it's using a non-parsed language // (one for which there is no ExpressionParser), we can't cache it. if (q == null || QueryLanguages.parserForLanguage(language) == null) return q; QueryCache queryCache = _ctx.getConfiguration(). getDataCacheManagerInstance().getSystemQueryCache(); if (queryCache == null) return q; return new QueryCacheStoreQuery(q, queryCache); }
/** * Wrap the result object provider returned by our delegate in a * caching provider. */ private ResultObjectProvider wrapResult(ResultObjectProvider rop, QueryKey key) { if (key == null) return rop; return new CachingResultObjectProvider(rop, getContext(). getProjectionAliases().length > 0, key); }
private static StoreQuery unwrap(StoreQuery q) { return ((QueryCacheStoreQuery) q).getDelegate(); } }
/** * Clear the cached queries associated with the access path * classes in the query. This is done when bulk operations * (such as deletes or updates) are performed so that the * cache remains up-to-date. */ private void clearAccessPath(StoreQuery q) { if (q == null) return; ClassMetaData[] cmd = getAccessPathMetaDatas(q); if (cmd == null || cmd.length == 0) return; List<Class<?>> classes = new ArrayList<Class<?>>(cmd.length); for (int i = 0; i < cmd.length; i++) classes.add(cmd[i].getDescribedType()); // evict from the query cache QueryCacheStoreQuery cq = (QueryCacheStoreQuery) q; cq.getCache().onTypesChanged(new TypesChangedEvent (q.getContext(), classes)); // evict from the data cache for (int i = 0; i < cmd.length; i++) { if (cmd[i].getDataCache() != null && cmd[i].getDataCache().getEvictOnBulkUpdate()) cmd[i].getDataCache().removeAll( cmd[i].getDescribedType(), true); } }
default: if (obj instanceof CachedObjectId) return fromObjectId(((CachedObjectId) obj).oid, ctx, fc); Object oid = ctx.getObjectId(obj); if (oid != null)
public StoreQuery newQuery(String language) { StoreQuery sq = newStoreQuery(language); if (sq == null || QueryLanguages.parserForLanguage(language) == null) { return sq; } QueryCache queryCache = _ctx.getConfiguration().getDataCacheManagerInstance().getSystemQueryCache(); if (queryCache == null) { return sq; } return new QueryCacheStoreQuery(sq, queryCache); }
public ResultObjectProvider executeQuery(StoreQuery q, Object[] params, Range range) { QueryCacheStoreQuery cq = (QueryCacheStoreQuery) q; Object parsed = cq.getDelegate().getCompilation(); QueryKey key = QueryKey.newInstance(cq.getContext(), _ex.isPacking(q), params, _candidate, _subs, range.start, range.end, parsed); List<Object> cached = cq.checkCache(key); if (cached != null) return new ListResultObjectProvider(cached); ResultObjectProvider rop = _ex.executeQuery(cq.getDelegate(), params, range); if (_fc.getQueryCacheEnabled()) return cq.wrapResult(rop, key); else return rop; }
/** * Wrap the result object provider returned by our delegate in a * caching provider. */ private ResultObjectProvider wrapResult(ResultObjectProvider rop, QueryKey key) { if (key == null) return rop; return new CachingResultObjectProvider(rop, getContext(). getProjectionAliases().length > 0, key); }
private static StoreQuery unwrap(StoreQuery q) { return ((QueryCacheStoreQuery) q).getDelegate(); } }
/** * Clear the cached queries associated with the access path * classes in the query. This is done when bulk operations * (such as deletes or updates) are performed so that the * cache remains up-to-date. */ private void clearAccessPath(StoreQuery q) { if (q == null) return; ClassMetaData[] cmd = getAccessPathMetaDatas(q); if (cmd == null || cmd.length == 0) return; List<Class<?>> classes = new ArrayList<Class<?>>(cmd.length); for (int i = 0; i < cmd.length; i++) classes.add(cmd[i].getDescribedType()); // evict from the query cache QueryCacheStoreQuery cq = (QueryCacheStoreQuery) q; cq.getCache().onTypesChanged(new TypesChangedEvent (q.getContext(), classes)); // evict from the data cache for (int i = 0; i < cmd.length; i++) { if (cmd[i].getDataCache() != null && cmd[i].getDataCache().getEvictOnBulkUpdate()) cmd[i].getDataCache().removeAll( cmd[i].getDescribedType(), true); } }
default: if (obj instanceof CachedObjectId) return fromObjectId(((CachedObjectId) obj).oid, ctx); Object oid = ctx.getObjectId(obj); if (oid != null)
public StoreQuery newQuery(String language) { StoreQuery sq = newStoreQuery(language); if (sq == null || QueryLanguages.parserForLanguage(language) == null) { return sq; } QueryCache queryCache = _ctx.getConfiguration().getDataCacheManagerInstance().getSystemQueryCache(); if (queryCache == null) { return sq; } return new QueryCacheStoreQuery(sq, queryCache); }
public ResultObjectProvider executeQuery(StoreQuery q, Object[] params, Range range) { QueryCacheStoreQuery cq = (QueryCacheStoreQuery) q; Object parsed = cq.getDelegate().getCompilation(); QueryKey key = QueryKey.newInstance(cq.getContext(), _ex.isPacking(q), params, _candidate, _subs, range.start, range.end, parsed); List<Object> cached = cq.checkCache(key); if (cached != null) return new ListResultObjectProvider(cached); ResultObjectProvider rop = _ex.executeQuery(cq.getDelegate(), params, range); if (_fc.getQueryCacheEnabled()) return cq.wrapResult(rop, key); else return rop; }
/** * Wrap the result object provider returned by our delegate in a * caching provider. */ private ResultObjectProvider wrapResult(ResultObjectProvider rop, QueryKey key) { if (key == null) return rop; return new CachingResultObjectProvider(rop, getContext(). getProjectionAliases().length > 0, key); }
private static StoreQuery unwrap(StoreQuery q) { return ((QueryCacheStoreQuery) q).getDelegate(); } }