/** * {@inheritDoc} */ public Results executeQuery(StoreQuery query) { if (searchManager == null) { throw new UnsupportedOperationException("Query execution not supported by this store type: " + getClass().getName()); } DynamicAttributesExtractor dynExtractor = query.getCache().getCacheConfiguration().getDynamicExtractor(); return searchManager.executeQuery(query, attributeExtractors, dynExtractor); }
/** * {@inheritDoc} */ @Override public Set<Attribute> getSearchAttributes() { if (searchManager == null) { throw new InvalidConfigurationException("Search attributes not supported by this store type: " + getClass().getName()); } return new HashSet<Attribute>(searchManager.getSearchAttributes(cacheName)); }
/** * {@inheritDoc} */ public boolean putWithWriter(Element element, CacheWriterManager writerManager) throws CacheException { if (searchManager != null) { searchManager.put(cache.getName(), -1, element, null, attributeExtractors, cache.getCacheConfiguration().getDynamicExtractor()); } long delta = poolAccessor.add(element.getObjectKey(), element.getObjectValue(), map.storedObject(element), storePinned); if (delta > -1) { final ReentrantReadWriteLock lock = map.lockFor(element.getObjectKey()); lock.writeLock().lock(); try { Element old = map.put(element.getObjectKey(), element, delta); if (writerManager != null) { try { writerManager.put(element); } catch (RuntimeException e) { throw new StoreUpdateException(e, old != null); } } checkCapacity(element); return old == null; } finally { lock.writeLock().unlock(); } } else { notifyDirectEviction(element); return true; } }
searchManager.put(cache.getName(), -1, element, null, attributeExtractors, cache.getCacheConfiguration().getDynamicExtractor());
/** * {@inheritDoc} */ public Results executeQuery(StoreQuery query) { if (searchManager == null) { throw new UnsupportedOperationException("Query execution not supported by this store type: " + getClass().getName()); } return searchManager.executeQuery(query.getCache().getName(), query, attributeExtractors); }
/** * {@inheritDoc} */ @Override public Set<Attribute> getSearchAttributes() { if (searchManager == null) { throw new InvalidConfigurationException("Search attributes not supported by this store type: " + getClass().getName()); } return new HashSet<Attribute>(searchManager.getSearchAttributes(cacheName)); }
searchManager.put(cache.getName(), -1, element, null, attributeExtractors, cache.getCacheConfiguration().getDynamicExtractor());
/** * {@inheritDoc} */ public Results executeQuery(StoreQuery query) { if (searchManager == null) { throw new UnsupportedOperationException("Query execution not supported by this store type: " + getClass().getName()); } DynamicAttributesExtractor dynExtractor = query.getCache().getCacheConfiguration().getDynamicExtractor(); return searchManager.executeQuery(query, attributeExtractors, dynExtractor); }
/** * {@inheritDoc} */ @Override public Set<Attribute> getSearchAttributes() { if (searchManager == null) { throw new InvalidConfigurationException("Search attributes not supported by this store type: " + getClass().getName()); } return new HashSet<Attribute>(searchManager.getSearchAttributes(cacheName)); }
/** * {@inheritDoc} */ public Element putIfAbsent(Element element) throws NullPointerException { if (element == null) { return null; } if (searchManager != null) { searchManager.put(cache.getName(), -1, element, null, attributeExtractors, cache.getCacheConfiguration().getDynamicExtractor()); } long delta = poolAccessor.add(element.getObjectKey(), element.getObjectValue(), map.storedObject(element), storePinned); if (delta > -1) { Element old = map.putIfAbsent(element.getObjectKey(), element, delta); if (old == null) { checkCapacity(element); } else { poolAccessor.delete(delta); } return old; } else { notifyDirectEviction(element); return null; } }
/** * {@inheritDoc} */ public Results executeQuery(StoreQuery query) { if (searchManager == null) { throw new UnsupportedOperationException("Query execution not supported by this store type: " + getClass().getName()); } DynamicAttributesExtractor dynExtractor = query.getCache().getCacheConfiguration().getDynamicExtractor(); return searchManager.executeQuery(query, attributeExtractors, dynExtractor); }
/** * Puts an item in the store. Note that this automatically results in an eviction if the store is full. * * @param element the element to add */ public boolean put(final Element element) throws CacheException { if (element == null) { return false; } if (searchManager != null) { searchManager.put(cache.getName(), -1, element, null, attributeExtractors, cache.getCacheConfiguration().getDynamicExtractor()); } putObserver.begin(); long delta = poolAccessor.add(element.getObjectKey(), element.getObjectValue(), map.storedObject(element), storePinned); if (delta > -1) { Element old = map.put(element.getObjectKey(), element, delta); checkCapacity(element); if (old == null) { putObserver.end(PutOutcome.ADDED); return true; } else { putObserver.end(PutOutcome.UPDATED); return false; } } else { notifyDirectEviction(element); putObserver.end(PutOutcome.ADDED); return true; } }
/** * {@inheritDoc} */ public boolean putWithWriter(Element element, CacheWriterManager writerManager) throws CacheException { if (searchManager != null) { searchManager.put(cache.getName(), -1, element, null, attributeExtractors, cache.getCacheConfiguration().getDynamicExtractor()); } long delta = poolAccessor.add(element.getObjectKey(), element.getObjectValue(), map.storedObject(element), storePinned); if (delta > -1) { final ReentrantReadWriteLock lock = map.lockFor(element.getObjectKey()); lock.writeLock().lock(); try { Element old = map.put(element.getObjectKey(), element, delta); if (writerManager != null) { try { writerManager.put(element); } catch (RuntimeException e) { throw new StoreUpdateException(e, old != null); } } checkCapacity(element); return old == null; } finally { lock.writeLock().unlock(); } } else { notifyDirectEviction(element); return true; } }
/** * {@inheritDoc} */ public boolean putWithWriter(Element element, CacheWriterManager writerManager) throws CacheException { if (searchManager != null) { searchManager.put(cache.getName(), -1, element, null, attributeExtractors, cache.getCacheConfiguration().getDynamicExtractor()); } long delta = poolAccessor.add(element.getObjectKey(), element.getObjectValue(), map.storedObject(element), storePinned); if (delta > -1) { final ReentrantReadWriteLock lock = map.lockFor(element.getObjectKey()); lock.writeLock().lock(); try { Element old = map.put(element.getObjectKey(), element, delta); if (writerManager != null) { try { writerManager.put(element); } catch (RuntimeException e) { throw new StoreUpdateException(e, old != null); } } checkCapacity(element); return old == null; } finally { lock.writeLock().unlock(); } } else { notifyDirectEviction(element); return true; } }
searchManager.put(cache.getName(), -1, element, null, attributeExtractors, cache.getCacheConfiguration().getDynamicExtractor());
searchManager.put(cache.getName(), -1, element, null, attributeExtractors, cache.getCacheConfiguration().getDynamicExtractor());
searchManager.put(cache.getName(), -1, element, null, attributeExtractors, cache.getCacheConfiguration().getDynamicExtractor());
searchManager.put(cache.getName(), -1, element, null, attributeExtractors, cache.getCacheConfiguration().getDynamicExtractor());
/** * {@inheritDoc} */ public Element putIfAbsent(Element element) throws NullPointerException { if (element == null) { return null; } if (searchManager != null) { searchManager.put(cache.getName(), -1, element, null, attributeExtractors, cache.getCacheConfiguration().getDynamicExtractor()); } long delta = poolAccessor.add(element.getObjectKey(), element.getObjectValue(), map.storedObject(element), storePinned); if (delta > -1) { Element old = map.putIfAbsent(element.getObjectKey(), element, delta); if (old == null) { checkCapacity(element); } else { poolAccessor.delete(delta); } return old; } else { notifyDirectEviction(element); return null; } }
/** * {@inheritDoc} */ public Element putIfAbsent(Element element) throws NullPointerException { if (element == null) { return null; } if (searchManager != null) { searchManager.put(cache.getName(), -1, element, null, attributeExtractors, cache.getCacheConfiguration().getDynamicExtractor()); } long delta = poolAccessor.add(element.getObjectKey(), element.getObjectValue(), map.storedObject(element), storePinned); if (delta > -1) { Element old = map.putIfAbsent(element.getObjectKey(), element, delta); if (old == null) { checkCapacity(element); } else { poolAccessor.delete(delta); } return old; } else { notifyDirectEviction(element); return null; } }