@NotNull @Override public List<String> getAllStoreNames() { return getAllStoreNames(getAndCheckCurrentTransaction()); }
@NotNull @Override public Transaction getAndCheckCurrentTransaction() { final Transaction txn = getCurrentTransaction(); if (txn == null) { throw new IllegalStateException("No transaction started in current thread"); } return txn; }
@Override public ContextualStoreImpl compute(@NotNull final Transaction txn) { return openStore(name, config, txn); } });
public boolean put(@NotNull final ByteIterable key, @NotNull final ByteIterable value) { return put(environment.getAndCheckCurrentTransaction(), key, value); }
@NotNull public static ContextualEnvironment newContextualInstance(@NotNull final String dir, @NotNull final String subDir, @NotNull final EnvironmentConfig ec) { return prepare(new ContextualEnvironmentImpl(newLogInstance(new File(dir, subDir), ec), ec)); }
@NotNull @Override public ReadWriteTransaction beginGCTransaction() { final ReadWriteTransaction result = super.beginGCTransaction(); setCurrentTransaction(result); return result; }
private boolean throwCantModify() { if (getEnvironment().getEnvironmentConfig().getEnvIsReadonly()) { throw new ReadonlyTransactionException(); } throw new UnsupportedOperationException("Can't modify temporary empty store"); } }
@Nullable public ByteIterable get(@NotNull final ByteIterable key) { return get(environment.getAndCheckCurrentTransaction(), key); }
@NotNull public static ContextualEnvironment newContextualInstance(@NotNull final String dir, @NotNull final EnvironmentConfig ec) { return prepare(new ContextualEnvironmentImpl(newLogInstance(new File(dir), ec), ec)); }
@NotNull @Override protected TransactionBase beginTransaction(Runnable beginHook, boolean exclusive, boolean cloneMeta) { final TransactionBase result = super.beginTransaction(beginHook, exclusive, cloneMeta); setCurrentTransaction(result); return result; }
public Cursor openCursor() { return openCursor(environment.getAndCheckCurrentTransaction()); } }
@Override public <T> T computeInTransaction(@NotNull TransactionalComputable<T> computable) { final Transaction current = getCurrentTransaction(); return current != null ? computable.compute(current) : super.computeInTransaction(computable); }
@NotNull public static ContextualEnvironment newContextualInstance(@NotNull final LogConfig config, @NotNull final EnvironmentConfig ec) { return prepare(new ContextualEnvironmentImpl(newLogInstance(config, ec), ec)); }
@NotNull @Override public TransactionBase beginReadonlyTransaction(final Runnable beginHook) { final TransactionBase result = super.beginReadonlyTransaction(beginHook); setCurrentTransaction(result); return result; }
@Override public ContextualStoreImpl compute(@NotNull final Transaction txn) { return openStore(name, config, txn, creationRequired); } });
public void putRight(@NotNull final ByteIterable key, @NotNull final ByteIterable value) { putRight(environment.getAndCheckCurrentTransaction(), key, value); }
@Override public void executeInTransaction(@NotNull TransactionalExecutable executable) { final Transaction current = getCurrentTransaction(); if (current != null) { executable.execute(current); } else { super.executeInTransaction(executable); } }
@NotNull public static ContextualEnvironment newContextualInstance(@NotNull final File dir, @NotNull final EnvironmentConfig ec) { return prepare(new ContextualEnvironmentImpl(newLogInstance(dir, ec), ec)); }
public boolean add(@NotNull final ByteIterable key, @NotNull final ByteIterable value) { return add(environment.getAndCheckCurrentTransaction(), key, value); }
@Override public <T> T computeInExclusiveTransaction(@NotNull TransactionalComputable<T> computable) { final Transaction current = getCurrentTransaction(); if (current == null) { return super.computeInExclusiveTransaction(computable); } if (!current.isExclusive()) { throw new ExodusException("Current transaction should be exclusive"); } return computable.compute(current); }