| 1 | package fr.sii.ogham.core.builder.env; | |
| 2 | ||
| 3 | import fr.sii.ogham.core.builder.configuration.MayOverride; | |
| 4 | import fr.sii.ogham.core.convert.Converter; | |
| 5 | import fr.sii.ogham.core.convert.SupportingConverter; | |
| 6 | import fr.sii.ogham.core.fluent.AbstractParent; | |
| 7 | ||
| 8 | /** | |
| 9 | * Implementation that just delegates all operations to another builder. | |
| 10 | * | |
| 11 | * <p> | |
| 12 | * This is useful when a {@link ConverterBuilder} is used for a particular | |
| 13 | * parent and it must be inherited. As the parent types are not the same, you | |
| 14 | * can't directly use the same reference. So this implementation wraps the | |
| 15 | * original reference but as it is a new instance, it can have a different | |
| 16 | * parent builder. | |
| 17 | * </p> | |
| 18 | * | |
| 19 | * @author Aurélien Baudet | |
| 20 | * | |
| 21 | * @param <P> | |
| 22 | * the type of the parent builder (when calling {@link #and()} | |
| 23 | * method) | |
| 24 | */ | |
| 25 | public class ConverterBuilderDelegate<P> extends AbstractParent<P> implements ConverterBuilder<P> { | |
| 26 | private ConverterBuilder<?> delegate; | |
| 27 | ||
| 28 | /** | |
| 29 | * Wraps the delegate builder. The delegated builder parent is not used. | |
| 30 | * This instance uses the provided parent instead for chaining. | |
| 31 | * | |
| 32 | * @param parent | |
| 33 | * the new parent used for chaining | |
| 34 | * @param delegate | |
| 35 | * the instance that will really be updated | |
| 36 | */ | |
| 37 | public ConverterBuilderDelegate(P parent, ConverterBuilder<?> delegate) { | |
| 38 | super(parent); | |
| 39 | this.delegate = delegate; | |
| 40 | } | |
| 41 | ||
| 42 | @Override | |
| 43 | public ConverterBuilderDelegate<P> override(Converter converter) { | |
| 44 | delegate.override(converter); | |
| 45 |
1
1. override : replaced return value with null for fr/sii/ogham/core/builder/env/ConverterBuilderDelegate::override → NO_COVERAGE |
return this; |
| 46 | } | |
| 47 | ||
| 48 | @Override | |
| 49 | public ConverterBuilderDelegate<P> register(SupportingConverter converter) { | |
| 50 | delegate.register(converter); | |
| 51 |
1
1. register : replaced return value with null for fr/sii/ogham/core/builder/env/ConverterBuilderDelegate::register → NO_COVERAGE |
return this; |
| 52 | } | |
| 53 | ||
| 54 | @Override | |
| 55 | public ConverterBuilder<P> defaultConverter(MayOverride<Converter> converter) { | |
| 56 | delegate.defaultConverter(converter); | |
| 57 |
1
1. defaultConverter : replaced return value with null for fr/sii/ogham/core/builder/env/ConverterBuilderDelegate::defaultConverter → NO_COVERAGE |
return this; |
| 58 | } | |
| 59 | ||
| 60 | @Override | |
| 61 | public Converter build() { | |
| 62 |
1
1. build : replaced return value with null for fr/sii/ogham/core/builder/env/ConverterBuilderDelegate::build → NO_COVERAGE |
return delegate.build(); |
| 63 | } | |
| 64 | } | |
Mutations | ||
| 45 |
1.1 |
|
| 51 |
1.1 |
|
| 57 |
1.1 |
|
| 62 |
1.1 |