[bisq-network/bisq] Dissolve BSFormatter (#3230)

Justin Carter notifications at github.com
Mon Sep 9 09:43:19 UTC 2019


BSFormatter was a statefull catch all type class with a huge interface.
It had dependencies to globals and very many classes depended on it.

It was hard to reason about code flow due to how tangled up things were,
making refactoring attempts of higher level classes difficult.

To Dissolve BSFormatter the following changes were made:

- Move functions that only have 1 call-site to private functions on the caller.
- Make functions that do not depend on local state static.
- Move functions that are only depended on by the desktop project to DisplayUtils.
- Move functions that are Parsing related to ParsingUtils.
- Move remaining static functions to FormattingUtils.
- Create interface CoinFormatter and class ImmutableCoinFormatter to handle statefull functions.
- Remove dependency to globals by instantiating an instance in CoreModule and inject it via Guice.
You can view, comment on, or merge this pull request online at:

  https://github.com/bisq-network/bisq/pull/3230

-- Commit Summary --

  * Dissolve BSFormatter

-- File Changes --

    M core/src/main/java/bisq/core/CoreModule.java (6)
    M core/src/main/java/bisq/core/app/BisqSetup.java (8)
    M core/src/main/java/bisq/core/app/WalletAppSetup.java (11)
    M core/src/main/java/bisq/core/dao/governance/asset/AssetService.java (2)
    M core/src/main/java/bisq/core/dao/governance/proposal/param/ChangeParamValidator.java (2)
    M core/src/main/java/bisq/core/dao/presentation/DaoUtil.java (16)
    M core/src/main/java/bisq/core/dao/state/DaoStateService.java (5)
    M core/src/main/java/bisq/core/locale/CurrencyUtil.java (25)
    M core/src/main/java/bisq/core/monetary/Altcoin.java (4)
    M core/src/main/java/bisq/core/monetary/Price.java (4)
    M core/src/main/java/bisq/core/monetary/Volume.java (4)
    M core/src/main/java/bisq/core/notifications/alerts/market/MarketAlerts.java (12)
    M core/src/main/java/bisq/core/notifications/alerts/price/PriceAlert.java (11)
    M core/src/main/java/bisq/core/offer/OfferUtil.java (17)
    M core/src/main/java/bisq/core/presentation/BalancePresentation.java (7)
    D core/src/main/java/bisq/core/util/BSFormatter.java (809)
    A core/src/main/java/bisq/core/util/FormattingUtils.java (298)
    A core/src/main/java/bisq/core/util/ParsingUtils.java (86)
    R core/src/main/java/bisq/core/util/coin/BsqFormatter.java (141)
    A core/src/main/java/bisq/core/util/coin/CoinFormatter.java (19)
    R core/src/main/java/bisq/core/util/coin/CoinUtil.java (2)
    A core/src/main/java/bisq/core/util/coin/ImmutableCoinFormatter.java (50)
    M core/src/test/java/bisq/core/dao/governance/proposal/param/ChangeParamValidatorTest.java (2)
    M core/src/test/java/bisq/core/dao/state/DaoStateServiceTest.java (2)
    M core/src/test/java/bisq/core/util/CoinCryptoUtilsTest.java (2)
    A core/src/test/java/bisq/core/util/FormattingUtilsTest.java (69)
    A core/src/test/java/bisq/core/util/coin/ImmutableCoinFormatterTest.java (33)
    M desktop/src/main/java/bisq/desktop/DesktopModule.java (6)
    M desktop/src/main/java/bisq/desktop/components/BalanceTextField.java (7)
    M desktop/src/main/java/bisq/desktop/components/BalanceWithConfirmationTextField.java (7)
    M desktop/src/main/java/bisq/desktop/components/ColoredDecimalPlacesWithZerosText.java (9)
    M desktop/src/main/java/bisq/desktop/components/PeerInfoIcon.java (16)
    M desktop/src/main/java/bisq/desktop/components/PeerInfoIconSmall.java (6)
    M desktop/src/main/java/bisq/desktop/components/paymentmethods/AdvancedCashForm.java (5)
    M desktop/src/main/java/bisq/desktop/components/paymentmethods/AliPayForm.java (5)
    M desktop/src/main/java/bisq/desktop/components/paymentmethods/AssetsForm.java (8)
    M desktop/src/main/java/bisq/desktop/components/paymentmethods/BankForm.java (5)
    M desktop/src/main/java/bisq/desktop/components/paymentmethods/CashDepositForm.java (5)
    M desktop/src/main/java/bisq/desktop/components/paymentmethods/ChaseQuickPayForm.java (5)
    M desktop/src/main/java/bisq/desktop/components/paymentmethods/ClearXchangeForm.java (5)
    M desktop/src/main/java/bisq/desktop/components/paymentmethods/F2FForm.java (5)
    M desktop/src/main/java/bisq/desktop/components/paymentmethods/FasterPaymentsForm.java (5)
    M desktop/src/main/java/bisq/desktop/components/paymentmethods/GeneralAccountNumberForm.java (5)
    M desktop/src/main/java/bisq/desktop/components/paymentmethods/GeneralBankForm.java (5)
    M desktop/src/main/java/bisq/desktop/components/paymentmethods/GeneralSepaForm.java (5)
    M desktop/src/main/java/bisq/desktop/components/paymentmethods/HalCashForm.java (5)
    M desktop/src/main/java/bisq/desktop/components/paymentmethods/InteracETransferForm.java (5)
    M desktop/src/main/java/bisq/desktop/components/paymentmethods/MoneyBeamForm.java (5)
    M desktop/src/main/java/bisq/desktop/components/paymentmethods/MoneyGramForm.java (5)
    M desktop/src/main/java/bisq/desktop/components/paymentmethods/NationalBankForm.java (4)
    M desktop/src/main/java/bisq/desktop/components/paymentmethods/PaymentMethodForm.java (13)
    M desktop/src/main/java/bisq/desktop/components/paymentmethods/PerfectMoneyForm.java (5)
    M desktop/src/main/java/bisq/desktop/components/paymentmethods/PopmoneyForm.java (5)
    M desktop/src/main/java/bisq/desktop/components/paymentmethods/PromptPayForm.java (5)
    M desktop/src/main/java/bisq/desktop/components/paymentmethods/RevolutForm.java (5)
    M desktop/src/main/java/bisq/desktop/components/paymentmethods/SameBankForm.java (5)
    M desktop/src/main/java/bisq/desktop/components/paymentmethods/SepaForm.java (5)
    M desktop/src/main/java/bisq/desktop/components/paymentmethods/SepaInstantForm.java (5)
    M desktop/src/main/java/bisq/desktop/components/paymentmethods/SpecificBankForm.java (5)
    M desktop/src/main/java/bisq/desktop/components/paymentmethods/SwishForm.java (5)
    M desktop/src/main/java/bisq/desktop/components/paymentmethods/USPostalMoneyOrderForm.java (5)
    M desktop/src/main/java/bisq/desktop/components/paymentmethods/UpholdForm.java (5)
    M desktop/src/main/java/bisq/desktop/components/paymentmethods/WeChatPayForm.java (5)
    M desktop/src/main/java/bisq/desktop/components/paymentmethods/WesternUnionForm.java (5)
    M desktop/src/main/java/bisq/desktop/main/Chat/Chat.java (10)
    M desktop/src/main/java/bisq/desktop/main/MainView.java (10)
    M desktop/src/main/java/bisq/desktop/main/MainViewModel.java (12)
    M desktop/src/main/java/bisq/desktop/main/account/content/altcoinaccounts/AltCoinAccountsView.java (8)
    M desktop/src/main/java/bisq/desktop/main/account/content/fiataccounts/FiatAccountsView.java (8)
    M desktop/src/main/java/bisq/desktop/main/account/content/notifications/ManageMarketAlertsWindow.java (12)
    M desktop/src/main/java/bisq/desktop/main/account/content/notifications/MobileNotificationsView.java (32)
    M desktop/src/main/java/bisq/desktop/main/dao/bonding/BondingViewUtils.java (22)
    M desktop/src/main/java/bisq/desktop/main/dao/bonding/bonds/BondListItem.java (6)
    M desktop/src/main/java/bisq/desktop/main/dao/bonding/bonds/BondsView.java (2)
    M desktop/src/main/java/bisq/desktop/main/dao/bonding/reputation/MyReputationListItem.java (6)
    M desktop/src/main/java/bisq/desktop/main/dao/bonding/reputation/MyReputationView.java (5)
    M desktop/src/main/java/bisq/desktop/main/dao/bonding/roles/RoleDetailsWindow.java (5)
    M desktop/src/main/java/bisq/desktop/main/dao/bonding/roles/RolesView.java (2)
    M desktop/src/main/java/bisq/desktop/main/dao/burnbsq/assetfee/AssetFeeView.java (13)
    M desktop/src/main/java/bisq/desktop/main/dao/burnbsq/assetfee/AssetListItem.java (2)
    M desktop/src/main/java/bisq/desktop/main/dao/burnbsq/proofofburn/MyProofOfBurnListItem.java (6)
    M desktop/src/main/java/bisq/desktop/main/dao/burnbsq/proofofburn/ProofOfBurnListItem.java (6)
    M desktop/src/main/java/bisq/desktop/main/dao/burnbsq/proofofburn/ProofOfBurnView.java (14)
    M desktop/src/main/java/bisq/desktop/main/dao/economy/dashboard/BsqDashboardView.java (12)
    M desktop/src/main/java/bisq/desktop/main/dao/economy/supply/SupplyView.java (2)
    M desktop/src/main/java/bisq/desktop/main/dao/governance/ProposalDisplay.java (2)
    M desktop/src/main/java/bisq/desktop/main/dao/governance/dashboard/GovernanceDashboardView.java (13)
    M desktop/src/main/java/bisq/desktop/main/dao/governance/make/MakeProposalView.java (18)
    M desktop/src/main/java/bisq/desktop/main/dao/governance/proposals/ProposalsListItem.java (2)
    M desktop/src/main/java/bisq/desktop/main/dao/governance/proposals/ProposalsView.java (17)
    M desktop/src/main/java/bisq/desktop/main/dao/governance/result/CycleListItem.java (5)
    M desktop/src/main/java/bisq/desktop/main/dao/governance/result/ProposalListItem.java (2)
    M desktop/src/main/java/bisq/desktop/main/dao/governance/result/VoteListItem.java (2)
    M desktop/src/main/java/bisq/desktop/main/dao/governance/result/VoteResultView.java (5)
    M desktop/src/main/java/bisq/desktop/main/dao/news/NewsView.java (10)
    M desktop/src/main/java/bisq/desktop/main/dao/wallet/BsqBalanceUtil.java (2)
    M desktop/src/main/java/bisq/desktop/main/dao/wallet/receive/BsqReceiveView.java (11)
    M desktop/src/main/java/bisq/desktop/main/dao/wallet/send/BsqSendView.java (26)
    M desktop/src/main/java/bisq/desktop/main/dao/wallet/tx/BsqTxListItem.java (12)
    M desktop/src/main/java/bisq/desktop/main/dao/wallet/tx/BsqTxView.java (16)
    M desktop/src/main/java/bisq/desktop/main/disputes/arbitrator/ArbitratorDisputeView.java (13)
    M desktop/src/main/java/bisq/desktop/main/disputes/trader/TraderDisputeView.java (24)
    M desktop/src/main/java/bisq/desktop/main/funds/deposit/DepositListItem.java (5)
    M desktop/src/main/java/bisq/desktop/main/funds/deposit/DepositView.java (15)
    M desktop/src/main/java/bisq/desktop/main/funds/locked/LockedListItem.java (7)
    M desktop/src/main/java/bisq/desktop/main/funds/locked/LockedView.java (11)
    M desktop/src/main/java/bisq/desktop/main/funds/reserved/ReservedListItem.java (7)
    M desktop/src/main/java/bisq/desktop/main/funds/reserved/ReservedView.java (11)
    M desktop/src/main/java/bisq/desktop/main/funds/transactions/TransactionListItemFactory.java (8)
    M desktop/src/main/java/bisq/desktop/main/funds/transactions/TransactionsListItem.java (10)
    M desktop/src/main/java/bisq/desktop/main/funds/transactions/TransactionsView.java (8)
    M desktop/src/main/java/bisq/desktop/main/funds/withdrawal/WithdrawalListItem.java (7)
    M desktop/src/main/java/bisq/desktop/main/funds/withdrawal/WithdrawalView.java (13)
    M desktop/src/main/java/bisq/desktop/main/market/MarketView.java (24)
    M desktop/src/main/java/bisq/desktop/main/market/offerbook/OfferBookChartView.java (17)
    M desktop/src/main/java/bisq/desktop/main/market/offerbook/OfferBookChartViewModel.java (11)
    M desktop/src/main/java/bisq/desktop/main/market/spread/SpreadView.java (9)
    M desktop/src/main/java/bisq/desktop/main/market/spread/SpreadViewModel.java (12)
    M desktop/src/main/java/bisq/desktop/main/market/trades/TradesChartsView.java (36)
    M desktop/src/main/java/bisq/desktop/main/market/trades/TradesChartsViewModel.java (13)
    M desktop/src/main/java/bisq/desktop/main/offer/MutableOfferDataModel.java (15)
    M desktop/src/main/java/bisq/desktop/main/offer/MutableOfferView.java (16)
    M desktop/src/main/java/bisq/desktop/main/offer/MutableOfferViewModel.java (78)
    M desktop/src/main/java/bisq/desktop/main/offer/createoffer/CreateOfferDataModel.java (8)
    M desktop/src/main/java/bisq/desktop/main/offer/createoffer/CreateOfferView.java (10)
    M desktop/src/main/java/bisq/desktop/main/offer/createoffer/CreateOfferViewModel.java (10)
    M desktop/src/main/java/bisq/desktop/main/offer/offerbook/OfferBookView.java (22)
    M desktop/src/main/java/bisq/desktop/main/offer/offerbook/OfferBookViewModel.java (38)
    M desktop/src/main/java/bisq/desktop/main/offer/takeoffer/TakeOfferDataModel.java (2)
    M desktop/src/main/java/bisq/desktop/main/offer/takeoffer/TakeOfferView.java (15)
    M desktop/src/main/java/bisq/desktop/main/offer/takeoffer/TakeOfferViewModel.java (44)
    M desktop/src/main/java/bisq/desktop/main/overlays/windows/ContractWindow.java (22)
    M desktop/src/main/java/bisq/desktop/main/overlays/windows/DisputeSummaryWindow.java (33)
    M desktop/src/main/java/bisq/desktop/main/overlays/windows/EmptyWalletWindow.java (13)
    M desktop/src/main/java/bisq/desktop/main/overlays/windows/OfferDetailsWindow.java (73)
    M desktop/src/main/java/bisq/desktop/main/overlays/windows/ProposalResultsWindow.java (5)
    M desktop/src/main/java/bisq/desktop/main/overlays/windows/SelectProposalWindow.java (2)
    M desktop/src/main/java/bisq/desktop/main/overlays/windows/TradeDetailsWindow.java (52)
    M desktop/src/main/java/bisq/desktop/main/portfolio/closedtrades/ClosedTradesView.java (13)
    M desktop/src/main/java/bisq/desktop/main/portfolio/closedtrades/ClosedTradesViewModel.java (24)
    M desktop/src/main/java/bisq/desktop/main/portfolio/editoffer/EditOfferDataModel.java (10)
    M desktop/src/main/java/bisq/desktop/main/portfolio/editoffer/EditOfferView.java (9)
    M desktop/src/main/java/bisq/desktop/main/portfolio/editoffer/EditOfferViewModel.java (20)
    M desktop/src/main/java/bisq/desktop/main/portfolio/failedtrades/FailedTradesViewModel.java (22)
    M desktop/src/main/java/bisq/desktop/main/portfolio/openoffer/OpenOffersViewModel.java (26)
    M desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/PendingTradesView.java (16)
    M desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/PendingTradesViewModel.java (54)
    M desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/steps/buyer/BuyerStep2View.java (3)
    M desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/steps/buyer/BuyerStep4View.java (7)
    M desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/steps/seller/SellerStep3View.java (3)
    M desktop/src/main/java/bisq/desktop/main/presentation/MarketPricePresentation.java (16)
    M desktop/src/main/java/bisq/desktop/main/settings/network/NetworkSettingsView.java (16)
    M desktop/src/main/java/bisq/desktop/main/settings/network/P2pNetworkListItem.java (15)
    M desktop/src/main/java/bisq/desktop/main/settings/preferences/PreferencesView.java (20)
    A desktop/src/main/java/bisq/desktop/util/BsqAddressHelper.java (41)
    A desktop/src/main/java/bisq/desktop/util/DisplayUtils.java (221)
    M desktop/src/main/java/bisq/desktop/util/GUIUtil.java (21)
    M desktop/src/main/java/bisq/desktop/util/validation/BsqAddressValidator.java (12)
    M desktop/src/main/java/bisq/desktop/util/validation/BsqValidator.java (15)
    M desktop/src/main/java/bisq/desktop/util/validation/BtcValidator.java (8)
    M desktop/src/main/java/bisq/desktop/util/validation/NumberValidator.java (4)
    M desktop/src/main/java/bisq/desktop/util/validation/SecurityDepositValidator.java (18)
    M desktop/src/test/java/bisq/desktop/GuiceSetupTest.java (4)
    M desktop/src/test/java/bisq/desktop/main/market/offerbook/OfferBookChartViewModelTest.java (25)
    M desktop/src/test/java/bisq/desktop/main/market/spread/SpreadViewModelTest.java (19)
    M desktop/src/test/java/bisq/desktop/main/market/trades/TradesChartsViewModelTest.java (4)
    M desktop/src/test/java/bisq/desktop/main/offer/createoffer/CreateOfferViewModelTest.java (16)
    M desktop/src/test/java/bisq/desktop/main/offer/offerbook/OfferBookViewModelTest.java (29)
    M desktop/src/test/java/bisq/desktop/main/portfolio/editoffer/EditOfferDataModelTest.java (5)
    D desktop/src/test/java/bisq/desktop/util/BSFormatterTest.java (199)
    A desktop/src/test/java/bisq/desktop/util/DisplayUtilsTest.java (134)
    M desktop/src/test/java/bisq/desktop/util/validation/BtcValidatorTest.java (5)

-- Patch Links --

https://github.com/bisq-network/bisq/pull/3230.patch
https://github.com/bisq-network/bisq/pull/3230.diff

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/bisq-network/bisq/pull/3230
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.bisq.network/pipermail/bisq-github/attachments/20190909/22824e99/attachment-0001.html>


More information about the bisq-github mailing list