@Override public int hashCode() { acquireSharedLock(); try { return name.hashCode(); } finally { releaseSharedLock(); } }
@Override public boolean equals(final Object o) { acquireSharedLock(); try { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; final OIndexAbstract<?> that = (OIndexAbstract<?>) o; return name.equals(that.name); } finally { releaseSharedLock(); } }
@Override public String getAlgorithm() { acquireSharedLock(); try { return algorithm; } finally { releaseSharedLock(); } }
@Override public String toString() { acquireSharedLock(); try { return name; } finally { releaseSharedLock(); } }
public Set<String> getClusters() { acquireSharedLock(); try { return Collections.unmodifiableSet(clustersToIndex); } finally { releaseSharedLock(); } }
@Override public int compareTo(@Nonnull OIndex<T> index) { acquireSharedLock(); try { final String name = index.getName(); return this.name.compareTo(name); } finally { releaseSharedLock(); } }
public OType[] getKeyTypes() { acquireSharedLock(); try { if (indexDefinition == null) return null; return indexDefinition.getTypes(); } finally { releaseSharedLock(); } }
public boolean isAutomatic() { acquireSharedLock(); try { return indexDefinition != null && indexDefinition.getClassName() != null; } finally { releaseSharedLock(); } }
@Override public Object getFirstKey() { acquireSharedLock(); try { while (true) try { return storage.getIndexFirstKey(indexId); } catch (OInvalidIndexEngineIdException ignore) { doReloadIndexEngine(); } } finally { releaseSharedLock(); } }
public void commit(IndexTxSnapshot snapshots) { acquireSharedLock(); try { if (snapshots.clear) clear(); commitSnapshot(snapshots.indexSnapshot); } finally { releaseSharedLock(); } }
@Override public boolean hasRangeQuerySupport() { acquireSharedLock(); try { while (true) try { return storage.hasIndexRangeQuerySupport(indexId); } catch (OInvalidIndexEngineIdException ignore) { doReloadIndexEngine(); } } finally { releaseSharedLock(); } }
public void addTxOperation(IndexTxSnapshot snapshots, final OTransactionIndexChanges changes) { acquireSharedLock(); try { if (changes.cleared) clearSnapshot(snapshots); final Map<Object, Object> snapshot = snapshots.indexSnapshot; for (final OTransactionIndexChangesPerKey entry : changes.changesPerKey.values()) { applyIndexTxEntry(snapshot, entry); } applyIndexTxEntry(snapshot, changes.nullKeyChanges); } finally { releaseSharedLock(); } }
@Override public OIndexKeyCursor keyCursor() { acquireSharedLock(); try { while (true) try { return storage.getIndexKeyCursor(indexId); } catch (OInvalidIndexEngineIdException ignore) { doReloadIndexEngine(); } } finally { releaseSharedLock(); } }
public OIndex<T> clear() { acquireSharedLock(); try { while (true) try { storage.clearIndex(indexId); break; } catch (OInvalidIndexEngineIdException ignore) { doReloadIndexEngine(); } return this; } finally { releaseSharedLock(); } }
@Override public Object getLastKey() { acquireSharedLock(); try { while (true) try { return storage.getIndexLastKey(indexId); } catch (OInvalidIndexEngineIdException ignore) { doReloadIndexEngine(); } } finally { releaseSharedLock(); } }
public boolean remove(Object key) { key = getCollatingValue(key); acquireSharedLock(); try { while (true) try { return storage.removeKeyFromIndex(indexId, key); } catch (OInvalidIndexEngineIdException ignore) { doReloadIndexEngine(); } } finally { releaseSharedLock(); } }
public boolean contains(Object key) { key = getCollatingValue(key); acquireSharedLock(); try { assert indexId >= 0; while (true) try { return storage.indexContainsKey(indexId, key); } catch (OInvalidIndexEngineIdException ignore) { doReloadIndexEngine(); } } finally { releaseSharedLock(); } }
getDatabase().declareIntent(null); releaseSharedLock();