Created
January 14, 2016 15:11
Revisions
-
jonaslindmark created this gist
Jan 14, 2016 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,50 @@ import static com.google.common.base.Preconditions.checkArgument; public class MyObject { public final String name; public final String wat; private MyObject(String name, String wat) { this.name = name; this.wat = wat; } public static BuildName newBuilder() { return new Builder(); } public interface BuildObj { MyObject build(); } public interface BuildName { BuildWat setName(String name); } public interface BuildWat { BuildObj setWat(String name); } public static class Builder implements BuildWat, BuildName, BuildObj { private String name; private String wat; private Builder() {} public BuildWat setName(String name) { checkArgument(name != null); this.name = name; return this; } public BuildObj setWat(String wat) { checkArgument(wat != null); this.wat = wat; return this; } public MyObject build() { return new MyObject(name, wat); } } }