/** * Utility method, if a {@link LastBuilder} is undefined (null) then return null * otherwise call {@link LastBuilder#buildIfNeeded()} on that builder * * @param <T> Type expected from the builder * @param builder Builder to use, may be null * @return null if builder is null otherwise returns result of * {@link LastBuilder#buildIfNeeded()} * @see LastBuilder#buildIfNeeded() */ public static final <T> T buildIfNeeded( @Nullable final LastBuilder<T> builder ) { return builder == null ? null : builder.buildIfNeeded(); }
@Override public D getLastBuild() { return this.<LastBuilder<D>>getBuilder().getLastBuild(); }
@Override public D buildIfNeeded() { return this.<LastBuilder<D>>getBuilder().buildIfNeeded(); } }
/** * Utility method, if a {@link Builder} is undefined (null) then return null * otherwise if it's a {@link LastBuilder} then call * {@link LastBuilder#buildIfNeeded()} on that builder, otherwise just * call {@link Builder#build()} * * @param <T> Type expected from the builder * @param builder Builder to use, may be null * @return null if builder is null otherwise returns result of * {@link LastBuilder#buildIfNeeded()} * @see LastBuilder#buildIfNeeded() */ public static final <T> T buildIfNeeded( @Nullable final Builder<T> builder ) { if( builder == null ) { return null; } else if( builder instanceof LastBuilder ) { return ((LastBuilder<T>) builder).buildIfNeeded(); } else { return builder.build(); } }