private CashMoneyWalletTransaction constructCashMoneyWalletTransactionFromRecord( DatabaseTableRecord record) throws CantCreateCashMoneyWalletTransactionException { UUID transactionId = record.getUUIDValue( CashMoneyWalletDatabaseConstants.TRANSACTIONS_TRANSACTION_ID_COLUMN_NAME); String publicKeyWallet = record.getStringValue( CashMoneyWalletDatabaseConstants.TRANSACTIONS_WALLET_PUBLIC_KEY_COLUMN_NAME); String publicKeyActor = record.getStringValue( CashMoneyWalletDatabaseConstants.TRANSACTIONS_ACTOR_PUBLIC_KEY_COLUMN_NAME); String publicKeyPlugin = record.getStringValue( CashMoneyWalletDatabaseConstants.TRANSACTIONS_PLUGIN_PUBLIC_KEY_COLUMN_NAME); BigDecimal amount = new BigDecimal( record.getStringValue( CashMoneyWalletDatabaseConstants.TRANSACTIONS_AMOUNT_COLUMN_NAME)); String memo = record.getStringValue(CashMoneyWalletDatabaseConstants.TRANSACTIONS_MEMO_COLUMN_NAME); long timestamp = record.getLongValue(CashMoneyWalletDatabaseConstants.TRANSACTIONS_TIMESTAMP_COLUMN_NAME); TransactionType transactionType; try { transactionType = TransactionType.getByCode( record.getStringValue( CashMoneyWalletDatabaseConstants.TRANSACTIONS_TRANSACTION_TYPE_COLUMN_NAME)); } catch (InvalidParameterException e) { throw new CantCreateCashMoneyWalletTransactionException( e.getMessage(), e, "Cash Money Wallet", "Invalid TransactionType value stored in table" + CashMoneyWalletDatabaseConstants.TRANSACTIONS_TABLE_NAME + " for id " + transactionId); } BalanceType balanceType; try { balanceType = BalanceType.getByCode( record.getStringValue( CashMoneyWalletDatabaseConstants.TRANSACTIONS_BALANCE_TYPE_COLUMN_NAME)); } catch (InvalidParameterException e) { throw new CantCreateCashMoneyWalletTransactionException( e.getMessage(), e, "Cash Money Wallet", "Invalid BalanceType value stored in table" + CashMoneyWalletDatabaseConstants.TRANSACTIONS_TABLE_NAME + " for id " + transactionId); } return new CashMoneyWalletTransactionImpl( transactionId, publicKeyWallet, publicKeyActor, publicKeyPlugin, transactionType, balanceType, amount, memo, timestamp); }