Interface BuilderBase<S extends BuilderBase<S>>

    • Method Detail

      • prepareBuild

        default void prepareBuild()
      • copy

        default S copy​(java.lang.Object newParent)
        Some scenarios copy its parts from one place to another, either during parsing phase (e.g. through YAML anchors) or in prepareBuild(). In order to make sure that modification in one place does not accidentally change the original one we require defining a deep copy method on each builder. The only exception is when the builder is immutable (including potential children builder); in that case the deep copy is not necessary and this method can return this.

        The default implementation uses reflection to create a deep copy of all collections and maps, calling copy() on all objects implementing BuilderBase.

        Parameters:
        newParent - Object passed to a matching constructor.
        Returns:
        Deep copy of this object.