Implement freeze, unfreeze and final in base ParamBuilder class

.freeze() will return a FrozenParam<T extends ParamBuilder> which has only one method .unfreeze() that returns T (back to the initial ParamBuilder type).

.final() is a more extreme variant FinalParam<T> where T is the same T in ParamBuilder<T> and has no methods (no way to "un-finalize" a FinalParam).

Discussion

Should FrozenParams have .clone() available? If so would the clone be frozen too?

Assignee Loading
Time tracking Loading