package com.bookstore; import com.algocrafts.domain.Countries; import com.algocrafts.domain.UnitedStates; import com.algocrafts.pages.Page; import com.bookstore.domain.Address; import static com.bookstore.BookStoreId.*; public class BillingAddressForm { private Page page; public BillingAddressForm(Page page) { this.page = page; } public void setBillingAddress(Address address) { page.put(BILLING_FIRST_NAME, address.firstName); page.put(BILLING_LAST_NAME, address.lastName); page.put(BILLING_ADDRESS1, address.street1); page.put(BILLING_ADDRESS2, address.street2); page.put(BILLING_CITY, address.city); page.put(BILLING_STATE, address.state); page.put(BILLING_ZIP, address.zipcode); page.select(BILLING_COUNTRY, address.country); } public Address getBillingAddress() { return new Address( page.get(BILLING_ADDRESS1), page.get(BILLING_ADDRESS2), page.get(BILLING_CITY), page.get(BILLING_ZIP), page.get(BILLING_STATE, UnitedStates::fromString), page.get(BILLING_COUNTRY, Countries::fromString), page.get(BILLING_FIRST_NAME), page.get(BILLING_LAST_NAME)); } }