package book.example.persistence.tests.builders; import book.example.persistence.model.AuctionSite; import book.example.persistence.model.AuctionSiteCredentials; import book.example.persistence.model.Authorisation; public class AuctionSiteLoginBuilder extends AbstractBuilder<AuctionSiteLoginBuilder, AuctionSiteCredentials> { private Builder<AuctionSite> auctionSiteBuilder = new AuctionSiteBuilder(); private Builder<Authorisation> authorisationBuilder = new AuthorisationBuilder(); public AuctionSiteCredentials build() { return new AuctionSiteCredentials(auctionSiteBuilder.build(), authorisationBuilder.build()); } public AuctionSiteLoginBuilder forSite(Builder<AuctionSite> auctionSiteBuilder) { AuctionSiteLoginBuilder other = this.clone(); other.auctionSiteBuilder = auctionSiteBuilder; return other; } public AuctionSiteLoginBuilder with(AuthorisationBuilder authorisationBuilder) { AuctionSiteLoginBuilder other = this.clone(); other.authorisationBuilder = authorisationBuilder; return other; } }