package at.bestsolution.efxclipse.testcases.fxgraph.shape; import javafx.scene.Group; import javafx.scene.GroupBuilder; import javafx.scene.paint.Color; public class CubeBuilder<B extends GroupBuilder<B>> extends GroupBuilder<B> { private Color color = Color.GREEN; private double size; private double shade; @SuppressWarnings("unchecked") public B color(Color color) { this.color = color; return (B) this; } @SuppressWarnings("unchecked") public B size(double size) { this.size = size; return (B) this; } @SuppressWarnings("unchecked") public B shade(double shade) { this.shade = shade; return (B) this; } @Override public Group build() { Cube c = new Cube(size, color, shade); applyTo(c); return c; } @SuppressWarnings("rawtypes") public static CubeBuilder<?> create() { return new CubeBuilder(); } }