question: public WalletData addWallet ( final BitcoinController bitcoinController , Wallet wallet , String walletFilename ) { if ( walletFilename == null ) { return null ; } for ( WalletData loopModelData : perWalletModelDataList ) { if ( walletFilename . equals ( loopModelData . getWalletFilename ( ) ) ) { return loopModelData ; } } WalletData newPerWalletModelData = new WalletData ( ) ; newPerWalletModelData . setWallet ( wallet ) ; newPerWalletModelData . setWalletFilename ( walletFilename ) ; newPerWalletModelData . setWalletTableDataList ( new ArrayList < WalletTableData > ( ) ) ; if ( thereIsNoActiveWallet ( ) ) { perWalletModelDataList . remove ( activeWalletModelData ) ; activeWalletModelData = newPerWalletModelData ; } perWalletModelDataList . add ( newPerWalletModelData ) ; if ( wallet != null ) { wallet . addEventListener ( bitcoinController ) ; } createWalletTableData ( bitcoinController , walletFilename ) ; createAddressBookReceivingAddresses ( walletFilename ) ; return newPerWalletModelData ; }
target:  Add a new wallet to the list of managed wallets.