package at.gv.egiz.moazs; import at.gv.zustellung.app2mzs.xsd.ConfigType; import at.gv.zustellung.app2mzs.xsd.DeliveryRequestType; import at.gv.zustellung.app2mzs.xsd.DeliveryRequestType.DeliveryRequestTypeBuilder; import org.springframework.stereotype.Component; import static at.gv.egiz.moazs.util.NullCoalesce.coalesce; import static at.gv.zustellung.app2mzs.xsd.ConfigType.configTypeBuilder; @Component public class DeliveryRequestAugmenter { /** * Augments an incoming {@code request} by filling gaps with config- or default parameters. * * @param request * @return augmented request */ public DeliveryRequestType augment(DeliveryRequestType request) { return new DeliveryRequestTypeBuilder(request) .withConfig(coalesce(request.getConfig(), initDefaultConfig()).get()) .build(); } private ConfigType initDefaultConfig() { return configTypeBuilder() .withPerformQueryPersonRequest(false) .build(); } }