import com.jmethods.catatumbo.Entity; import com.jmethods.catatumbo.Identifier; import com.jmethods.catatumbo.Property; @Entity public class Person { @Identifier private final long id; @Property(name = "fname") private final String firstName; @Property(name = "lname") private final String lastName; @Property(indexed = false) private final int birthYear; private final boolean citizen; private Person(PersonBuilder builder) { this.id = builder.id; this.firstName = builder.firstName; this.lastName = builder.lastName; this.birthYear = builder.birthYear; this.citizen = builder.citizen; } public long getId() { return id; } public String getFirstName() { return firstName; } public String getLastName() { return lastName; } public int getBirthYear() { return birthYear; } public boolean isCitizen() { return citizen; } public static PersonBuilder newBuilder() { return new PersonBuilder(); } public static class PersonBuilder { private long id; private String firstName; private String lastName; private int birthYear; private boolean citizen; public void setId(long id) { this.id = id; } public void setFirstName(String firstName) { this.firstName = firstName; } public void setLastName(String lastName) { this.lastName = lastName; } public void setBirthYear(int birthYear) { this.birthYear = birthYear; } public void setCitizen(boolean citizen) { this.citizen = citizen; } public Person build() { return new Person(this); } } }