Clean up some duplicated code.

This commit is contained in:
akwizgran
2019-04-26 17:56:31 +01:00
parent faba9a6b70
commit 0c99ef0e5b

View File

@@ -98,9 +98,7 @@ class IdentityManagerImpl implements IdentityManager, OpenDatabaseHook {
@Override
public void onDatabaseOpened(Transaction txn) throws DbException {
Account cached = cachedAccount;
if (cached == null)
cachedAccount = cached = loadAccountWithKeyPair(txn);
Account cached = getCachedAccount(txn);
if (shouldStoreAccount) {
db.addAccount(txn, cached);
LOG.info("Account stored");
@@ -116,32 +114,32 @@ class IdentityManagerImpl implements IdentityManager, OpenDatabaseHook {
@Override
public LocalAuthor getLocalAuthor() throws DbException {
Account cached = cachedAccount;
if (cached == null) {
cachedAccount = cached = db.transactionWithResult(true,
this::loadAccountWithKeyPair);
}
if (cached == null)
cached = db.transactionWithResult(true, this::getCachedAccount);
return cached.getLocalAuthor();
}
@Override
public LocalAuthor getLocalAuthor(Transaction txn) throws DbException {
Account cached = cachedAccount;
if (cached == null)
cachedAccount = cached = loadAccountWithKeyPair(txn);
return cached.getLocalAuthor();
return getCachedAccount(txn).getLocalAuthor();
}
@Override
public byte[][] getHandshakeKeys(Transaction txn) throws DbException {
Account cached = cachedAccount;
if (cached == null)
cachedAccount = cached = loadAccountWithKeyPair(txn);
Account cached = getCachedAccount(txn);
return new byte[][] {
cached.getHandshakePublicKey(),
cached.getHandshakePrivateKey()
};
}
private Account getCachedAccount(Transaction txn) throws DbException {
Account cached = cachedAccount;
if (cached == null)
cachedAccount = cached = loadAccountWithKeyPair(txn);
return cached;
}
private Account loadAccountWithKeyPair(Transaction txn) throws DbException {
Account a = loadAccount(txn);
LOG.info("Account loaded");