* Builder object which produces a product.
*
* @param <P> Product of builder
- *
* @author Tony Tkacik <ttkacik@cisco.com>
+ * @deprecated This is an over-arching concept whose {@link #build()} method hides caller hierarchy. Users are advised
+ * to migrate away, either without a replacement interface, or with a proper domain-specific interface.
*/
-public interface Builder<P> extends Mutable {
- /**
- * Returns instance of the product. Multiple calls to this method are not required to return same instance if
- * the state of the builder has changed.
- *
- * @return A newly-built instance
- * @throws IllegalStateException if the builder's state is not sufficiently initialized
- */
+@Deprecated(since = "8.0.0", forRemoval = true)
+public interface Builder<P> extends CheckedBuilder<P, IllegalArgumentException> {
+ @Override
P build();
}