Package com.mastfrog.util.builder
Class AbstractBuilder<ElementType,CreateType>
java.lang.Object
com.mastfrog.util.builder.AbstractBuilder<ElementType,CreateType>
- All Implemented Interfaces:
Builder<ElementType,CreateType, AbstractBuilder<ElementType, CreateType>>
- Direct Known Subclasses:
URLBuilder
public abstract class AbstractBuilder<ElementType,CreateType>
extends Object
implements Builder<ElementType,CreateType,AbstractBuilder<ElementType,CreateType>>
A basic implementation of the builder pattern. Mutable factory for
some immutable object which is composed of multiple objects of the same type.
- Author:
- Tim Boudreau
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionadd(ElementType element) Add an elementfinal AbstractBuilder<ElementType,CreateType> Add an element as a string.protected AbstractBuilder<ElementType,CreateType> addElement(ElementType element) protected abstract ElementTypecreateElement(String string) protected List<ElementType>elements()protected voidonAfterAdd(ElementType element) protected voidonBeforeAdd(ElementType toAdd) Hook which can be overridden when an element is added.protected intsize()
-
Field Details
-
elements
-
-
Constructor Details
-
AbstractBuilder
protected AbstractBuilder()
-
-
Method Details
-
add
Description copied from interface:BuilderAdd an element May throw an exception if called aftercreate()has been called.- Specified by:
addin interfaceBuilder<ElementType,CreateType, AbstractBuilder<ElementType, CreateType>> - Parameters:
element- The element- Returns:
- this, or a new builder (callers should not assume all implementations return
this)
-
onAfterAdd
-
add
Description copied from interface:BuilderAdd an element as a string. Optional operation, may throw UnsupportedOperationException. May throw an exception if called aftercreate()has been called.- Specified by:
addin interfaceBuilder<ElementType,CreateType, AbstractBuilder<ElementType, CreateType>> - Returns:
- this, or a new builder (callers should not assume all implementations return
this)
-
elements
-
addElement
-
size
protected int size() -
createElement
-
onBeforeAdd
Hook which can be overridden when an element is added.- Parameters:
toAdd-
-