aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/gv/egiz/moazs/DeliveryRequestAugmenter.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/at/gv/egiz/moazs/DeliveryRequestAugmenter.java')
-rw-r--r--src/main/java/at/gv/egiz/moazs/DeliveryRequestAugmenter.java37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/main/java/at/gv/egiz/moazs/DeliveryRequestAugmenter.java b/src/main/java/at/gv/egiz/moazs/DeliveryRequestAugmenter.java
new file mode 100644
index 0000000..5c11ecb
--- /dev/null
+++ b/src/main/java/at/gv/egiz/moazs/DeliveryRequestAugmenter.java
@@ -0,0 +1,37 @@
+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 at.gv.zustellung.app2mzs.xsd.persondata.CorporateBodyType;
+import at.gv.zustellung.msg.xsd.SenderProfile;
+import org.springframework.stereotype.Component;
+import org.springframework.util.Assert;
+
+import static at.gv.egiz.moazs.util.NullCoalesce.coalesce;
+import static at.gv.zustellung.app2mzs.xsd.ConfigType.configTypeBuilder;
+import static org.springframework.util.Assert.isTrue;
+import static org.springframework.util.Assert.notNull;
+
+@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();
+ }
+
+}