Demo 1. Example of a simple single thread Builder - aegisql/conveyor GitHub Wiki

Demo 1. Example of a simple single thread Builder

Demo code

Goal:

Demonstrate a simple single thread Builder implementation.

Product class:

/* 
 * COPYRIGHT (C) AEGIS DATA SOLUTIONS, LLC, 2015
 */
package com.aegisql.conveyor.demo.simple_builder;

import java.util.Date;

public class Person {
	
	final String firstName;
	final String lastName;
	final Date dateOfBirth;
	
	public Person(String firstName, String lastName, Date dateOfBirth) {
		this.firstName   = firstName;
		this.lastName    = lastName;
		this.dateOfBirth = dateOfBirth;
	}

	public String getFirstName() {
		return firstName;
	}

	public String getLastName() {
		return lastName;
	}
	
	public Date getDateOfBirth() {
		return dateOfBirth;
	}

	@Override
	public String toString() {
		return "Person [firstName=" + firstName + ", lastName=" + lastName + ", dateOfBirth=" + dateOfBirth + "]";
	}
}

Builder class

/* 
 * COPYRIGHT (C) AEGIS DATA SOLUTIONS, LLC, 2015
 */
package com.aegisql.conveyor.demo.simple_builder;

import java.util.Date;
import java.util.function.Supplier;

public class PersonBuilder implements Supplier<Person> {
	
	private String firstName;
	private String lastName;
	private Date dateOfBirth;
	
	public void setFirstName(String firstName) {
		this.firstName = firstName;
	}

	public void setLastName(String lastName) {
		this.lastName = lastName;
	}

	public void setDateOfBirth(Date dateOfBirth) {
		this.dateOfBirth = dateOfBirth;
	}

	@Override
	public Person get() {
		return new Person(firstName,lastName,dateOfBirth);
	}
}

Demo code

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
PersonBuilder builder   = new PersonBuilder();
// << Builder is created, but it is empty. 
//    Needs three pieces of data to build the person
//    Adding building parts in the same thread
builder.setFirstName("John");
builder.setLastName("Silver");
builder.setDateOfBirth( format.parse("1695-11-10") );
// << Ok, here we know that we ready to build the Person
Person person = builder.get();		
System.out.println( person );

Output

Person [firstName=John, lastName=Silver, dateOfBirth=Thu Nov 10 00:00:00 EST 1695]

Next

Demo 2

⚠️ **GitHub.com Fallback** ⚠️