Skip to content

Instantly share code, notes, and snippets.

View Kotlin-Native's full-sized avatar

Pierre Liebsch Kotlin-Native

View GitHub Profile
AddressBuilder builder = new AddressBuilder();
builder.setStreet(...);
builder.setStreetNumer(...);
builder.setZipCode(...);
builder.setCity(...);
builder.setState(...);
builder.setCountry(...);
Address address = builder.build();
Address address = new AddressBuilder()
.setStreet(...)
.setStreetNumer(...)
.setZipCode(...)
.setCity(...)
.setState(...)
.setCountry(...)
.build();
Address address = new AddressBuilder()
.forStreetNumber(...).ofStreet(...)
.inCity(...).withZipCode(...)
.lyingInState(...).ofCountry(...)
.build();
public class AddressBuilder {
public static AddressBuilder newAddress() {
return new AddressBuilder();
}
}
Address address = newAddress()
.forStreetNumber(...).ofStreet(...)
.inCity(...).withZipCode(...)
.lyingInState(...).ofCountry(...)
.build();
public class Address {
private String street;
...
public Address(AddressBuilder builder) {
street = validateStreet(builder.getStreet());
...
}
...
}
public class AddressBuilder {
...
public Address build() {
Address address = new Address();
address.setStreet(validateStreet(street));
...
return address;
}
}
public class Address {
public static Builder newAddress() {
return new Address().new Builder();
}
private String street;
...
public class Builder {
public Builder ofStreet(String initialStreet) {
street = validateStreet(initialStreet);
return this;
@Named("address")
@ConversationScoped
public class AddressBuilder {
...
}
class FluentELResolver extends BeanELResolver {
public boolean isReadOnly(ELContext context, Object base, Object property) {
return getFluentMethod(context, base, property.toString()) != null;
}
public void setValue(ELContext context, Object base, Object property, Object value) {
invoke(getFluentMethod(context, base, property.toString), base, value);
}